查看: 34131
回复: 45
参赛作品《高精度电源》 本帖主对外承接开发, 联系作者
小马马哈
2
主题
16
回复
该帖子为嘉立创认证过的开发案例,案例是对作者实际开发产品的介绍,您可以通过这些案例去找到和自己产品相关的一些方案或解决途径。 查看更多案例 >>
发表于2017-06-06 15:35:25 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):张孝贤


2. 单位或学校名称(必填项):绵阳智芯科技有限公司


3. 当前职务或职称(必填项):研发工程师


4. 参赛作品的名字(必填项):高精度电源


5. 简要陈述您的idea和作品(必填项):当前使用的电源的电流和电压都不是高精度的,于是诞生了一个自己做高精度电源的想法


6. 拟用到的立创商城在售物料(必填项):STM32F103vet6,REF3030


7. 拟用到的非立创商城物料或其它补充(必填项):TFT LCD


【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

例如,可以包括但不局限于以下内容:

1.作品的整机外观图片或焊接组装好的PCBA图片;

2.作品的研究背景、目的和功能、市场应用前景;

3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?

实物图片如下:

 点击查看大图

 点击查看大图

开机图如下:

  点击查看大图

电压电流设置界面如下:

 点击查看大图

恒流模式界面如下:

 点击查看大图

自己日常用的电源是GPD-3030D,显示界面只有一个,通过拨码开关选择显示电压或者电流。而且电压显示只精确到0.1V,电流显示精确到0.01A。

总是感觉到看显示不方便,但是看很多高精度显示的电源要么价格很贵,要么也都是LED显示。于是想到了自己做一个直流模块的想法。

该模块能够在常规 条件下替代高精度电源。输入部分使用一个30V的电源输入即可。在模块的屏幕上,可以观察输入电压,输出电压和电流。

整体成本比商业高精度电源的成本低很多很多,很适合电子爱好者业余条件下、低成本条件下替代高精度电源,市场有很大空间。

模块使用了5寸液晶屏显示常用参数,可以在一个屏幕上显示常规关注的各项参数。

屏幕使用电阻触摸屏,方便用户在使用的时候,符合平常的操作习惯。

总结:

本模块可以在一定程度上替代高精度电源。而且整体成本基本只有高精度电源的1/10(以GPD-3303S为例,没计算Tek,Agilent等国外品牌)



二、系统构架图

用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。

 点击查看大图


三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;

2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。

power.pdf 

原理图如上连接所示

实现的过程其实很简单:

    1.上电,系统通电

    2.设置电压电流,DA通过设置的值,输出合适的DA值。

    3.根据设置的值,电源芯片输出合适的电压

    4.系统随时采集输出的电压和电流,根据采集到的情况,进行实时调节

PCB截图如下:

     

PCB 连接如下:

main.rar 


四、材料清单(BOM列表)

列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。

如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。

主要物料清单如下:

1    ADS7843                 U12        ssop16,http://www.szlcsc.com/product/details_9473.html
1    B360                    D7         ss12-1,http://www.szlcsc.com/product/details_92735.html
1    CAT4238                 U8         sot-23-5
1    CH330N                  U20        SO-8,http://www.szlcsc.com/product/details_110217.html
1    DS3231                  U13        wsop16,http://www.szlcsc.com/product/details_38643.html
1    LTC2600                 U16        ssop16
2    MCP6001                 U5 U6      sot-23-5,http://www.szlcsc.com/product/details_30183.html
1    MCP6002                 U17        so-8,http://www.szlcsc.com/product/details_7854.html
1    MP2451                  U9         SOT-23-6,http://www.szlcsc.com/product/details_14780.html
1    REF3030                 U11        sot-23-3,http://www.szlcsc.com/product/details_39406.html
1    RT8009(RT9193)          U4         sot-23-5,http://www.szlcsc.com/product/details_16760.html
1    RT9166                  U7         sot-23-3,http://www.szlcsc.com/product/details_29927.html
1    RU6050L                 U19        d-pack,http://www.szlcsc.com/product/details_100369.html
1    SSD1963                 U15        Quad128,http://www.szlcsc.com/product/details_15890.html
1    STM32F103VET6           U3         qfp100,http://www.szlcsc.com/product/details_8800.html
1    TFTLCD                  J7         ffc40
1    TPS54260                U18        SOP10,http://www.szlcsc.com/product/details_52813.html
1    W25Q32                  U2         wsop8,http://www.szlcsc.com/product/details_109276.html


五、软件部分的描述(选填)

如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。

关键代码 如下:


void adj_output(void)
{
	static int amp_cnt=0;
	static unsigned char amp_limit=0;
	amp_cnt++;
	if(info.amp_read>set.pset.amp*10 && amp_limit==0)
	{
		info.vol_set--;
		ltc2600_out(0x00,info.vol_set);
	}
	else if(abs(info.amp_read-set.pset.amp*10)-10>0)
	{
		if(info.vol_read>set.pset.vol+1)
		{
			info.vol_set--;
			ltc2600_out(0x00,info.vol_set);
		}
		else if(info.vol_read<set.pset.vol-1)
		{
			info.vol_set++;
			ltc2600_out(0x00,info.vol_set);
		}
		amp_limit=0;
	}
	else
	{
		if(amp_cnt>abs(info.amp_read<set.pset.amp*10)*10)
		{
			amp_cnt=0;
			amp_limit=1;
			if(info.amp_read>set.pset.amp*10)
			{
				info.vol_set--;
				ltc2600_out(0x00,info.vol_set);
			}
			else if(info.amp_read<set.pset.amp*10)
			{
				info.vol_set++;
				ltc2600_out(0x00,info.vol_set);
			}
		}
	}
}
DA输出部分代码如下:



void ltc2600_write_byte(unsigned char b)
{
	int i=0;
	
	for(i=0;i<8;i++)
	{
		DACLK_LO();
		if(b&0x80)
		{
			DASI_HI();
		}
		else
		{
			DASI_LO();
		}
		b<<=1;
		DACLK_HI();
	}
	DACLK_HI();
	DACLK_LO();
}
void ltc2600_out(unsigned char ch,unsigned short data)
{
	DACS_LO();
	DACLR_HI();
	//delay(1000);
	ltc2600_write_byte(0x20|ch);
	ltc2600_write_byte(data>>8);
	ltc2600_write_byte(data&0xff);
	//delay(1000);
	DACS_HI();	
}
整体工程代码如下:


STemWin_SSD1963.rar 


六、作品演示

请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得5分,具体详见活动规则。

演示链接如下:

https://v.qq.com/x/page/p0520bx6d17.html


七、总结

例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。

精度计算:

通过视频可以看出,设置输出5000mV,实际输出5025mV,误差为(5025-5000)/5000=0.5%

设置输出24000mV,实际输出24078mV,误差为(24078-24000)/24000=0.325%

电压总体输出误差较小

设置电流22mA,实际输出22.267mA,误差为(22.267-22)/22=1.2%

整体大多数使用的是1%精度的电阻,部分为5%,输出效果能够有这样,个人觉得很不错了。


DIY体会:

因为第一次搞电源这个行业,总体没啥经验,所以diy过程中碰到不少的问题。

第一个问题,在处理反馈的时候,没有加比例电阻,因此调节范围很窄。

然后,因为没考虑到ADC的输入阻抗,因此,采集电流总有偏差。

经过艰苦的排查问题,总算把这些都给解决掉了。

当前只实现了电压设置,电流设置,电流限流,输入电压显示等功能。

后期还准备利用TFT的优势,增加电压,电流的实时记录功能,后期可以通过用户选择,查询某段时间的输出电压和电流曲线。

最后:

感谢嘉立创,提供了这么好一个展示平台,让我有机会施展一点拳脚。

同时,也感谢ST,提供了这么好用而且便宜的芯片。

立创小程
【官方工作人员】
7
主题
204
回复
发表于2017-08-26 14:30:22   |  显示全部楼层
44#
恭喜楼主获得了第二届立创商城电子制作节入围奖,虽然距离30强还有些小差距,30强&入围奖名单:http://club.szlcsc.com/article/details_8910_1.html
但到明年的第三届电子制作节,带上您更成熟的作品参赛时,也许就能一举夺冠了呢,现在,有众多优秀作品让你参考,投票:http://club.szlcsc.com/article/details_8913_1.html
不断前行

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部