发作品签到
专业版

电压电流表训练营

工程标签

81
0
0
0

简介

基于CW32F030设计的的电压电流表

简介:基于CW32F030设计的的电压电流表
电压电流表训练营【立创开发板&CW32】

开源协议

GPL 3.0

创建时间:2024-07-25 05:48:49更新时间:2024-08-23 03:43:34

描述

立创开发板训练营

基于CW32F030开发板的电压电流表

一、项目说明

      本项目跟随立创训练营开展,本人文科生,第一次系统接触pcb打板和程序设计,目的在于培养自己相关知识,同时结交天下豪杰,电路设计基本遵照官方给出的原理图,对电流电压采样部分电路做了简化。电流采样电阻做了可插拔设计,一是方便前期调试,二是方便后期更换采样电阻,增大量程。但是由于我编程能力不足,多次尝试编程均已失败告终,使用了官方给的程序,目前还在编写相关程序。采样电阻可更换设计仅作为一种思路分享。

     相较于官方案例,设计中将大量元器件替换为贴片元件,并且将开发板放置在pcb板背面,减小整体面积。

     我比较偷懒,在焊接贴片元件时使用了加热台,嘻嘻

 

具体原理图设计细节参考:

    1、https://oshwhub.com/li-chuang-kai-fa-ban/cw32-shu-zi-dian-ya-dian-liu-biao-kai-fa-ban-tao-jian

    2、https://wiki.lckfb.com/zh-hans/dwx-cw32f030c8t6/question/

二、电路设计

1、供电电路

image.png

LDO(低压差线性稳压器)选型
本项目使用LDO作为电源,考虑到实际的电压表头产品多在24V或36V供电的工业场景中应用,本项目选择了最高输入电压高达40V的SE8550K2作为电源。本项目没有使用DCDC降压电路来应对大压差的主要原因为避免设计过程中引入DCDC的纹波干扰,次要原因为降低项目成本。

2、MCU的选型分析

为了降低大家的学习成本,本项目使用立创·地文星CW32F030C8Tx开发板(核心板)作为主控,但这并不意味着我们会对这一板块讲的更少。从培养工程师的角度来讲,正确的主控器件选型是十分重要的,这关系到项目的整体优势。
关于电压电流表,笔者用STM32/CW32和一些其他32做了一些调试和测试。在此仅与STM32F103C8T6做比对,作为学习器件选型的参考,主要以提供思路,改善认知为主。

不要盲目的选型
在对本项目进行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参考电压... ...(STM32仅支持VDD=Vref)
  • 稳定可靠的eFLASH工艺。

关于优势的详细解读,我会放在有关ADC采样的章节和拓展章节中详解。

CW32的ADC主要特性
本项目需重点关注 4路参考电压源
内容来自《CW32x030 用户手册》

image.png

3、电压采样电路

本项目设计分压电阻为220K+10K,因此分压比例为22:1(ADC_IN11)

分压电阻选型

  1. 设计测量电压的最大值,出于安全考虑,本项目为30V(实际最大可显示99.9V或100V);
  2. ADC参考电压,本项目中为1.5V,该参考电压可以通过程序进行配置;
  3. 功耗,为了降低采样电路的功耗,通常根据经验值将低侧电阻(R7)选择为10K;

随后便可以通过以上参数计算出分压电阻的高侧电阻:

  1. 计算所需的分压比例:即ADC参考电压:设计输入电压,通过已知参数可以计算出1.5V/30V=0.05
  2. 计算高侧电阻:即低侧电阻/分压比例,通过已知参数可以计算出10K/0.05=200K
  3. 选择标准电阻:选择一颗略高于计算值的电阻,计算值为200K,通常我们选择E24系列电阻,因此本项目中选择大于200K且最接近的220K。

如果在实际使用中,需要测量的电压低于2/3的模块设计电压,即66V,则可以根据实际情况更换分压电阻并修改程序从而提升测量的精度,下面将进行案例说明:

  1. 假设被测电压不高于24V,其他参数不变
  2. 通过计算可以得到1.5V/24V=0.0625,10K/0.0625=160K,160K为标准E24电阻可以直接选用,或适当留出冗余量选择更高阻值的180K

如果在实际使用中,需要测量的电压若高于模块99V的设计电压,可以选择更换分压电阻或通过修改基准电压来实现更大量程的电压测量范围,下面将进行案例说明:

  1. 假设被测电压为160V,选择提升电压基准的方案扩大量程
  2. 已知选用电阻的分压比例为0.0145,通过公式反推,我们可以计算出160V*0.0145=2.32V,因此我们可以选择2.5V的电压基准来实现量程的提升(扩大量程将会降低精度)

考虑到被测电源可能存在波动,在电路设计时,在低侧分压电阻上并联了10nF的滤波电容提高测量稳定性。

换挡

在本项目中,额外增加了一组电压采样电路,因此,我们可以探讨一下换挡对于提高测量精度的意义。万用表想要测的更准确,往往设置了多个档位。通过对不同档位的调整,获得被测点位在相应量程下的最佳的测量精度。

本项目实现此功能需要实现软硬件结合。当我们首先使用前文所讲的ADC_IN11通道测量30V以内电压时。若所测得电压在0~3V以内,则使用ADC_IN9通道测量。此时,由于分压比减小,测量精度大大提高。
实现换挡的思路有很多种,开发板的设计给大家提供了更多设计的可能。

4、电流采样电路

本项目采用低侧电流采样电路进行电流检测,采样电路的低侧与开发板表头接口共地
学习时,请不要焊接R0!!!

image.png

设计分析

本项目设计的采样电流为3A,选择的采样电阻(R0)为100mΩ
采样选型主要需要参考以下几个方面:

  1. 预设计测量电流的最大值,本项目中为3A
  2. 检流电阻带来的压差,一般不建议超过0.5V
  3. 检流电阻的功耗,应当根据该参数选择合适的封装,本项目考虑到大电流时的功耗(温度)问题,选择了1W封装的金属绕线电阻
  4. 检流电阻上电压的放大倍数:本项目中没有使用运放搭建放大电路,因此倍率为1

随后便可以通过以上参数计算出检流的阻值选择:

  1. 由于本项目没有使用放大电路,因此需要选择更大的采样电阻获得更高的被测电压以便于进行测量
  2. 考虑到更大的电阻会带来更大的压差、更高的功耗,因此也不能无限制的选择更大的电阻
  3. 本项目选用了1W封装的电阻,对应的温升功率为1W

综合以上数据,本项目选择了100mΩ的检流电阻,根据公式可以计算出3A*100mΩ=300mV,900mW

如需应对不同的使用环境,尤其是电流较大的场景,可以将R0电阻更换为康铜丝或者分流器,可以更具实际使用场景,选择替代。出于安全和学习用途考虑,本项目对超出3A量程不做过多探讨,但原理一致。

5、数码管显示

本项目采用了数码管作为显示单元。

image.png

在本项目中使用了两颗0.28寸的三位共阴数码管作为显示器件,相较于显示屏,数码管在复杂环境中拥有更好的识别度,可以根据实际使用环境的需求,改为更小的限流电阻实现更高的数码管亮度;在另一方面,数码管拥有较好的机械性能,不会像显示屏一样容易被外力损坏。在工业等有稳定可靠性应用中,多被采用。从开发版学习的角度来看,更易有目的的学习电子测量原理相关开发。

在本项目中,经过实际测试,数码管的限流电阻(R1~R6)被配置为300Ω,对应的亮度无论是红色还是蓝色数码管,均具有较好的识别度,且亮度柔和不刺眼。

严格来讲,限流电阻应该加在段上,加在位上,会影响显示效果。我们实际设计加在位上,省几个电阻,但对显示影响并不突出。所以还是加在位上,图个方便。

数码管的驱动原理

image.png

数码管的驱动原理主要涉及到通过控制数码管的各个灯段的开关状态来显示数字、字母或符号。以下是详细的驱动原理说明:

  1. 数码管的基本构成:
    • 数码管通常由七段或八段LED(本项目为8段)组成,每个段代表数码管的一部分,可以显示数字0-9、字母A-F等字符。
    • 数码管有共阴极和共阳极两种类型,它们的区别在于LED的公共端COM(即连接所有LED的一端)是连接到电源的负极还是正极。
  2. 驱动方式:
    • 段选:通过控制数码管的各个灯段的开关状态来显示所需的数字或字符。每个灯段对应一个控制信号,当控制信号开启时,该段会显示点亮,反之则灭掉。(a、b、c、d、e、f、g、dp)
    • 位选:通过控制数码管的位线来选择需要显示的数码管。位线控制是将需要显示的数码管的位线设置为高电平,其他数码管的位线设置为低电平。通过不断地切换位线的状态,可以实现多个数码管之间的显示切换。
  3. 驱动电路:
    • 数码管驱动电路可以通过硬件电路实现,如使用数字信号处理器(DSP)、微控制器(MCU)或移位寄存器等集成电路来生成适合LED的控制信号。
    • 这些控制信号可以是脉冲宽度调制(PWM)信号、串行数据信号等形式。通过控制这些信号的频率、宽度和幅度,可以实现数码管的亮暗控制,从而显示出所需的数字或字母。
  4. 软件控制:
    • 除了硬件驱动电路,还可以通过软件控制来实现数码管的驱动。通过编程生成适合数码管的控制信号,可以实现更加灵活和复杂的显示效果,如数字的滚动显示、交替显示等。
  5. 共阴极与共阳极数码管的驱动:
    • 对于共阴极数码管,共阴极引脚连接到电源的负极,控制引脚连接到控制芯片的输出引脚。当需要显示某个数字时,控制芯片会输出相应的编码信号到控制引脚,使得对应的LED段点亮。
    • 对于共阳极数码管,工作原理与共阴极数码管相似,只是共阳极引脚连接到电源的正极,控制引脚连接到控制芯片的输出引脚。
  6. 编码显示:
    • 为了使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。例如,要显示数字“0”,共阳极数码管的字型编码为11000000B(即C0H),而共阴极数码管的字型编码为00111111B(即3FH),具体编码以实际数码管为准。
  7. 动态显示与静态显示:
    • 数码管可以采用静态显示或动态显示方式。静态显示时,每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来并保持不变。动态显示则是一位一位地轮流点亮各位数码管,通过快速切换实现人眼视觉上的同时显示。

总结来说,数码管的驱动原理是通过控制数码管的各个灯段的开关状态来显示数字、字母或符号,并通过段选和位选的方式实现多个数码管之间的显示切换。同时,可以通过硬件电路或软件控制来实现数码管的驱动,并根据需要选择共阴极或共阳极数码管进行驱动。

本项目实际采用动态扫描显示驱动数码管。

推算一下数码管所需电流

本项目实际采用动态扫描显示驱动数码管,因而在同一时刻,最多仅有8个段的数码管(或理解为LED)被点亮,或者说有某一位被点亮。根据设计,所需驱动电流即为IO口高电平电压3.3V÷300Ω≈11mA。

此时应注意选型的MCU是否有足够的拉电流/灌电流的能力。

image.png

image.png

由数据手册分析可知,CW32么得问题。(有些芯片是不行的)

6、LED指示灯

本项目额外设计了一个电源指示灯和IO工作指示灯。

image.png

LD_PWR为电源工作指示灯

image.png

由于芯片I/O往往灌电流的能力大于拉电流的能力,所以,LED1设计为I/O低电平有效(亮)。

出于减少LED对电流的消耗的考量,放弃部分LED亮度,减少器件参数类型,将LED的限流电阻选择为10K。

7、按键电路设计

image.png

按键控制电路有多种设计方式,得益于CW32的I/O口内部可以配置上下拉电阻,在芯片外围的按键控制电路则无需配置。按键一端接入MCU的I/O上,另一端接地。按键按下,I/O被拉低。

8、用于电压测量校准的TL431电路设计

本项目额外增加了一个TL431电路用来提供一个2.5V的基准电压,可用于给芯片一个用于校准AD的外部电压基准,从产品设计角度来讲,由于CW32本身的ADC性能优势,可以不需要此电路。在开发板上设计此电路,用于学习相关应用原理。

image.png

 

三、产品图及简单介绍

pcb板实物图

感谢嘉立创的每月白嫖计划,一次打了5张板,不得不说嘉立创的沉金和彩色丝印工艺真的好看。

焊接好元器件后的样子,CW32开发板的跳线我改成了单刀双掷开关

 

按装好外壳后的样子,第一次画板子经验不足,长边立面板子短了6mm,开源文件中的图纸已做更改。亚克力外壳数码管位置做了开窗处理,目的是为了减小反光,如果有美观和完整性需要,也可以删除此处开窗。

 

最后感谢立创开发板和芯源半导体组织的这次训练营,让我系统的学习了pcb画板和开发板相关知识。

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
参赛作品视频.mp4
0
2
带有标定功能的数字电压电流表.rar
2
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航