
(复刻学习)CW32电压电流表
简介
(复刻学习)基于CW32F030C8T6地文星立创开发板的数码管电压电流表
简介:(复刻学习)基于CW32F030C8T6地文星立创开发板的数码管电压电流表开源协议
:GPL 3.0
描述
一、制作背景
本项目是立创开发板与CW32共同资助举办的电压电流训练营项目,多为复刻学习。数字电压电流表结合了ADC的技术与电路测量原理,能够精确地将模拟的电压电流信号转换为数字显示,便于电子工程师直观读取和分析。这种设备不仅提高了电路测量的准确性和效率,还帮助工程师更好地理解电路行为,是进行电子设计和故障排查的得力助手,对电子工程师的工作具有重要的辅助作用。
学习设计和制作一个数字电压电流表对于个人专业技能的提升是非常有益的。数字电压电流表项目涵盖了微控制器电路的设计与实现、信号采集与处理电路的设计、用户界面的开发与优化以及产品外观的设计等多个方面,融合了电子技术、微控制器编程、电路设计以及工业设计等多领域知识。非常适合电子技术的初学者以及想要深入学习微控制器应用的人群。该项目具备以下几个亮点:
- 采用核心板加扩展板设计理念,采用插件器件设计,让学习更能简单,让探索能更深入;
- 核心板选用国产武汉芯源半导体CW32为主控,同时兼容同类型其它款式开发板;但CW32更有优势。
- 项目综合程度高,实用性强,设计完成后可作为桌面日常仪表使用;
- 项目学习资料丰富,包括电路设计教学、PCB设计、代码编程的学习以及工程师调试能力的培养。
二、硬件设计
1、硬件电路
LDO(低压差线性稳压器)选型
本项目使用LDO作为电源,考虑到实际的电压表头产品多在24V或36V供电的工业场景中应用,本项目选择了最高输入电压高达40V的SE8550K2作为电源。本项目所选元器件多插件类型为了让开发板尽量小没有使用DCDC升降压电路来应对大压差的主要原因为避免设计过程中引入DCDC的纹波干扰,同时也舍弃了18650电池充放电功能。
2、MCU的选型分析
为了降低学习成本,本项目使用相对稳定的立创·地文星CW32F030C8Tx开发板(核心板)作为主控,选择正确的主控器件选型是十分重要的,这关系到项目的整体优势。这此主要用到ADC功能,但STM32的ADC稍微有点点偏差,CW32的ADC相对精准稳定。
不要盲目的选型
在对本项目进行MCU(微控制器单元)选型时,需要综合考虑多个方面以确保选择的MCU能够满足项目需求。
- 明确自己的项目需求:清晰地了解项目需要多少计算能力,包括时钟速度、处理器核心的类型、是否需要浮点运算单元等。
- 明确项目所需的I/O端口和重要外设,如ADC外设。由于本项目为开发板项目,主要目的为调试学习,在硬件上,对I/O数量不做严格限制:即不考虑此带来的成本等问题。
CW32在本项目中的重要优势
- 宽工作温度:-40~105℃的温度范围
- 宽工作电压:1.65V~5.5V (STM32仅支持3.3V系统)
- 超强抗干扰:HBM ESD 8KV 全部ESD可靠性达到国际标准最高等级(STM32 ESD2KV)
- 本项目重点-更好的ADC:12位高速ADC 可达到±1.0LSB INL 11.3ENOB 多种Vref参考电压
- 稳定可靠的eFLASH工艺。
宽电压1.65V~5.5V的优势对于我而言确实是刚需,睡了一觉,醒来一给开发板板载TypeC插上,察觉到我的开发板3.3V输出引脚的电压全变成了4.48V左右。换作是普通32开发板,这项目我是要修地文星开发板的LDO器件了更严重点可能要换新的32芯片,过压很可能会把板子弄炸着火。另外,正常使用电压电流表不可能一直用Type C或者DC口接电源供电,要是有Type C口和18650电池供电会更方便使用。例如,把元器件改成贴片类的,并且把LDO改成TPS63000DRCR DCDC升降压芯片用两节18650并联供电,再加个IP2312锂电池充电芯片。当然,此次我试试插件器件,插件做出来的是成品有一种老式的电子器件美。
在硬软件都达到项目需求并且价格相对同类芯片便宜CW32F030C8T6是首选。CW32是芯源半导体产品,武汉芯源半导体有限公司,于2018年8月28日成立,是上市公司武汉力源信息技术股份有限公司全资子公司,专注芯片的设计、研发、销售及技术服务。武汉力源信息技术股份有限公司是中国电子元器件行业最著名的企业之一,经过多年的发展,已在广大电子企业和电子应用工程师心目中树立了良好的企业品牌形象,力源是 Intersil 、ONSemi 、STMicro 、TI 、Cypress 、Fujitsu 、Microchip 、Freescale 、Leadis 、风华高科、禾伸堂、普芯达、ROHM 、光宝科技、芯唐科技、创达特科技、香港晶体、圣邦微电子等国际著名公司的授权代理或分销商,拥有十多个产品种类,超过15000个型号的现货库存,拥有专业网站和庞大的产品资料库,为客户提供从产品资料、产品方案、产品选型、供应保障及物流服务等一揽子服务。老师们都说,当年想买大批量的芯片找力源,不怕有假货,嚣张点说,没有比芯源更懂国内32芯片的需求,哈哈。
3、电压采样电路
本项目设计分压电阻为220K+10K,因此分压比例为22:1(ADC_IN11)
分压电阻选型
- 设计测量电压的最大值,出于安全考虑,本项目为30V(实际最大可显示99.9V或100V);
- ADC参考电压,本项目中为1.5V,该参考电压可以通过程序进行配置;
- 功耗,为了降低采样电路的功耗,通常根据经验值将低侧电阻(R7)选择为10K;
随后便可以通过以上参数计算出分压电阻的高侧电阻:
- 计算所需的分压比例:即ADC参考电压:设计输入电压,通过已知参数可以计算出1.5V/30V=0.05
- 计算高侧电阻:即低侧电阻/分压比例,通过已知参数可以计算出10K/0.05=200K
- 选择标准电阻:选择一颗略高于计算值的电阻,计算值为200K,通常我们选择E24系列电阻,因此本项目中选择大于200K且最接近的220K。
如果在实际使用中,需要测量的电压低于2/3的模块设计电压,即66V,则可以根据实际情况更换分压电阻并修改程序从而提升测量的精度,下面将进行案例说明:
- 假设被测电压不高于24V,其他参数不变
- 通过计算可以得到1.5V/24V=0.0625,10K/0.0625=160K,160K为标准E24电阻可以直接选用,或适当留出冗余量选择更高阻值的180K
如果在实际使用中,需要测量的电压若高于模块99V的设计电压,可以选择更换分压电阻或通过修改基准电压来实现更大量程的电压测量范围,下面将进行案例说明:
- 假设被测电压为160V,选择提升电压基准的方案扩大量程
- 已知选用电阻的分压比例为0.0145,通过公式反推,我们可以计算出
160V*0.0145=2.32V
,因此我们可以选择2.5V的电压基准来实现量程的提升(扩大量程将会降低精度)
考虑到被测电源可能存在波动,在电路设计时,在低侧分压电阻上并联了10nF的滤波电容提高测量稳定性。
4、电流采样电路
本项目采用低侧电流采样电路进行电流检测,采样电路的低侧与开发板表头接口共地。学习时,请不要焊接R0!!!
设计分析
本项目设计的采样电流为3A,选择的采样电阻(R0)为100mΩ
采样选型主要需要参考以下几个方面:
- 预设计测量电流的最大值,本项目中为3A
- 检流电阻带来的压差,一般不建议超过0.5V
- 检流电阻的功耗,应当根据该参数选择合适的封装,本项目考虑到大电流时的功耗(温度)问题,选择了2W封装的金属绕线电阻
- 检流电阻上电压的放大倍数:本项目中没有使用运放搭建放大电路,因此倍率为1
随后便可以通过以上参数计算出检流的阻值选择:
- 由于本项目没有使用放大电路,因此需要选择更大的采样电阻获得更高的被测电压以便于进行测量
- 考虑到更大的电阻会带来更大的压差、更高的功耗,因此也不能无限制的选择更大的电阻
- 本项目选用了1W封装的电阻,对应的温升功率为2W
综合以上数据,本项目选择了100mΩ的检流电阻,根据公式可以计算出3A*100mΩ=300mV,900mW
如需应对不同的使用环境,尤其是电流较大的场景,可以将R0电阻更换为康铜丝或者分流器,可以更具实际使用场景,选择替代。出于安全和学习用途考虑,本项目对超出3A量程不做过多探讨,但原理一致。
5、数码管显示
本项目采用了数码管作为显示单元。
在本项目中使用了两颗0.28寸的三位共阴数码管作为显示器件,相较于显示屏,数码管在复杂环境中拥有更好的识别度,可以根据实际使用环境的需求,改为更小的限流电阻实现更高的数码管亮度;在另一方面,数码管拥有较好的机械性能,不会像显示屏一样容易被外力损坏。在工业等有稳定可靠性应用中,多被采用。从开发版学习的角度来看,更易有目的的学习电子测量原理相关开发。
在本项目中,经过实际测试,数码管的限流电阻(R1~R6)被配置为300Ω,对应的亮度无论是红色还是蓝色数码管,均具有较好的识别度,且亮度柔和不刺眼。
严格来讲,限流电阻应该加在段上,加在位上,会影响显示效果。我们实际设计加在位上,省几个电阻,但对显示影响并不突出。所以还是加在位上,图个方便。
数码管的驱动原理
数码管的驱动原理主要涉及到通过控制数码管的各个灯段的开关状态来显示数字、字母或符号。以下是详细的驱动原理说明:
- 数码管的基本构成:
- 数码管通常由七段或八段LED(本项目为8段)组成,每个段代表数码管的一部分,可以显示数字0-9、字母A-F等字符。
- 数码管有共阴极和共阳极两种类型,它们的区别在于LED的公共端COM(即连接所有LED的一端)是连接到电源的负极还是正极。
- 驱动方式:
- 段选:通过控制数码管的各个灯段的开关状态来显示所需的数字或字符。每个灯段对应一个控制信号,当控制信号开启时,该段会显示点亮,反之则灭掉。(a、b、c、d、e、f、g、dp)
- 位选:通过控制数码管的位线来选择需要显示的数码管。位线控制是将需要显示的数码管的位线设置为高电平,其他数码管的位线设置为低电平。通过不断地切换位线的状态,可以实现多个数码管之间的显示切换。
- 驱动电路:
- 数码管驱动电路可以通过硬件电路实现,如使用数字信号处理器(DSP)、微控制器(MCU)或移位寄存器等集成电路来生成适合LED的控制信号。
- 这些控制信号可以是脉冲宽度调制(PWM)信号、串行数据信号等形式。通过控制这些信号的频率、宽度和幅度,可以实现数码管的亮暗控制,从而显示出所需的数字或字母。
- 软件控制:
- 除了硬件驱动电路,还可以通过软件控制来实现数码管的驱动。通过编程生成适合数码管的控制信号,可以实现更加灵活和复杂的显示效果,如数字的滚动显示、交替显示等。
- 共阴极与共阳极数码管的驱动:
- 对于共阴极数码管,共阴极引脚连接到电源的负极,控制引脚连接到控制芯片的输出引脚。当需要显示某个数字时,控制芯片会输出相应的编码信号到控制引脚,使得对应的LED段点亮。
- 对于共阳极数码管,工作原理与共阴极数码管相似,只是共阳极引脚连接到电源的正极,控制引脚连接到控制芯片的输出引脚。
- 编码显示:
- 为了使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。例如,要显示数字“0”,共阳极数码管的字型编码为11000000B(即C0H),而共阴极数码管的字型编码为00111111B(即3FH),具体编码以实际数码管为准。
- 动态显示与静态显示:
- 数码管可以采用静态显示或动态显示方式。静态显示时,每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来并保持不变。动态显示则是一位一位地轮流点亮各位数码管,通过快速切换实现人眼视觉上的同时显示。
总结来说,数码管的驱动原理是通过控制数码管的各个灯段的开关状态来显示数字、字母或符号,并通过段选和位选的方式实现多个数码管之间的显示切换。同时,可以通过硬件电路或软件控制来实现数码管的驱动,并根据需要选择共阴极或共阳极数码管进行驱动。
本项目实际采用动态扫描显示驱动数码管。
推算一下数码管所需电流
本项目实际采用动态扫描显示驱动数码管,因而在同一时刻,最多仅有8个段的数码管(或理解为LED)被点亮,或者说有某一位被点亮。根据设计,所需驱动电流即为IO口高电平电压3.3V÷300Ω≈11mA。
此时应注意选型的MCU是否有足够的拉电流/灌电流的能力。
6、LED指示灯
本项目额外设计了一个电源指示灯和IO工作指示灯。
由于芯片I/O往往灌电流的能力大于拉电流的能力,所以,LED1设计为I/O低电平有效(亮)。
出于减少LED对电流的消耗的考量,放弃部分LED亮度,减少器件参数类型,将LED的限流电阻选择为10K。
7、按键电路设计
按键控制电路有多种设计方式,得益于CW32的I/O口内部可以配置上下拉电阻,在芯片外围的按键控制电路则无需配置。按键一端接入MCU的I/O上,另一端接地。按键按下,I/O被拉低,但没硬件消抖则需要软件消抖。
8、用于电压测量校准的TL431电路设计
本项目额外增加了一个TL431电路用来提供一个2.5V的基准电压,可用于给芯片一个用于校准AD的外部电压基准,从产品设计角度来讲,由于CW32本身的ADC性能优势,可以不需要此电路。在开发板上设计此电路,用于学习相关应用原理。
TL431算是一个比较“老”的器件了,很经典,应用很广泛,现在在很多电子产品中仍然有其身影。TL从名称上,将其定义为:精密可编程基准,我们在参考文献的第一页上,可以重点关注几个特性。
精密:精密,说明其输出电压非常准。我使用的为±0.5%精度的TL431,在室温下,板上实测2.495V。相较于常见的稳压二极管,精度天差地别。在应用电路图中,TL431内部以一个稳压管的符号做示意。
可调输出电压:可调输出电压在Vref到36V之间,在项目中使用输出Vref电压。Vref电压约为2.5V。所以我们在描述中用2.5V,实际是约等于的。
灌电流能力:也就是输出电压的引脚可以提供多少电流,这与在应用电路中的电阻(R13)的阻值有很大关系。不能低于1mA。如果没有灌电流的需求,则不要将电流设计过大,造成不必要的功耗影响。
9、PCB的设计要点
1.电流采样电阻的开尔文接法
2.DRC设计的注意事项
- 电源走线应尽可能宽,约在20~60mil之间。
- 普通信号线:10mil左右。
- ADC信号走线:10mil或8mil。太宽则在线路过长时,有可能影响信号的完整性。
- 规范器件的引脚间距:如规范使用英制单位、利用好EDA软件的网格和栅格,合理排布器件位置,合理走线。
- 铺铜选择直接方式
3.连接好线、铺好铜后一定要添加泪滴!
4.TA,TGND,TI+,T_V都是用香蕉头母座
2mm香蕉头的公座子(就是通用万用表的表笔测量头)配的2mm香蕉头母座
这是接万用表另一端的这端要配4mm的香蕉头母座
这是立式香蕉头母座,左边是2mm,右边是4mm的。2mm香蕉头母座立创商城有货有封装,但立式的4mm香蕉头母座立创商城只有货没有封装(卧式所占PCB板面积大,和贴片元器件配合使用更好看)个人更喜欢右边的。通用万用表常用的香蕉头母座。但立创商城的产品不怕沾染洗板水,淘宝所买的器件多半碰上洗板水会褪色并且引脚尺寸可能会有误,实际上可能差三四毫米。
这两张效果图是B站阿笨达斯真大哥的效果,他的又准又小巧实用(卧式香蕉头配贴片元器件简直完美)
5.给开发板包些外壳特别是底部防止VCC与GND意外相连,同时注意防尘。
才看吴工视频学焊接,焊的一般,勿笑勿笑。
三、使用演示
因为初次做项目设备与个人能力都相对有限,没有专业的数字电源也没用超精准的万用表。本项目给开发板所有的电源供电是2节串联的18650锂电池理论电压是8.4V,所以测量用的电源模块是4节18650锂电池组理论电压16.8V配合LM2596芯片制成的DCDC电源供电模块调节可调电阻可以输出1.2V到16V电压。
1.电压测量
制作的电压电流表,5V测量大约相差0.01-0.03,15V大约差0.09。
2.电流测量
设备不够,只能用锂电池组与DCDC降压模块来提供电压电流表需要测量的电压、电流
DCDC设置输出电压大约是3V,所串的电阻是100欧,理论上是检测到0.03A的电流,实际测得是0.01A。为了节约花销和所做电压电流表通用性少量元器件是在淘宝买的(可调电阻),可能损失了精度,当然我对项目没完全理解透也是一方面。有点小尴尬我的黑表笔坏了,导致也不能插接在开发板上了。
四、额外磨刀:
砍柴先磨刀,好事多磨。新开发板不出意外的话,我的开发板又出意外了。
1.AMS1117-3.3坏了,不知不觉就坏了,3.3V引脚全是4.48V左右,感觉这AMS芯片坏了,故障图如下。庆幸CW32F030是1.65V~5.5V宽工作电压,理论上不要AMS1117-3.3也不影响CW32正常运行,事实好像真可以。但要注意的是,CW32F030C8T6小蓝板3.3V引脚不要接其他模块,怕烧毁其他芯片。
2.编译零报错却烧录不了程序。,一看ST-Linkv2设置界面
能识别到ST-Linkv2。
,一看
重新安装pack包(下载地址通过百度网盘分享的文件:WHXY.CW32F030_DFP.1.0.5.pack 链接:https://pan.baidu.com/s/1GhgkVmW95Mj9kDO-m8bOlg?pwd=4510 提取码:4510)
安装pack包,
再重新选择芯片
安装好后重启Keil。
。
非常感谢立创、CW32社区大佬、阿笨达斯真大哥等等训练营同伴大力帮助。
https://www.bilibili.com/video/BV1pXWyeUE7m?t=123.5
设计图

BOM


评论