1.概述 本设计以STM32F103RCT6为主控芯片,利用MOS管的恒流区特点,设计恒流源。设计电流范围为1-300mA。
2.原理 基本原理图:
文章图片
Q2为N沟道MOS管,在正常工作情况下,运放与MOS管之间构成深度负反馈,使得输入控制电压与Vr虚短,近似相等。这可以得到负载电流
文章图片
。
3.硬件设计 3.1.电源
电路图如图所示:
文章图片
电源由+12V单电源输入,产生了正负5V双电源和+3.3V电源。+12V与-5V为运放电源,+5V为DAC电源,+3.3V为STM32、OLED电源。
3.2.DAC控制
电路如图所示:
文章图片
LM385BD-2-5为DAC提供电压参考,参考电压为2.5V。74LVC4245A为电平转换器,使得3.3V电平与5V电平兼容。DAC1220为16/20位DAC,使用时设置的是20位DAC。
3.3.控制输出
电路如图所示:
文章图片
运放使用OPA2277U精密运放,经过第一级运放耦合后,再与MOS管构成负反馈电路。MOS管信号为IRF640,IRF640的漏源极电阻小,为180m
文章图片
,对参考电阻影响小。参考电阻R10、R11、R12采用的是10R的金属箔电阻,温漂小,可以减小在大电流的情况下,温升所造成的影响,使得电流值稳定。
4.DAC1220程序设计 DAC1220采用SPI时序控制,只利用了SPI的时钟线,主发从收线和片选。
DAC1220相关程序:
/*
函数功能:使能器件
*/
void enable_DAC1220(u8 set)
{
CS = set;
}void DAC1220_toggle(void)
{
CS = 1;
delay_us(800);
CS = 0;
delay_us(400);
}/*
函数功能:DAC1220写入一个字节数据
参数: data:写人的数据
SPI时序
*/
void DAC1220_write(u8 data)
{
u8 i;
CLK = 0;
DIO = 0;
for(i=0;
i<8;
i++)
{
delay_us(10);
CLK = 1;
delay_us(10);
DIO = ((data&0x80)? 1:0);
data<<=1;
delay_us(10);
CLK = 0;
delay_us(10);
DIO = 0;
}
}/*
函数功能:DAC1220初始化
*/
void Init_DAC1220(void)
{
enable_DAC1220(0);
//开启器件 低电平有效
delay_us(400);
DAC1220_write(0x04);
//定位到控制寄存器的高8位
delay_us(400);
DAC1220_write(0x02);
//清除校准寄存器的值
DAC1220_toggle();
DAC1220_write(0x05);
//定位到命令寄存器的低8位
delay_us(400);
DAC1220_write(0x00);
//正常模式,数据从高位开始写入
delay_us(400);
enable_DAC1220(1);
delay_us(800);
enable_DAC1220(0);
delay_us(400);
DAC1220_write(0x04);
delay_us(400);
DAC1220_write(0x00);
DAC1220_toggle();
DAC1220_write(0x05);
//定位到命令寄存器的低8位
delay_us(400);
DAC1220_write(0xA1);
//20位DAC,标准模式,自校准
delay_us(100);
enable_DAC1220(1);
delay_ms(50);
}/*
函数功能:DAC写入编码值数据
输入到24位的数据寄存器
*/
void DAC1220_value(u32 value)
{
enable_DAC1220(0);
delay_us(800);
DAC1220_write(0x00);
//数据输入寄存器的高8位
delay_us(400);
DAC1220_write((value>>12)&0xff);
//取出高8位
DAC1220_toggle();
DAC1220_write(0x01);
//数据寄存器的中间8位
delay_us(400);
DAC1220_write((value>>4)&0xff);
DAC1220_toggle();
DAC1220_write(0x02);
//数据寄存器的低8位
delay_us(400);
DAC1220_write((value<<4)&0xf0);
DAC1220_toggle();
enable_DAC1220(1);
delay_ms(200);
}
5.实物图
文章图片
【基于STM32的恒流源设计】完整的电路图与程序,我上传到了CSDN上,链接https://download.csdn.net/download/qq_37405067/13117465
推荐阅读
- stm32|MDK最新版安装与和谐全过程
- windows|Windows 11正式版来了!一文带你免费升级、镜像下载、最低系统要求
- 蓝桥杯模块|蓝桥杯单片机模块代码(PCF8591)(代码+注释)
- 蓝桥杯单片机|蓝桥杯单片机-DAC-用板载板载PCF8591芯片在D/A引脚上输出指定的电压
- 蓝桥杯单片机|蓝桥杯单片机-ADC-A/D转换-测量PCF8591中AIN1通道(光敏电阻RD1)的电压
- stm32|STM32F4定时器CH3和CH4通道进行PWM捕获问题
- 蓝桥杯嵌入式STM32定时器PWM输出、PWM捕获
- #|【蓝桥杯嵌入式】【STM32】10_InputCaputer之输入捕获
- #|【蓝桥杯嵌入式】【STM32】13_PWM输入捕获模式