STM32F103 · 24 位 ADC · 16 位 DAC · PID 温控 · 双路完全独立
本系统用于同时驱动并监控两路半导体激光器。每一路配备独立的采集、驱动与温控通路, 互不干扰;也可按机型配置为单路或两路共用一路温控。
每路通过 24 位 ΔΣ ADC 采集电流与温度,16 位 DAC 输出控制量,结合 PID 闭环实现恒流驱动与 精密温控。设备自带 480×320 触摸屏双列显示两路实时数据,同时支持串口与 BLE 远程控制。 设定值掉电保持,上电自动恢复。
PGA 增益自动切换
激励电流自适应
兼顾小信号分辨率与大信号防饱和
每通道独立 PID 参数
独立参数存储
独立错误检测与保护
480×320 双列布局
同步显示两通道数据
长按快速调节 / 触摸开关
ASCII 指令集
双通道电流与温度设定
实时数据周期上报
过流保护
温差保护
传感器故障检测
错误锁存与告警
设定值延时自动写入 Flash
带校验保护
掉电恢复上次工作参数
| 参数 | 指标 |
|---|---|
| 主控 | STM32F103(Cortex-M3) |
| 采集 | ADS1220 ×2,24 位 ΔΣ,最高 2000 SPS,外部基准 |
| 输出 | DAC8562 ×2,16 位双通道,外部基准 |
| 电流测量 | 采样电阻 + 前端放大,量程自动切换 |
| 温度测量 | NTC 10KΩ(B=3950),激励电流自适应 |
| 电流输出范围 | 0 ~ 2000 mA |
| 电流稳定精度 | ±0.1 mA(稳态) |
| 温度控制范围 | -15 °C ~ +65 °C |
| 温度稳定精度 | ±0.1 °C(稳态) |
| TEC 控制 | PID 闭环,参数可按机型配置 |
| 输出模式 | 直流连续 / 脉冲(频率 1~1000 Hz,占空比 1~99%) |
| 显示 | ST7796S 3.5 英寸 IPS TFT,480×320,双列同步显示 |
| 触摸 | FT6336 电容触摸 |
| 通讯接口 | 串口 115200 bps / BLE 透传 |
| 安全保护 | 过流、温差、传感器故障检测;异常锁存与告警 |
| 参数存储 | 片内 Flash,掉电保持,上电自动恢复 |
| 机型配置 | 单路 / 双路独立 / 双路共用温控,按机型固件配置 |
系统按功能划分为以下几个部分,各自独立工作、协同配合:
目标温度、激光电流、工作模式与脉冲参数的设定与校验
两路温度与电流的连续采集、屏幕显示与周期上报
恒流驱动与 TEC 恒温控制,自动维持设定值
过流、温差、传感器故障的检测、锁存与告警
串口与 BLE 的命令收发、状态与实测数据上报
设定值掉电保持,上电自动恢复上次工作状态
设备可通过串口或 BLE 与上位机通信,命令采用 ASCII 文本,便于快速集成到自有系统中。
统一格式为 #<动作> <目标><通道> [参数],
以回车换行结束。通道取 0 或 1,表示作用在哪一路。
| 动作 | 目标 | 通道 | 参数 | 示例 | 说明 |
|---|---|---|---|---|---|
| set | temp | 0 / 1 | 目标温度 °C | #set temp0 25 | 设定该通道的目标温度 |
| set | ld | 0 / 1 | 电流 mA | #set ld0 500 | 设定该通道的激光电流 |
| set | ld | 0 / 1 | on / off | #set ld0 on | 开启或关闭激光输出(需温控已就绪) |
| set | tec | 0 / 1 | on / off | #set tec0 on | 开启或关闭该通道的温控 |
| set | mode | 0 / 1 | dc / pulse | #set mode0 pulse | 切换直流或脉冲输出 |
| set | pwmf | 0 / 1 | 频率 Hz(1~1000) | #set pwmf0 100 | 设定脉冲频率 |
| set | pwmd | 0 / 1 | 占空比 %(1~99) | #set pwmd0 50 | 设定脉冲占空比 |
| get | — | #get | 查询全部设定值与当前状态 | ||
每帧固定 22 字节,结构为
AA FF | 类型 | 长度 | 数据(16 字节) | 校验1 | 校验2,
采用双重累加校验,抗干扰能力强。
| 类型 | 名称 | 发送时机 | 数据内容 |
|---|---|---|---|
0xE0 | 命令应答 | 收到下行命令立即回复 | 命令编号、执行结果、被阻断的原因 |
0xF0 | 设定值上报 | 每 100 ms | 通道0 温度设定、通道0 电流设定、通道1 温度设定、通道1 电流设定(4 个浮点数) |
0xF1 | 通道状态上报 | 每 500 ms,每通道各一帧 | 通道号、状态位、错误码、脉冲频率、脉冲占空比 |
0xF2 | 实测值上报 | 每 100 ms | 通道0 温度、通道0 电流、通道1 温度、通道1 电流(4 个浮点数) |
0xF1 帧中的状态位含义如下:
| 位 | 含义 |
|---|---|
| bit0 | 激光输出已使能 |
| bit1 | 温控已使能 |
| bit2 | 温度已稳定 |
| bit3 | 温度传感器已正确连接 |
| bit4 | 输出模式(1 表示脉冲,0 表示直流) |
| bit5 | 激光被自动禁用(触发保护) |