20字符(HPDL-1414*5)显示模块(串行协议、兼容SPI)

引子

HPDL-1414是一种支持部分ASCII(大写字母、数字、一部分特殊符号,具体来说是0x20~0x5F的字符)的四位数码管显示模块。HPDL-1414相较于普通数码管来说体积极小,作为显示模块颇有复古韵味。单个HPDL-1414的四个字符很难满足我们对显示字符的需求,并且HPDL-1414使用并行协议,会占用大量的端口,因此设计了仅需三根数据线就可驱动20字符的显示模块,并且兼容SPI协议。

模块使用

模块所需供电端口3个:+3.3V(为逻辑模块供电)、+5V(为HPDL供电)、GND,数据线逻辑电平为+3.3V,若使用+5V逻辑电平则+3.3V接入+5V。

数据端口3个:SCK、MOSI、CS,SCK为时钟信号,在上升沿读取MOSI上的信号,MOSI先发高位,CS为使能信号,CS上升沿刷新数据,此协议兼容SPI(单边沿、8位,低极性、MSB先发、无CRC、仅TX),最大时钟频率为60MHz(理论)、50MHz(实测)。

模块驱动已在GitHub开源,并且提供了一个样例工程:

模块制作

硬件部分在立创开源:HPDL1414x5显示模块(20字符、兼容SPI),PCB宽90mm,高20.1mm与HPDL-1414高度相同。

排母建议选择矮的圆排母,普通排母插的不是很稳。

通信协议

单次通信需要发送两个字节作为一个数据包,第一个字节为地址、第二个字节为ASCII,最右侧字符的地址为0x00(0),最左侧为0x13(19),ASCII的范围为0x20~0x5F。在每次实际刷新字符后,需要再发送一个地址为0xFC,ASCII为此次发送值的数据包以保证下次能正常刷新。

例如刷新0x10地址的字符为『1』(ASCII:0x31),首先正常发送数据包:

随后还需要发送一个地址为0xFC,ASCII为0x31的数据包。

实现原理

HPDL-1414

HPDL-1414共12个引脚,包含7个数据引脚(D0~D6),两个地址引脚(A0~A1),写控制(~WR)和两个电源引脚(VDD、GND),其种VDD为5V,逻辑电平兼容TTL(高电平2.0V)。注意1引脚为D5,12引脚为D6,6引脚VDD的对面是7引脚GND(引脚顺序按逆时针旋转)。

通信也很简单,保证写控制低电平时D0~D6、A0~A1有效即可。

串转并

HPDL-1414光是数据引脚都有7个,如果要直接驱动5个HPDL-1414就需要7+2+5=14个引脚,显然这太多了。为了减少数据引脚,我们容易想到使用串转并芯片,例如74HC595(8位串行输入、并行输出的缓存器),为了减少地址线,我们可以使用译码器,例如74HC138(38译码器)。

74HC595

74HC595主要由一个移位寄存器(将串行数据转换为并行数据)、锁存器(用于控制实际输出的数据)、三态控制构成。

DS(14引脚)为输入引脚,Q0–Q7(15引脚,1-7引脚)为并行输出引脚,~MR(10引脚)为复位引脚,Q7’(9引脚)为串行数据输出,通常用于与其他74HC595级联,SH_CP(11引脚)为数据输入时钟,上升沿时读取数据并移位,ST_CP(12引脚)为锁存时钟,上升沿时锁存移位寄存器中的数据,也就是说只有在ST_CP上升沿才会实际将移位寄存器中的数据输出,~OE为输出使能,高电平时输出为高阻态。

74HC138

74HC138是一个简单的译码器,将地址A0-A2(1-3引脚)译码到输出~Y0-~Y6(9-15引脚),~E1、~E2、E3均为使能,只有使能均有效时才正常译码,否则输出均为高电平。

原理图

因此,我们可以使用两片74HC595级联,分别储存地址信息和ASCII数据,地址的低位直接接入HPDL-1414的A0-A1,高位由74HC138译码后控制各个HPDL-1414的~WR:

更多可以参考开源的硬件工程HPDL1414x5显示模块(20字符、兼容SPI)

其他问题

为什么还要发送一次地址为0xFC的数据

由于38译码器存在延时,因此虽然数据已经刷新,但是地址还没有更新,会导致其他位置字符也被刷新的问题。

可以继续拓展更多HPDL-1414吗

可以,若保持当前芯片数量不变,最多可以拓展到7个(因为还需要流出一个空地址),也可以通过级联38译码器增加地址范围来支持更多HPDL-1414。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇