最近在使用中微CMS8S3680/69xx系列8位单片机来进行电源控制软件开发。
总体觉得这款单片机简单易用,特别是它的数字功能可以映射到任意脚,甚至包括程序的烧录脚,对于PCB布局特别灵活。另外它的存储器资源也是很丰富的,16K字节ROM,256字节RAM以及512字节的XRAM,对于一般的程序是绰绰有余了。编程方面它也有库函数包装好了相关的寄存器设置,无论是使用库函数还是直接设置寄存器都能快速构建应用。详细情况及资料下载可以访问其官方网站:中微半导-CMS79F11x
本次编写的一个程序也是电源控制方面的,软件没有时序要求,比较简单,功能需求大致如下(只说明了各个引脚的功能):
| 引脚 |
引脚特性 |
网络名 |
功能 |
功能要求 |
| 1 |
/ |
GND |
地 |
|
| 2 |
A/D采样 |
12VS |
检测12V输出电压 |
输出10.8V-12.6V为正常(2.5-2.8V) 输出>13V,4脚出高(打嗝保护)(3V保护,2.8V恢复正常) 输出<10V为异常(2.31V保护,2.5V恢复正常) |
| 3 |
输出 |
12V_JLOFF |
12V均流关断信号 |
12V输出正常时,输出高电平 12V输出异常时,输出低电平 (默认出低电平,检测2脚状态) |
| 4 |
输出 |
12V_OFF |
12V关机信号 |
关机:输出高电平(打嗝保护,间隔时间3.5S) 开机:输出低电平,默认低电平 (默认出低电平,检测2脚、7脚) |
| 5 |
A/D采样 |
OT2 |
过温保护+风扇调速 |
型号:TTC3A104J4193LY 过温保护点为105℃,恢复点为85℃ 保护时关闭两路输出 |
| 6 |
A/D采样 |
DSCK |
检测53V过流保护、过压保护 |
检测为高,关闭53V输出 检测为低,恢复53V输出 |
| 7 |
A/D采样 |
12V_OCP/ |
检测12V过流保护 |
检测为高,关闭12V输出; 检测为低,恢复12V输出 |
| 8 |
A/D采样 |
F_F |
风扇故障检测 |
检测高电平,风扇故障 检测低电平,风扇解除故障 |
| 9 |
输出 |
FAN_F |
风扇故障告警 |
检测风扇故障:出高 检测风扇正常:出低,默认出高 |
| 10 |
输出 |
FAN_PWM |
风扇PWM信号 |
根据OT2温度进行风扇调速 |
| 11 |
输出 |
OUT_LED_R |
亮红灯 |
12V /53V输出异常出高(电源风扇异常、输出过压、输出限流、输出短路、电源过温保护) 输出正常出低,默认出高 |
| 12 |
输出 |
OUT_LED_G |
亮绿灯 |
输出正常,出高亮绿灯 输出异常出低,默认出低 |
| 13 |
A/D采样 |
PG_IN |
检测53V输出正常 |
正常为高 异常为低 |
| 14 |
输出 |
53V_OFF1 |
53V输出关机信号 |
关闭输出,出高(打嗝保护,间隔时间3.5S) 恢复输出,出低 |
| 15 |
/ |
DSDA |
数据 |
/ |
| 16 |
VDD |
供电脚 |
/ |
单片机原理图部分如下:

源程序如下:
1、main.c:主程序,所有程序逻辑的控制基本都是在这里,以下几个函数大致说明一下:
ADC_Process():主要用于检测12V输出的电压和NTC贴片电阻进行过温检测;
Process_1MS():1毫秒任务处理,主要IO滤波和54V输出异常检测;
Process_10MS():10毫秒任务处理,用于过流/过压打嗝的定时计数;
OCP_Process():12V和54V输出过流打嗝标志位设置和清除;
Task_Manager():根据设置的标志位对输出的通断进行控制以及各个告警信号的输出控制;
Adjust_FAN_Duty():

本文介绍使用中微CMS8S3680/69xx系列8位单片机进行电源控制软件开发。该单片机简单易用,数字功能映射灵活,存储器资源丰富,编程方便。还给出电源控制程序的功能需求、原理图及源程序,包括各文件功能和主要函数说明。
最低0.47元/天 解锁文章
8012

被折叠的 条评论
为什么被折叠?



