WT2003H LCD屏幕驱动的应用
2022-04-22 19:58:00
唯创电子一直致力于让复杂变简单,LCD屏幕复杂的驱动协议让很多开发者望而却步,而唯创电子开发的这款WT2003H语音芯片,仅需要简单的UART协议即可完美对接客户产品的LCD屏幕,让控制边简单,让开发更便捷。下面我们介绍一下唯创电子主流IC WT2003H语音芯片。
WT2003H 是一款功能强大的高品质语音芯片,采用了高性能 32 位处理器、最高频率可达 120MHz。 具有低成本、低功耗、高可靠性、通用性强等特点,可内置 350 秒\900 秒语音容量。现有 WT2003HX-16S、 WT2003HX-24SS、WT2003HP8-32N(体积小 4*4MM) 三种封装的芯片。这款芯片的参数如下:
➡支持语音高品质音频格式,支持 MP3 和 WAV 格式,(音频码率支持 8kbps~320kbps) 声音优美;
➡ 内置 0.5W D 类功放;
➡16 bit 高精度 ADC 和 DAC;
➡支持 UART 更新程序以及语音;
WT2003H因其优异的性能参数和强大的功能广泛应用于各种语音应用场合,比如玩具,按摩器,电子锁等行业,下面介绍一下WT2003H4-16S芯片在时钟产品中的应用。
WT2003H4-16S时钟应用方案集LCD屏幕显示,时钟读取,语音播报于一体,客户无需知道具体的通信协议接口,只需要通过UART串口协议即可配置LCD屏幕显示,实时读取时钟信息,实现控制当前语音播放,闹钟设置等功能,免去客户开发的难度,缩短客户产品开发周期,实现客户产品价值最大化。
2)设计框图
*
本方案采用WT2003H4-16S封装的芯片,外加TM1621 LCD屏幕驱动芯片,主控MCU芯片,以及LCD屏幕,即可实现本方案闹钟产品功能。
3)设计原理图
*
4)设计思路
1.时钟更新
*
本方案通过配置TM1621芯片的时基发生器产生准确的时基,WT2003H芯片脚连接到TM1621的/IRQ 脚,通过中断扫描方式检测外部电平信号,进而实现时钟数据更新。为了降低时间数据的误差,通常而言,TM1621需要采用外部晶振,OSCI 和 OSCO 外接一个 32.768KHz 晶振用于产生系统时钟;
TM1621初始化配置代码:
*
2.LCD显示
本方案采用UART串口方式控制WT2003H,进而通过WT2003H配置TM1621芯片驱动外部LCD屏幕,那么问题在于,屏幕的规格各式各样,如何才能实现通用的UART协议,去对接多种多样的屏幕接口呢 ? 这里我们会设置一个规则,只要按照这个规则去配置LCD屏幕,即可实现通用化的串口操作。
下面是我们选用的屏幕COM口和SEG口的对应表,客户仅需要关注其中排列顺序, 按照协议说明配置好数码管的相应参数, 即可通过串口控制数码管数据显示。
*
下图为SEG和COM对应坐标的参数,该参数固定不可变,可以定位到LCD每个点的位置.LCD显示部分最重要的是对应于LCD屏幕的数码管部分,通过配置每个数码管的参数,即可输出对应的数字。下面在串口交互部分重点说明。
*
点亮LCD某个点的代码实现方式::
*
3.串口交互
3.1. UART 硬件连接
芯片 UART 接口硬件连接方式如下图所示:
*
框图为WT2003H 芯片与MCU芯片UART 接口连接示意图
3.2. 协议命令格式
标准 UART 异步串口接口,属于 3.3V TTL 电平接口。通讯数据格式是:起始位:1 位;
数据位:8 位;奇偶位:无;停止位:1 位。使用电脑串口调试助手,需要正确设置串口的
参数,设置如图:
*
起始码 |
长度 |
命令码 |
参数 |
累加和校验 |
结束码 |
0X7E |
见下文 |
见下文 |
见下文 |
见下文 |
0XEF |
返回码格式
起始码 |
长度 |
命令 |
参数 |
校验码 |
结束码 |
0X7E |
XX |
XX |
XX |
XX |
0XEF |
参数:00 :表示执行成功
01 :表示执行错误
02: 表示文件不存在
3.3. 命令列表(这里只介绍LCD驱动指令)
1.设置数码管位命令( B0 )
起始码 |
长度 |
扩展 |
代表 |
命令 |
数码管位号 |
段参数(7字节) |
校验和 |
结束码 |
7E |
XX |
FF |
02 |
B0 |
XX |
XX-XX |
XX |
EF |
回应:执行成功
起始码 |
长度 |
扩展 |
代表 |
命令 |
功能 |
校验码 |
结束码 |
7E |
XX |
FF |
02 |
B0 |
00 |
XX |
EF |
客户如果想要显示对应数码管的值,必须先通过此条命令进行配置相应的数码管,否则无法正常进行显示。
数码管位号: 表示第几个数码管,客户可以自己定义
段参数: 表示数码管对应的段所指向的坐标,分别按照顺序表示数码管的ABCDEFG,每个段通过一个字节进行表示, ,没有的通过0XFF表示
例如 设置数码管2,从COM口和SEG口的排列位置来看,数码管2号ABCDEFG对应的坐标如下,所以我们的段参数数据为: 0X07 0X06 0X05 0X04 0X09 0X0B 0X0A
*
因此,设置数码管2号,客户需要发送 :
起始码 |
长度 |
扩展 |
代表 |
命令 |
数码管位号 |
7E |
0D |
FF |
02 |
B0 |
02 |
段参数 |
校验和 |
结束码 |
|||||||||
07 |
06 |
05 |
04 |
09 |
0B |
0A |
XX |
EF |
注意:对于同一个坐标涉及到多个数码管段号的情况,同样的,每个段对应的地址数据相同
例如:配置数码管1号,客户需要发送 7E 0D FF 02 B0 01 11 0E 0D 11 11 FF 11 XX EF
2. 数码管显示命令( B1 )
起始码 |
长度 |
扩展 |
代表 |
命令 |
数码管位号 |
数码管显示参数 |
校验和 |
结束码 |
7E |
XX |
FF |
02 |
B1 |
CX |
XX |
XX |
EF |
回应:
执行成功
起始码 |
长度 |
扩展 |
代表 |
命令 |
功能 |
校验码 |
结束码 |
7E |
XX |
FF |
02 |
B1 |
00 |
XX |
EF |
固定地址模式:
当模式设置为0xB1时(即是设置成固定地址模式时),此地址命令可以设置固定的数码管位数。可以同时指定4个,也可以指定其中某几个亮。例如:
7E XX FF 02 B1 C3 03 XX EF 表示第3个数码管显示3
若设置成为固定地址模式的话,需要使用 数码管序号+数值+数码管序号+数值+...+数码管序号+数值的指令形式
即是:Cx XX Cx XX Cx XX Cx XX
例如:7E XX FF 02 B1 C1 02 C3 03 XX EF表示第1个数码管显示2,第3个数码管显示3,其他数码管灭掉
3.LCD显示点命令(B3)
起始码 |
长度 |
扩展 |
代表 |
命令 |
亮灭标志 |
地址 |
校验和 |
结束码 |
7E |
XX |
FF |
02 |
B3 |
00/01 |
XX |
XX |
EF |
回应:
执行成功
起始码 |
长度 |
扩展 |
代表 |
命令 |
功能 |
校验码 |
结束码 |
7E |
XX |
FF |
02 |
B3 |
00 |
XX |
EF |
此条命令可以控制LCD屏幕的任意点位置的亮灭,01代表点亮 00 代表灭。
例如: 7E 08 FF 02 B3 01 13 C5 EF 表示点亮闹钟标志
唯创电子作为一家专注于语音技术研究的高新技术企业,始终坚持以“服务好工程师”
为目标,以行业语音交互器件标准化为方向,致力于让复杂变简单,提供快捷的语音、智能物联网应用解决方案。WT588F02B应用设计方案,在智能闹钟、智能水杯、雾化器等消费电子行业领域内已有成熟的应用案例。消费类电子产品应用是公司重要的发展领域,未来,唯创电子将在更多行业推出标准化语音芯片,进一步提升工程师的设计体验,为消费类电子行业标准化赋能。