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.实物图
完整的电路图与程序,我上传到了优快云上,链接https://download.youkuaiyun.com/download/qq_37405067/13117465