
开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
一、IC概要
1.1 荧光管驱动IC__HV5812
HV5812这款芯片是在CSDN上另一个老哥的帖子那里看到的: 前苏联IV-18荧光数码管时钟开发(ИВ-18)
用这款芯片的人并不是很多,我觉得有以下两个方面原因:
- 很难买,而且太贵了(阿里巴巴一颗15不包邮)
- 对于本文这种只使用一颗HV5812的方案而言,只能动态刷新,因此需要更高的栅极电压
ULN2803达林顿管+译码器的方案是静态刷新,相同栅极电压下更亮(该电压下动态刷新基本用不了)
本文选HV5812作为驱动有以下几点考虑:
- 节省PCB面积,不需要使用8个译码器和8个驱动IC
- 用SPI接口完成数据传输,占用MCU引脚少
- ULN2803是8位达林顿管,但YS27-3是9段的,因此有一个段无法显示。
HV5812有20路输出,可以用一半输出控制荧光管栅极,另一半输出控制荧光管段码
1.2 MCU__STM32F103CBT6
主要是因为是LQFP48封装,引脚再少的话就是QFN封装了,不好焊接
题主在做这个的时候其实不是很熟悉ST的单片机,但毕竟是主流还是逐渐学习学习,也方便大家移植
1.3 WIFI__ESP-01F
安信可的一款小体积wifi模块,带SPI和串口,wifi芯片为乐鑫ESP8285
这次开发就用内置的AT固件了,其实直接用这个做主控也是没问题的
1.4 时钟IC__DS3231
很老的一款时钟芯片了,用它做计时、断电保存、生成1Hz中断
二、硬件电路
2.1 HV5812
网络名 | 说明 |
---|---|
VCC35 | VFD驱动电压 |
VCC33 | 3.3V |
GRID1—GRID8 | 荧光管1-8的栅极 |
YS27-1—YS27-9 | 荧光管的段码,所有荧光管段码串联 |
5812_BLANKING | SPI片选线,接入SPI主机的CS |
5812_DATA | SPI数据线,接入SPI主机的MOSI |
5812_STROBE | 锁存,高电平锁存当前显示状态 |
5812_CLK | SPI时钟线,接入SPI主机的CLK |
2.2 STM32F103C8T6
最小系统:
网络名 | 说明 |
---|---|
VCC33 | 3.3V电源 |
NRST | 复位 |
SWCLK | SWD时钟线 |
SWDIO | SWD数据线 |
BOOT0 | 启动位置选择 |
BOOT1 | 启动位置选择 |
DS3231:
网络名 | 说明 |
---|---|
3231_SCL | DS3231 IIC 时钟线 |
3231_SDA | DS3231 IIC 数据线 |
3231_INT | DS3231中断线 |
DS3231是IIC总线的,SCL和SDA要接上拉电阻,在下面DS3231的原理图里接的。
除此之外还接了一条中断线,可以配置DS3231的寄存器输出1Hz或32.768kHz的中断信号,这里主要是考虑到在时钟更新后再去通过IIC读取,节省MCU算力。因为我们是利用人眼的视觉暂留效应,动态刷新荧光管的,执行耗时的操作会降低刷新频率,很影响观感,所以在写程序的时候要十分注意不要进行连续的耗时操作。
HV5812:
网络名 | 说明 |
---|---|
5812_STROBE | HV5812的锁存,高电平锁存当前显示状态 |
5812_CLK | HV5812的时钟线,接入SPI主机的CLK |
5812_DATA | HV5812的数据线,接入SPI主机的MOSI |
5812_BLANKING | HV5812的片选线,接入SPI主机的CS |
ESP-01F:
网络名 | 说明 |
---|---|
ESP_RX | ESP-01F的串口接收引脚,接MCU的TX |
ESP_TX | ESP-01F的串口发送引脚,接MCU的RX |
ESP_SPI_MOSI | ESP-01F SPI的MOSI引脚,接MCU SPI的MISO引脚 |
ESP_SPI_MISO | ESP-01F SPI的MISO引脚,接MCU SPI的MOSI引脚 |
ESP_SPI_CLK | ESP-01F SPI的CLK引脚,接MCU SPI的CLK引脚 |
ESP_SPI_CS | ESP-01F SPI的CS引脚,接MCU SPI的CS引脚 |
其他:
网络名 | 说明 |
---|---|
BUZZER | 蜂鸣器,接一个可以输出PWM的定时器 |
LED1 | LED灯2 |
LED2 | LED灯1 |
KEY1 | 按键1 |
KEY2 | 按键2 |
2.3 ESP-01F
按照Datasheet链接即可,因为是射频模块,要注意手册上写的布局注意事项。
预留了一个TX/RX插针,供调试使用。
当MCU将UART的对应引脚配置为数字功能时,外接的UART(串口转USB调试器)就无法使用了。在用PC调试的时候关闭数字功能即可。
2.4 DS3231
没有什么特别需要说明的。
右侧的备用电池用了一个充电电路,在CSDN的大佬那里扒的~
2.5 XL6007E1 升压电路
用于给荧光管提供驱动电压。这里将5V升到35V。
实际中我没有使用35V(因为炸了好几次钽电容...),可根据实际需要调整
YS27-3的手册上写明栅极电压为12V,占空比工作电压更高(50%的PWM下工作电压我记得是50V)
因为我们是动态刷新,所以电压高点也没关系,看你对亮度的要求。
值得注意的是,为了节省体积后面的升压电路用了钽电容,但耐压值较低,输出不能超过耐压值!!!
C51电容越大电源纹波越小,但耐压值也会变小!因此不是很好找耐压高的钽电容。
现在用的是28V的工作电压,47uF35V的钽电容,电源纹波还没测过,但是能用。
(题主对BOOST所知甚少,本电路仅供参考,请小心调试谨防电容爆炸)
2.6 1.2V降压电路
从CSDN大佬那里扒的降压电路~实测能用
2.7 3.3V稳压电路
2.8 蜂鸣器、按键及LED
三、软件代码
软件还没有完全写完,只是一个demo,全都做完会更新。
四、外壳
五、结语
荧光管时钟是我在硕士期间疫情在家就开始做的,因为是机械专业,当时还丝毫不懂电路知识。
现在总结下来当时就有一个毛病,没有沉下心来先学习再去做
因此每次都有一些小问题,自己也解决不掉,就会想着放弃;
要么就是有一点小问题就像全都重新做的完美主义。
但没做好,过一段时间就总会再想起来接着做。
这也是断断续续做了这么久的原因。
总是想着一步到位,却会离成功越来越远。
以下是一些过往的版本。
虽然进展缓慢,但最有趣的果然是过程~
希望有所热爱的朋友们能坚持下去,进一步有进一步的欢喜!
以后请继续加油!
设计图

BOM


评论