简易电流源
作者:lansebuluo
- 作品简介
在项目开发过程中,有时会用到标准电流源,来测试产品性能指标,例如4-20mA采样电路、交流电流互感器采样电路,市面上的信号源多为电压输出型,电流型的价格又比较高,萌生出制作一个标准电流信号源。采用STM32微控制器作为控制单元,通过SPI接口控制数模转换器产生标准电压信号,然后通过模拟量转换电路转换为电流信号输出,分为DC模式、AC模式,电流信号的大小为-200mA~+200mA。接口采用WIFI模块与PC机进行通信,能够设置电流信号模式、频率、幅值。
在此项目中,用到的主要芯片如下:STM32G473CBT6、AD5449、ADR01、CA-IS3741HW、OPA2277、OP1177、TIP42C、TIP41C等,主要用到的成品板卡NUCLEO-G491RE、STLINK-V3MODS、ESP-01S(WIFI)功能。
STM32G473CBT6具有Arm®32位Cortex®-M4 CPU,带FPU,频率高达170 MHz,带有213 DMIPS、MPU和DSP指令,拥有512 KB闪存和 96 KB SRAM,具有CAN、SPI、I2C、USART等多种外设。这里使用这颗芯片,主要注重SPI速度和运行频率,可以对波形进行快速计算并通过SPI接口更新到DAC。
AD5449为数字到模拟转换芯片,具有12位分辨率,50 MHz 串行接口,2.47 MSPS 更新速率。
ADR01为高精度参考电压源,3ppm/°C 典型值,为DAC提供稳定参考电压。
CA-IS3741HW为高速四通道数字隔离器,信号传输速率从 DC 到 150Mbps,5.0kV的隔离耐压值。
OPA2277、OP1177为高精度低温度系数运算放大器,提供模拟信号的相互转换。
TIP42C、TIP41C为功率三极管,提供输出电流能力。
NUCLEO-G491RE主要扩展了按键和显示功能,其特点如下:
•LQFP64或LQFP48封装中的STM32微控制器
•与ARDUINO®共享1个用户LED
•1个用户和1个重置按钮
•32.768 kHz晶体振荡器
•板连接器:
–ARDUINO®Uno V3扩展连接器
–ST morpho扩展引脚头,可完全访问所有STM32 I/O
•灵活的电源选项:ST-LINK USB VBUS或外部电源
•具有USB重新枚举功能的板载ST-LINK调试器/编程器:
STLINK-V3MODS为仿真调试器,为核心控制器提供调试功能。
ESP-01S为wifi转UART模块,提供方便的WiFi连接功能。
主功能板
按键与显示板
仿真器
- 系统框图
此项目的设计思路如下图所示:
总体框架图
核心板框架图
核心板作为整个设备的核心,计算输出波形的数字量,并通过SPI控制DAC产生想要的电压波形。其外部接口主要包括SPI接口扩展DAC芯片,USART与WIFI模块,USART与按键和显示功能板,核心控制芯片由STLINK-V3MODS提供仿真调试功能。
MCU控制芯片外设图
MCU控制芯片外设提供了STM32G473运行必要的接口,包括电源供电端口,芯片启动BOOT引脚选择,其它GPIO的功能引出到H5。
数字隔离端口
高速数字隔离器电路,用于MCU和模拟量之间的隔离,主要是SPI接口隔离,使用了一片四通道和一片两通道隔离芯片。信号传输速率从 DC 到 150Mbps,2.5kV的隔离耐压值。
DAC转换图
一片AD5449芯片上有两个DAC,基准电压由ADR01(10V)和ADR02(5V)提供,经两个运放芯片组成双极电压输出。这个电路是按照说明书做的,不应该有什么问题,还是大意了,有两路DAC,一路设计没有问题,一路设计少画了一根线,自己设计的电路图,以表明问题点。
芯片推荐示意图:
核心板效果图
电压转换电流电路
这个电路设计的比较巧妙,这出自于模拟电路书上,经过自己改造的,通过仿真软件进行了试验,这个电路没考虑输出带载的能力,输出电流受负载阻值影响,电路还需要优化。
ESP-01S接口电路
除了供电电源3.3V外,需要复位引脚和使能引脚为高电平,接口对应核心板的USART的接收和发送引脚。按键的功能是用于更新ESP-01S模块的程序。
板载电源
电路板使用多个3.3V,这里为了精度,模拟量、数字量各使用独立的3.3V电源。
电流转换板效果图
STLINK-V3MODS接口板
STLINK-V3MODS是一个很小的板,当时购买没太在意,回来后发现不能直接使用,根据官方的资料,做了一个接口板,扩展出了SWD、JTAG、虚拟串口,此项目的程序调试仿真,通过这个板的SWD接口完成。配置ESP-01S模块即使用虚拟串口完成,这个板用起来还是挺方便的。
STM32-V3MODS效果图
按键图
旋转编码器
按键显示板效果图
三、各部分功能说明
3.1 按键显示功能
有6个按键和一个旋转编码器,分别对应功能如下所示:
第一行显示:电流设置值,频率值,例如: 300mA 50.00Hz。
点击确定后,第二行出现设置值,反显电流设定值,可以通过左右移动,更改设定值是电流或者频率。
再次点击“+”或“-”后,对设定值进行更改,右侧出现更改幅度。
更改完成后,再次点击确定,更新到第一行,下发设定值到控制板卡。
当PC端设定电流输出值时,设定值更新到屏幕。
按键显示板由NUCLEO-G491RE完成控制,与主板之间通过USART进行通信。
3.2 通信格式
主板通过两个独立的USART分别于按键显示板和WIFI模块进行通信,通信格式相同,如下所示:
起始、命令、结束字符固定,分别为0xAA、0x01、0x55。
频率单位为0.01Hz,即当数值为5000时,实际频率= 5000 * 0.01Hz = 50.00Hz。频率范围为0-66Hz,当频率为0时,代表DC模式,其它数值为AC模式。
幅值单位为1mA,即当数值为200时,实际幅值= 200 * 1mA = 200mA。
3.3 PC端
PC端有个类似服务器的软件,等待设备的连接,当设备启动后,主板进行AT指令,配置ESP-01S模块,连接WIFI路由器,并试图访问TCP服务器,当访问成功时,配置ESP-01S模式为透传模式。此项目的软件由VS2015中的MFC编写,可通过软件设置电流和频率值。
上位机软件界面
3.4 电路仿真
模拟电路的仿真软件很多,像Pspice,Saber软件,据说好用,但是收费,想我这种小白,不需要很强大稳定的功能,只需要简单操作,能够仿真出结果即可,对性能指标要求不是很高,所以选择了ADI公司的LTspice软件,软件的标是凌力尔特,凌力尔特已经被ADI收购了,自从ADI把凌力尔特和美信收购后,感觉ADC和DAC的价格就上了好几个台阶,难道这就是传说中的垄断可控制价格吗,害苦了像我这种电子爱好者了。当然除了LTspice,还可以使用TI公司的TINA-TI,本人没有使用过,所以也不再考虑这个软件了。上学的时候使用过Multisim,Multisim是美国国家仪器(NI)有限公司,需要破解。
综合考虑之后,使用了LTspice软件,,软件不到70MByte,根据版本有所不同,软件还是蛮小的。
电路仿真图
- 作品源码
主板软件,主要实现配置WiFi模块,控制DAC输出电压波形,与按键显示板通信。
按键显示板软件,扫描按键和旋转编码器,控制液晶显示模块。
上位机软件,建立TCP服务器,与连接的客户端进行通信,传递电流和频率值。
五、作品功能演示视频
操作按键设置200mA 50Hz电流
操作按键设置150mA 55Hz电流
操作按键设置100mA DC 电流
上位机操作上述步骤一遍:
六、项目总结
这个项目的完成主要由硬件电路设计、软件设计、软硬件调试、功能测试四部分。其中硬件电路设计使用了立创的免费EDA,电路不是很复杂,应付这个没有问题,使用这个软件主要是器件库方便,这节省了很多时间,同时还能免费PCB打样,节省了成本。其它设计的主要器件从得捷电子下单购买,其它一些器件从某官方商城购买。
在得捷下单后,7天左右的时间,物品即到了,这个包括一个STM32的开发板,在设计的电路板没到之前,可以提前进行SPI接口、USART、显示软件的调试,节省了很多时间。
从上面的介绍中,大部分都在说硬件东西,此项目中做了四块电路板,新作的电路板需要一个调试过程,自己也是很粗心,核心板一条线没有画,把一片DAC损坏了,通过飞线进行了修正。电流转换部分,使用了双路运放,造成电路不能正常工作,重新设计了PCB。
感谢得捷电子和EEWORLD,让我体验了从原理图设计、电路板焊接、软件设计、板卡调试、功能测试等还算完整的项目设计过程,也许项目完成的并不是很好,但这个过程让我体会深刻。
本帖最后由 lansebuluo 于 2024-1-9 09:10 编辑