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.实物图

完整的电路图与程序,我上传到了CSDN上,链接https://download.csdn.net/download/qq_37405067/13117465

基于STM32的恒流源设计相关推荐

  1. 基于stm32无线充电器设计

    目录 一.项目描述 二.原理图 三.实物 四.论文 五.程序 六.资料清单 资料下载地址:基于STM32无线充电器设计 一.项目描述 本项目设计了一款用于小功率电子设备的无线充电器,该充电器由发送控制 ...

  2. 基于STM32指纹密码锁设计

    基于STM32指纹密码锁设计 程序.仿真.原文 本设计主要由stm32f103rct6单片机.AS608指纹模块.LCD1602显示屏.AT24C02存储模块.继电器和指示灯组成,该指纹密码锁是以st ...

  3. 基于STM32的课程设计(毕业设计)——篮球记分器

    写在前面-- 文章将介绍一个基于STM32的课程设计--篮球记分器.本设计由QFNU'2019级电子信息工程的CHQ小组完成.从开始到完成一共用了3个周的课余时间.C同学完成了作品的整体思路构建与程序 ...

  4. 基于STM32智能窗帘设计proteus仿真

    本设计: 基于STM32智能窗帘设计(含源程序+proteus仿真) 仿真:proteus8.11 程序编译器:keil 5 编程语言:C语言 编号C0007 [腾讯文档]C0007 网盘链接 资料下 ...

  5. 基于stm32单片机电子秤设计

    基于stm32电子秤设计 基于STM32F103C8T6计价电子秤 模块:采用STM32F103C8T6+LCD1602液晶显示+4*4矩阵按键+电子秤+hx711压力传感器 设计功能: 1.液晶显示 ...

  6. 基于stm32电子时钟设计

    电子万年历的链接 基于STM32的电子万年历设计 摘 要 随着社会的发展,我们生活中充满了电子产品,我们IT信息人才就是要解决问题的.我们日常生活中需要了解时间,日期温度等模拟量,那么我们平时也可以看 ...

  7. 基于STM32的倾斜仪设计(一)—— 硬件设计(1)

    开一篇博客记录一下自己的毕设工作. 在此次设计中,我们选用stm32作为控制核心和处理核心,并辅以485通信,可以实现倾斜仪与上位机的通信功能. 在设计完成之后,我们将其应用于工业现场,测量吊篮的倾斜 ...

  8. 基于STM32的数显温度计设计

    一.设计目的 利用STM32完成数显温度计的制作,功能包括实时温度显示(摄氏度与华氏度),高温与低温报警,以及温区设置. 二.设计方案 系统采用STM2F103C8T6芯片实现,温度传感器采用DS18 ...

  9. 基于STM32的倾斜仪设计(二)—— 硬件设计(2)

    2.4控制电路 本实验中选用的控制核心是STM32系列单片机,具体型号为STM32F103R8T6.STM32F103R8T6是一款嵌入式-微控制器集成电路,是ST旗下的一款常用的增强型系列微控制器. ...

最新文章

  1. 十问陆奇:努力、能力和机遇,谁能帮你跑赢未来?
  2. vi命令,印在杯子上,还是印在脑子里。
  3. LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
  4. python映射类型-详解Python中映射类型(字典)操作符的概念和使用
  5. [蓝桥杯][2018年第九届真题]小朋友崇拜圈(简单图论)
  6. P2472-[SCOI2007]蜥蜴【网络流】
  7. 光耦在短距离通信中的应用
  8. 项目基于vue-uniapp,使用colorUi与uview框架,完美支持微信小程序
  9. libz.so.1: cannot open shared object file: No such file or directory
  10. Linux内核 触摸板,Linux下关闭触摸板和触摸杆
  11. 【原】执行nosetests 报错:pkg_resources.DistributionNotFound: nose==0.10.4
  12. 关于一个flask的服务接口实战(flask-migrate,flask-script,SQLAlchemy)
  13. python 异步IO编程
  14. 谈腾讯地图web api如何实现类似百度地图内置的城市切换、关键字输入提示功能
  15. Linux------进程概念、进程控制
  16. jquery前端简单分页_如何使用jQuery创建简单的分页
  17. 浅谈小学语文教学中的读
  18. 求多项式浮点java思路,求多项式函数实数根的方法
  19. 毕业设计 STM32单片机的蓝牙智能计步器手环
  20. 【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅱ——配置RemoteAPP和访问

热门文章

  1. 常用PC服务器阵列卡、硬盘健康监控
  2. 8.抓取西刺网站(代理ip网站)
  3. DJ2-2 进程管理
  4. python数据分析:数据拆分,数据合并,数据筛选
  5. 视频教程-数据库SQL查询,最佳案例讲解-SQL Server
  6. HTML 网页打印实现分页打印功能
  7. 怎样设置网页中的文字样式
  8. python循环案例:模拟银行ATM存款取款
  9. C# 国际化问题之CultureInfo(小数点的不同一些欧洲国家习惯使用,而非.)
  10. 什么是威胁建模及其最重要的优势?