特性  

  • 工作电压:2.4V~5.2V  
  • 内置256kHz RC振荡器  
  • 支持外部32.768kHz晶体或256kHz频率源输入  
  • 可选择1/2或1/3偏置,以及1/2、1/3或1/4占空比的LCD应用  
  • 内部时基频率源  
  • 两种可选的蜂鸣器频率(2kHz/4kHz)  
  • 低功耗模式命令可降低功耗  
  • 内置时基发生器和看门狗定时器(WDT)  
  • 时基或看门狗定时器溢出输出  
  • 8种时基/看门狗定时器时钟源  
  • 32×4 LCD驱动器  
  • 内置32×4位显示RAM
  • 三线串行接口  
  • 内部LCD驱动频率源  
  • 软件配置功能  
  • 数据模式和命令模式指令  
  • 读/写地址自动递增  
  • 三种数据访问模式  
  • VLCD引脚用于调节LCD工作电压  
  • HT1621:44引脚LQFP封装  
  •  HT1621B:48引脚SSOP/LQFP封装  
  • HT1621G:金凸点芯片

概述

HT1621是一款128段(32×4)内存映射多功能LCD驱动器。HT1621的软件配置功能使其适用于多种LCD应用,包括LCD模块和显示子系统。主机控制器与HT1621之间的接口仅需三或四根线。HT1621内置低功耗模式命令,可有效降低功耗。

选型表

选型表解释1:Built-in Osc

内置振荡器
HT1621内置了256kHz的RC振荡器,无需外部元件即可提供稳定的时钟源。此外,它还支持外部32.768kHz晶体或256kHz频率源输入,以满足不同应用场景的需求。内置振荡器的设计简化了系统结构,同时降低了成本和功耗。

选型表解释2:Crystal OSC

晶体振荡器

HT1621支持外部32.768kHz晶体振荡器,能够提供高精度的时钟信号,适用于对时间精度要求较高的应用场景。通过连接外部晶体,可以实现更稳定的频率输出,确保系统运行的准确性和可靠性。晶体振荡器的设计进一步扩展了HT1621的适用性,使其能够满足更广泛的应用需求。


框图

说明

  • CS:芯片选择引脚,用于启用或禁用设备。  
  • BZ, BZ:蜂鸣器输出引脚,提供2kHz或4kHz的音频信号。  
  • WR, RD, DATA:串行接口引脚,分别用于写操作、读操作和数据传输。  
  • COM0~COM3, SEG0~SEG31:LCD输出引脚,用于驱动LCD显示屏的公共端和段端。  
  • IRQ:中断输出引脚,用于时基或看门狗定时器(WDT)溢出信号输出。  

不同封装的引脚分配

HT1621B的封装中,SEG27和SEG28不是按照引脚顺序分配。


焊盘

芯片尺寸:82 × 83 (mil)²  

凸点高度:18μm ± 3μm

最小凸点间距:23.02μm  

凸点尺寸:76 × 76μm²  

IC基板连接:在PCB布局设计中,IC基板应连接到VDD,以确保稳定的电源供应和电气性能。  


焊盘坐标

焊盘坐标解读

以下是HT1621芯片焊盘的坐标信息(以芯片中心为原点,单位为μm):  

焊盘编号 X坐标 (μm) Y坐标 (μm)
1 -4100 4150
2 -3900 4150
3 -3700 4150
... ... ...
44 4100 -4150

焊盘坐标说明

  • 坐标以芯片中心为原点(0,0),X轴为水平方向,Y轴为垂直方向。  
  • 焊盘编号和坐标可能因具体封装型号(如LQFP、SSOP或金凸点芯片)而有所不同。  
  • 在实际PCB设计中,需结合芯片的封装图纸和焊盘坐标进行精确布局。  

焊盘描述

焊盘编号 焊盘名称 输入/输出 功能描述
1 CS 输入 芯片选择输入(内置上拉电阻)。当CS为高电平时,禁用从HT1621读取或写入的数据和命令,同时复位串行接口电路;当CS为低电平时,启用主机控制器与HT1621之间的数据和命令传输。
2 RD 输入 读时钟输入(内置上拉电阻)。在RD信号的下降沿,HT1621 RAM中的数据被输出到DATA线上,主机控制器可在下一个上升沿锁存数据。
3 WR 输入 写时钟输入(内置上拉电阻)。在WR信号的上升沿,DATA线上的数据被锁存到HT1621中。
4 DATA 输入/输出 串行数据输入/输出(内置上拉电阻)。
5 VSS - 负电源,接地。
7 OSCI 输入 连接32.768kHz晶体以生成系统时钟。如果使用外部时钟源,则外部时钟应连接到OSCI引脚;如果选择内部RC振荡器,则OSCI和OSCO引脚可悬空。
6 OSCO 输出 晶体振荡器输出。
8 VLCD 输入 LCD电源输入。
9 VDD - 正电源。
10 IRQ 输出 时基或看门狗定时器(WDT)溢出标志,NMOS开漏输出。
11, 12 BZ, BZ 输出 2kHz或4kHz音频频率输出对。
13~16 COM0~COM3 输出 LCD公共端输出。
48~17 SEG0~SEG31 输出 LCD段输出。

绝对最大额定值

参数 范围
电源电压 VSS−0.3V 至 VSS+5.5V
输入电压 VSS−0.3V 至 VDD+0.3V
存储温度 −60°C 至 150°C
工作温度 −40°C 至 85°C

绝对最大额定值说明

  • 以上为绝对最大额定值,仅表示设备能够承受的极限条件。超出此范围的应力可能会导致设备损坏。
  • 设备在规格书列出的条件之外的功能操作不保证,长期暴露在极端条件下可能会影响设备的可靠性。
  • 设计和使用时,应确保设备在推荐工作条件下运行,以避免损坏或性能下降。

直流特性

测试条件:Ta=25°C

符号 参数 测试条件 最小值 典型值 最大值 单位
VDD 工作电压 2.4 5.2 V
IDD1 工作电流 3V,无负载/LCD开启,内部RC振荡器 150 300 μA
5V,无负载/LCD开启,内部RC振荡器 300 600 μA
IDD2 工作电流 3V,无负载/LCD开启,晶体振荡器 60 120 μA
5V,无负载/LCD开启,晶体振荡器 120 240 μA
IDD3 工作电流 3V,无负载/LCD开启,外部时钟源 100 200 μA
5V,无负载/LCD开启,外部时钟源 200 400 μA
ISTB 待机电流 3V,无负载,低功耗模式 0.1 5 μA
5V,无负载,低功耗模式 0.3 10 μA
VIL 输入低电平电压 3V,DATA, WR, CS, RD 0 0.6 V
5V,DATA, WR, CS, RD 0 1.0 V
VIH 输入高电平电压 3V,DATA, WR, CS, RD 2.4 3.0 V
5V,DATA, WR, CS, RD 4.0 5.0 V
IOL1 输出低电平电流 3V,VOL=0.3V,DATA, BZ, BZ, IRQ 0.5 1.2 mA
5V,VOL=0.5V,DATA, BZ, BZ, IRQ 1.3 2.6 mA
IOH1 输出高电平电流 3V,VOH=2.7V,DATA, BZ, BZ -0.4 -0.8 mA
5V,VOH=4.5V,DATA, BZ, BZ -0.9 -1.8 mA
IOL2 LCD公共端吸入电流 3V,VOL=0.3V 80 150 μA
5V,VOL=0.5V 150 250 μA
IOH2 LCD公共端源出电流 3V,VOH=2.7V -80 -120 μA
5V,VOH=4.5V -120 -200 μA
IOL3 LCD段吸入电流 3V,VOL=0.3V 60 120 μA
5V,VOL=0.5V 120 200 μA
IOH3 LCD段源出电流 3V,VOH=2.7V -40 -70 μA
5V,VOH=4.5V -70 -100 μA
RPH 上拉电阻 3V,DATA, WR, CS, RD 60 120 200
5V,DATA, WR, CS, RD 30 60 100

交流特性

测试条件:Ta=25°C

符号 参数 VDD 测试条件 最小值 典型值 最大值 单位
fSYS1 系统时钟 3V 内部RC振荡器 192 256 320 kHz
fSYS2 系统时钟 晶体振荡器 32768 Hz
fSYS3 系统时钟 外部时钟源 256 kHz
fLCD LCD时钟 内部RC振荡器 fSYS1/1024 Hz
晶体振荡器 fSYS2/128 Hz
外部时钟源 fSYS3/1024 Hz
tCOM LCD公共端周期 n:COM数量 n/fLCD s
fCLK1 串行数据时钟(WR引脚) 3V 占空比50% 4 150 kHz
5V 占空比50% 4 300 kHz
fCLK2 串行数据时钟(RD引脚) 3V 占空比50% 75 kHz
5V 占空比50% 150 kHz
fTONE 音频频率(2kHz) 3V 内部RC振荡器 1.5 2.0 2.5 kHz
音频频率(4kHz) 3V 内部RC振荡器 3.0 4.0 5.0 kHz
tCS 串行接口复位脉冲宽度 CS引脚 250 300 ns
tCLK WR、RD输入脉冲宽度 3V 写模式 3.34 125 μs
3V 读模式 6.67 μs
5V 写模式 1.67 125 μs
5V 读模式 3.34 μs
tr, tf 上升/下降时间 串行数据时钟宽度 120 ns
160 ns
tsu DATA到WR、RD时钟的建立时间 60 120 ns
th DATA到WR、RD时钟的保持时间 250 300 ns
tsu1 CS到WR、RD时钟的建立时间 500 600 ns
th1 CS到WR、RD时钟的保持时间 250 300 ns
tOFF VDD关闭时间 VDD降至0V 20 ms
tSR VDD上升斜率 0.05 V/ms
tRSTD 复位后延迟时间 1 ms

备注:1、如果在电源开/关序列中不满足上电复位(POR)时序条件,内部上电复位电路可能无法正常工作。

           2、如果在工作期间VDD低于工作电压规格的最小值,也必须满足上电复位时序条件。即VDD必须降至0V并保持至少20ms,然后才能上升到正常工作电压。


功能描述

显示存储器 – RAM

静态显示存储器(RAM)的组织结构为32×4位,用于存储显示数据。RAM的内容直接映射到LCD驱动器的内容。RAM中的数据可以通过读取写入读取-修改-写入命令进行访问。以下是RAM到LCD显示模式的映射关系:

RAM映射

地址位 (A5, A4, ..., A0) 数据位 (D3, D2, D1, D0) LCD段 (SEG0~SEG31) LCD公共端 (COM0~COM3)
0 D3, D2, D1, D0 SEG0 COM0
1 D3, D2, D1, D0 SEG1 COM0
2 D3, D2, D1, D0 SEG2 COM0
... ... ... ...
31 D3, D2, D1, D0 SEG31 COM3

系统振荡器

HT1621的系统时钟用于生成时基/看门狗定时器(WDT)时钟频率、LCD驱动时钟以及音频频率。时钟源可以通过软件设置选择以下三种之一:

  1. 内部RC振荡器(256kHz)
  2. 晶体振荡器(32.768kHz)
  3. 外部256kHz时钟

系统振荡器配置

系统振荡器的配置如上所述。当执行SYS DIS命令后,系统时钟将停止,LCD偏置发生器也会关闭。需要注意的是,该命令仅适用于内部RC振荡器或晶体振荡器。一旦系统时钟停止,LCD显示将变为空白,同时时基/看门狗定时器功能也会失效。

功能说明

  • 时基/WDT时钟系统时钟用于生成时基和看门狗定时器的时钟频率。
  • LCD驱动时钟:系统时钟用于驱动LCD显示,确保显示内容的刷新。
  • 音频频率系统时钟用于生成蜂鸣器的音频信号(2kHz或4kHz)。

LCD关闭命令与系统电源管理

  1. LCD OFF命令

    • 功能用于关闭LCD偏置发生器。
    • 效果执行LCD OFF命令后,LCD偏置发生器停止工作,LCD显示关闭。
  2. SYS DIS命令

    • 功能用于关闭系统时钟,进一步降低功耗,作为系统电源关闭命令。
    • 适用条件仅当系统时钟源为内部RC振荡器或晶体振荡器时有效。
    • 效果执行SYS DIS命令后,系统时钟停止,LCD偏置发生器关闭,系统进入低功耗模式。
  3. 外部时钟源的限制

    • 如果选择外部256kHz时钟源作为系统时钟,执行SYS DIS命令无法关闭振荡器,也无法进入低功耗模式。
    • 类似地,如果选择晶体振荡器并连接外部32kHz频率源到OSCI引脚,系统无法进入低功耗模式
  4. 初始上电状态

    • 在系统初始上电时,HT1621默认处于SYS DIS状态,即系统时钟关闭,LCD偏置发生器关闭。


时基与看门狗定时器(WDT)

时基发生器

  • 组成由8级递增纹波计数器构成。
  • 功能用于生成精确的时基信号。

看门狗定时器(WDT)

  • 组成由8级时基发生器和2级递增计数器构成。
  • 功能用于在主机控制器或其他子系统出现异常状态(如未知跳转、执行错误等)时,将其从异常状态中恢复。
  • 超时标志WDT超时后,会设置一个内部WDT超时标志。
  • 输出连接:时基发生器和WDT超时标志的输出可以通过命令选项连接到IRQ输出引脚。

时钟源

  • 时基发生器和WDT共有8种可选的时钟源,频率由以下公式计算:

  f_{\text{WDT}} = \frac{32\text{kHz}}{2^n}

其中,n的取值范围为0到7,通过命令选项设置。  

  • 32kHz来源系统频率源可以是32.768kHz晶体振荡器、内部256kHz RC振荡器或外部256kHz时钟源。

HT1621/1621G 时基与看门狗定时器(WDT)详细说明

  1. 系统频率源选择

    • 如果选择内部RC振荡器(256kHz)外部256kHz频率作为系统频率源,默认会通过一个3级预分频器将频率分频至32kHz。
  2. 时基发生器与WDT的共享计数器

    • 时基发生器和WDT共享同一个8级计数器,因此在使用时基发生器和WDT相关命令时需要特别注意。
      • 执行WDT DIS命令会禁用时基发生器。
      • 执行WDT EN命令不仅会启用时基发生器,还会激活WDT超时标志输出(将WDT超时标志连接到IRQ引脚)。
  3. 命令操作

    • TIMER EN命令执行后,WDT与IRQ引脚断开,时基发生器的输出连接到IRQ引脚。
    • CLR WDT命令用于清除WDT。
    • CLR TIMER命令用于清除时基发生器的内容。
    • IRQ EN命令启用IRQ输出,使时基发生器或WDT超时标志的输出出现在IRQ引脚。
    • IRQ DIS命令禁用IRQ输出,IRQ引脚将保持浮空状态。
  4. 命令执行顺序

    • 在执行WDT ENTIMER EN命令之前,应分别先执行CLR WDTCLR TIMER命令
    • 在执行IRQ EN命令之前,应先执行CLR WDTCLR TIMER命令
    • 从WDT模式切换到时基模式之前,必须执行CLR TIMER命令
  5. WDT超时与IRQ引脚状态

    • 一旦WDT超时,IRQ引脚将保持逻辑低电平,直到执行CLR WDTIRQ DIS命令
    • 禁用IRQ输出后,IRQ引脚将保持浮空状态。
  6. 低功耗模式

    • 如果选择内部RC振荡器晶体振荡器作为系统频率源,可以通过相应的系统命令开启或关闭振荡器,从而进入低功耗模式。在低功耗模式下,时基/WDT功能将全部失效。
    • 如果选择外部时钟作为系统频率源,SYS DIS命令无效,无法进入低功耗模式。HT1621将继续工作,直到系统断电或外部时钟源被移除。
  7. 初始上电状态

    • 系统上电后,IRQ输出默认被禁用。

总结

  • 时基发生器和WDT共享计数器,使用时需注意命令的执行顺序和影响。
  • 选择内部RC振荡器或晶体振荡器时,可通过系统命令进入低功耗模式;选择外部时钟源时,无法进入低功耗模式。
  • 系统上电后,IRQ输出默认禁用,需通过命令启用。

系统晶振配置图

定时器和看门狗配置图


音频输出

HT1621内置了一个简单的音频发生器,可以在BZBZ引脚上输出一对差分驱动信号,用于生成单音音频。通过执行以下命令,可以选择两种音频频率输出:

  • TONE4K命令将音频频率设置为4kHz。
  • TONE2K命令将音频频率设置为2kHz。

音频输出可以通过以下命令开启或关闭:

  • TONE ON命令开启音频输出。
  • TONE OFF命令关闭音频输出。

BZBZ引脚是一对差分驱动输出,用于驱动压电蜂鸣器。当系统禁用或音频输出被抑制时,BZBZ引脚将保持低电平


LCD驱动器

HT1621是一款128段(32×4)的LCD驱动器,支持通过软件配置为1/2或1/3偏置,以及2、3或4个公共端的LCD驱动模式。这一特性使得HT1621适用于多种LCD应用场景。

  1. LCD驱动时钟

    • LCD驱动时钟源自系统时钟,其频率始终为256Hz,无论系统时钟是32.768kHz晶体振荡器、内部256kHz RC振荡器还是外部时钟源。
  2. LCD相关命令

    • LCD OFF命令通过禁用LCD偏置发生器关闭LCD显示。
    • LCD ON命令通过启用LCD偏置发生器打开LCD显示。
    • BIAS和COM命令用于配置LCD面板的偏置和公共端模式。
  3. 命令模式

    • 命令模式ID以粗体形式表示,例如1 0 0。如果连续发送多个命令,除第一个命令外,后续命令的命令模式ID可以省略。

通过使用LCD相关命令,HT1621可以与大多数类型的LCD面板兼容,满足多种应用需求。

LCD相关命令表

命令名称 命令代码 功能描述
LCD OFF 1 0 0 0 0 0 0 0 0 1 0 X 关闭LCD输出,禁用LCD偏置发生器。
LCD ON 1 0 0 0 0 0 0 0 0 1 1 X 打开LCD输出,启用LCD偏置发生器。
BIAS & COM 1 0 0 0 0 1 0 a b X c X 配置LCD偏置和公共端模式:
- c=0:1/2偏置选项
- c=1:1/3偏置选项
- ab=00:2公共端选项
- ab=01:3公共端选项
- ab=10:4公共端选项

说明

  • X:表示该位可以为0或1,具体值不影响命令功能。
  • a, b, c:用于配置LCD的偏置和公共端模式,具体组合如上表所示。
  • 这些命令通过软件配置,使HT1621能够适应不同类型的LCD面板需求。

命令格式

HT1621可以通过软件配置,支持两种模式命令:命令模式数据模式

  1. 命令模式

    • 模式ID1 0 0
    • 功能用于配置HT1621资源和传输LCD显示数据。
    • 组成
      • 系统配置命令
      • 系统频率选择命令
      • LCD配置命令
      • 音频频率选择命令
      • 定时器/WDT设置命令
      • 操作命令
  2. 数据模式

    • 功能包括读取写入读取-修改-写入操作。
    • 模式ID
      • 读取数据1 1 0
      • 写入数据1 0 1
      • 读取-修改-写入数据1 0 1

操作模式ID

操作模式 模式ID
读取数据 1 1 0
写入数据 1 0 1
读取-修改-写入数据 1 0 1
命令模式 1 0 0

模式命令的使用规则

  1. 模式命令的发送

    • 在传输数据或命令之前,必须先发送模式命令。
  2. 连续命令的简化

    • 如果连续发送多个命令,除第一个命令外,后续命令的模式ID(即1 0 0)可以省略。
  3. 非连续操作模式的处理

    • 当系统处于非连续命令非连续地址数据模式时,CS引脚应设置为“1”,以重置之前的操作模式。
    • 当CS引脚从“1”返回“0”时,必须先发送新的操作模式ID。

接口说明

HT1621与主机控制器之间的接口仅需四根线:

  1. CS引脚

    • 功能用于初始化串行接口电路并终止通信。
    • 操作
      • 当CS引脚设置为“1”时,主机控制器与HT1621之间的数据和命令传输被禁用并初始化。
      • 在发送模式命令或切换模式之前,需要一个高电平脉冲来初始化HT1621的串行接口。
  2. DATA引脚

    • 功能串行数据输入/输出线。
    • 操作所有需要读取或写入的数据以及命令都通过DATA线传输。
  3. RD引脚

    • 功能读时钟输入。
    • 操作在RD信号的下降沿,RAM中的数据被输出到DATA线上。建议主机控制器在RD信号的上升沿和下一个下降沿之间读取数据。
  4. WR引脚

    • 功能写时钟输入。
    • 操作在WR信号的上升沿,DATA线上的数据、地址和命令被写入HT1621。
  5. IRQ引脚(可选)

    • 功能用作主机控制器与HT1621之间的接口。
    • 配置通过软件设置,IRQ引脚可以选择作为定时器输出或WDT溢出标志输出。
    • 应用主机控制器通过连接HT1621的IRQ引脚,可以实现时基或WDT功能。

晶体选择

  1. 晶体连接

    • 一个32768Hz的晶体可以直接连接到HT1621的OSCIOSCO引脚。
  2. 负载电容

    • 为了获得准确的频率,需要额外添加两个负载电容(C1和C2)。
    • 电容值的选择取决于晶体的精度。
  3. 电容值建议


时序图

单次读模式

  • 操作从HT1621的RAM中读取数据。
  • 时序
    • 首先发送模式ID 1 1 0,接着发送6位地址(A5~A0)。
    • 在RD信号的下降沿,RAM中的数据被输出到DATA线上。
    • 主机控制器在RD信号的上升沿和下一个下降沿之间读取数据。

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送读取模式ID:1 1 0。
3. 发送6位目标地址(A5~A0)。
4. 设置RD引脚为高电平,然后拉低RD引脚(下降沿触发数据输出)。
5. 在RD引脚的上升沿和下一个下降沿之间读取DATA引脚上的4位数据(D3~D0)。
6. 设置CS引脚为高电平(1)以结束通信。

类C代码

void readSingleAddress(uint8_t address) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送读取模式ID:1 1 0
    sendBits(0b110);

    // 发送6位地址
    sendBits(address);

    // 触发RD信号读取数据
    digitalWrite(RD_PIN, HIGH);
    digitalWrite(RD_PIN, LOW);

    // 读取4位数据
    uint8_t data = readBits(4);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);

    return data;
}

连续读模式

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送读取模式ID:1 1 0。
3. 发送6位起始地址(A5~A0)。
4. 循环读取数据:
   a. 设置RD引脚为高电平,然后拉低RD引脚(下降沿触发数据输出)。
   b. 在RD引脚的上升沿和下一个下降沿之间读取DATA引脚上的4位数据(D3~D0)。
   c. 地址自动递增,准备读取下一个地址的数据。
5. 设置CS引脚为高电平(1)以结束通信。

类C代码

void readMultipleAddresses(uint8_t startAddress, uint8_t numReads) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送读取模式ID:1 1 0
    sendBits(0b110);

    // 发送起始地址
    sendBits(startAddress);

    // 循环读取数据
    for (uint8_t i = 0; i < numReads; i++) {
        // 触发RD信号读取数据
        digitalWrite(RD_PIN, HIGH);
        digitalWrite(RD_PIN, LOW);

        // 读取4位数据
        uint8_t data = readBits(4);

        // 处理读取的数据(例如存储或打印)
        processData(data);
    }

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

关键点说明

  • 模式ID:读取模式的ID为1 1 0,必须在通信开始时发送。
  • 地址:6位地址(A5~A0)用于指定读取的目标RAM位置。
  • RD信号:RD引脚的下降沿触发数据输出,上升沿和下一个下降沿之间是数据读取的有效窗口。
  • 连续读取:在连续读取模式下,地址会自动递增,无需重复发送地址。

单次写模式

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送写入模式ID:1 0 1。
3. 发送6位目标地址(A5~A0)。
4. 发送4位数据(D3~D0)。
5. 设置CS引脚为高电平(1)以结束通信。

类C代码

// 单地址写入
void writeSingleAddress(uint8_t address, uint8_t data) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送写入模式ID:1 0 1
    sendBits(0b101, 3);

    // 发送6位地址
    sendBits(address, 6);

    // 发送4位数据
    sendBits(data, 4);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

连续写模式

 伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送写入模式ID:1 0 1。
3. 发送第一个6位地址(A5~A0)。
4. 发送第一个4位数据(D3~D0)。
5. 发送第二个6位地址(A5~A0)。
6. 发送第二个4位数据(D3~D0)。
7. 重复步骤5~6,直到所有数据写入完成。
8. 设置CS引脚为高电平(1)以结束通信。

类C代码

// 连续地址写入
void writeMultipleAddresses(uint8_t addresses[], uint8_t data[], uint8_t numWrites) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送写入模式ID:1 0 1
    sendBits(0b101, 3);

    // 循环写入数据
    for (uint8_t i = 0; i < numWrites; i++) {
        // 发送6位地址
        sendBits(addresses[i], 6);

        // 发送4位数据
        sendBits(data[i], 4);
    }

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

关键点说明

  • 模式ID写入模式的ID为1 0 1,必须在通信开始时发送。
  • 地址6位地址(A5~A0)用于指定写入的目标RAM位置。
  • 数据4位数据(D3~D0)被写入指定地址的RAM中。
  • WR信号在WR信号的上升沿,数据被写入RAM。

读取-修改-写入模式

解释说明

  1. 读取-修改-写入模式

    • 模式ID读取-修改-写入模式的命令代码为1 0 1
    • 操作从指定地址读取数据,修改后再写回同一地址。
  2. 数据传输格式

    • 首先发送模式ID 1 0 1
    • 接着发送6位地址(A5~A0)。
    • 读取4位数据(D3~D0)。
    • 修改数据后,将修改后的数据写回同一地址。
  • 时序

    • 在RD信号的下降沿读取数据。
    • 在WR信号的上升沿写入修改后的数据。

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送读取-修改-写入模式ID:1 0 1。
3. 发送6位目标地址(A5~A0)。
4. 触发RD信号读取4位数据(D3~D0)。
5. 修改读取的数据。
6. 将修改后的数据写回同一地址。
7. 设置CS引脚为高电平(1)以结束通信。

类C代码

// 读取-修改-写入操作
void readModifyWrite(uint8_t address) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送读取-修改-写入模式ID:1 0 1
    sendBits(0b101, 3);

    // 发送6位地址
    sendBits(address, 6);

    // 触发RD信号读取4位数据
    digitalWrite(RD_PIN, HIGH);
    digitalWrite(RD_PIN, LOW);
    uint8_t data = readBits(4);

    // 修改数据(示例:将最低位取反)
    data ^= 0x01;

    // 将修改后的数据写回同一地址
    sendBits(data, 4);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

关键点说明

  • 模式ID读取-修改-写入模式的ID为1 0 1,必须在通信开始时发送。
  • 地址6位地址(A5~A0)用于指定读取和写入的目标RAM位置。
  • 数据读取4位数据(D3~D0),修改后写回同一地址。
  • RD信号在RD信号的下降沿读取数据。
  • WR信号在WR信号的上升沿写入修改后的数据。

读取-修改-写入模式(连续地址访问)

解释说明

  1. 读取-修改-写入模式(连续地址访问)

    • 模式ID读取-修改-写入模式的命令代码为1 0 1
    • 操作从指定地址开始,依次读取、修改并写入多个连续地址的数据。
  2. 数据传输格式

    • 首先发送模式ID 1 0 1
    • 接着发送起始地址(A5~A0)。
    • 依次读取、修改并写入多个连续地址的数据。
  3. 时序

    • 在RD信号的下降沿读取数据。
    • 在WR信号的上升沿写入修改后的数据。
    • 地址自动递增,无需重复发送地址。

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送读取-修改-写入模式ID:1 0 1。
3. 发送6位起始地址(A5~A0)。
4. 循环操作:
   a. 触发RD信号读取4位数据(D3~D0)。
   b. 修改读取的数据。
   c. 将修改后的数据写回当前地址。
   d. 地址自动递增,准备处理下一个地址。
5. 设置CS引脚为高电平(1)以结束通信。

类C代码

// 连续地址读取-修改-写入操作
void readModifyWriteMultiple(uint8_t startAddress, uint8_t numOperations) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送读取-修改-写入模式ID:1 0 1
    sendBits(0b101, 3);

    // 发送6位起始地址
    sendBits(startAddress, 6);

    // 循环操作
    for (uint8_t i = 0; i < numOperations; i++) {
        // 触发RD信号读取4位数据
        digitalWrite(RD_PIN, HIGH);
        digitalWrite(RD_PIN, LOW);
        uint8_t data = readBits(4);

        // 修改数据(示例:将最低位取反)
        data ^= 0x01;

        // 将修改后的数据写回当前地址
        sendBits(data, 4);
    }

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

关键点说明

  • 模式ID读取-修改-写入模式的ID为1 0 1,必须在通信开始时发送。
  • 地址6位起始地址(A5~A0)用于指定第一个操作的目标RAM位置。
  • 数据依次读取、修改并写入多个连续地址的数据。
  • RD信号在RD信号的下降沿读取数据。
  • WR信号在WR信号的上升沿写入修改后的数据。
  • 地址自动递增在连续操作中,地址会自动递增,无需重复发送地址。

命令模式

解释说明

  1. 命令模式

    • 模式ID命令模式的命令代码为1 0 0
    • 功能用于配置HT1621的资源或执行特定操作。
  2. 数据传输格式

    • 首先发送模式ID 1 0 0
    • 接着发送具体的命令(C7~C0)。
    • 命令可以是系统配置、LCD配置、音频频率选择、定时器/WDT设置等。
  3. 时序

    • 在WR信号的上升沿,命令被写入HT1621。

伪代码

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送命令模式ID:1 0 0。
3. 发送具体命令(C7~C0)。
4. 设置CS引脚为高电平(1)以结束通信。

类C伪代码

// 命令模式操作
void commandMode(uint8_t command) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送命令模式ID:1 0 0
    sendBits(0b100, 3);

    // 发送具体命令(C7~C0)
    sendBits(command, 8);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

数据模式和命令模式

解释说明

  1. 数据模式和命令模式

    • 数据模式用于读取或写入数据,包括读取、写入和读取-修改-写入操作。
    • 命令模式用于配置HT1621的资源或执行特定操作。
  2. 数据传输格式

    • 数据模式
      • 读取数据:模式ID 1 1 0,接着发送地址,然后在RD信号的下降沿读取数据。
      • 写入数据:模式ID 1 0 1,接着发送地址和数据,在WR信号的上升沿写入数据。
    • 命令模式模式ID 1 0 0,接着发送具体命令(C7~C0)。
  3. 时序

    • 在RD信号的下降沿读取数据。
    • 在WR信号的上升沿写入数据或命令。
    • 建议主机控制器在RD信号的上升沿和下一个下降沿之间读取数据。

伪代码

数据模式(读取数据)

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送读取模式ID:1 1 0。
3. 发送6位地址(A5~A0)。
4. 触发RD信号读取4位数据(D3~D0)。
5. 设置CS引脚为高电平(1)以结束通信。

数据模式(写入数据)

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送写入模式ID:1 0 1。
3. 发送6位地址(A5~A0)。
4. 发送4位数据(D3~D0)。
5. 设置CS引脚为高电平(1)以结束通信。

命令模式

1. 设置CS引脚为低电平(0)以启动通信。
2. 发送命令模式ID:1 0 0。
3. 发送具体命令(C7~C0)。
4. 设置CS引脚为高电平(1)以结束通信。

类C代码


// 发送指定数量的位
void sendBits(uint8_t data, uint8_t numBits) {
    for (int i = numBits - 1; i >= 0; i--) {
        digitalWrite(DATA_PIN, (data >> i) & 0x01);
        digitalWrite(WR_PIN, HIGH);
        digitalWrite(WR_PIN, LOW);
    }
}

// 读取指定数量的位
uint8_t readBits(uint8_t numBits) {
    uint8_t data = 0;
    for (int i = 0; i < numBits; i++) {
        digitalWrite(RD_PIN, HIGH);
        digitalWrite(RD_PIN, LOW);
        data |= (digitalRead(DATA_PIN) << i);
    }
    return data;
}

// 数据模式(读取数据)
uint8_t readData(uint8_t address) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送读取模式ID:1 1 0
    sendBits(0b110, 3);

    // 发送6位地址
    sendBits(address, 6);

    // 触发RD信号读取4位数据
    digitalWrite(RD_PIN, HIGH);
    digitalWrite(RD_PIN, LOW);
    uint8_t data = readBits(4);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);

    return data;
}

// 数据模式(写入数据)
void writeData(uint8_t address, uint8_t data) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送写入模式ID:1 0 1
    sendBits(0b101, 3);

    // 发送6位地址
    sendBits(address, 6);

    // 发送4位数据
    sendBits(data, 4);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

// 命令模式
void commandMode(uint8_t command) {
    // 启动通信
    digitalWrite(CS_PIN, LOW);

    // 发送命令模式ID:1 0 0
    sendBits(0b100, 3);

    // 发送具体命令(C7~C0)
    sendBits(command, 8);

    // 结束通信
    digitalWrite(CS_PIN, HIGH);
}

应用电路说明

  • 主机控制器与HT1621显示系统的连接

    • IRQ引脚可选连接,用于定时器或WDT溢出标志输出。
    • DATA引脚用于数据传输的串行数据输入/输出线。
    • CS引脚用于初始化串行接口电路并终止通信。
    • RD引脚读时钟输入,用于读取数据。
    • WR引脚写时钟输入,用于写入数据或命令。
  • 时钟源选择

    • 内部RC振荡器默认频率为256kHz。
    • 外部晶体振荡器建议使用32.768kHz晶体,需连接OSCI和OSCO引脚,并添加负载电容(C1, C2)。
    • 外部时钟源可通过OSCI引脚输入256kHz外部时钟。
  • LCD驱动配置

    • VLCD引脚用于调节LCD工作电压,必须小于或等于VDD。
    • 偏置和占空比支持1/2或1/3偏置,以及1/2、1/3或1/4占空比。
    • COM和SEG引脚用于驱动LCD面板的公共端和段端。
  • 音频输出

    • BZ和BZ引脚用于驱动压电蜂鸣器的差分输出。
  • 电源连接

    • VDD正电源,通常为2.4V~5.2V。
    • VSS接地。

设计要点

  1. IRQ和RD引脚的连接

    • 根据MCU的需求选择是否连接IRQ引脚。
    • RD引脚用于读取数据,需根据时序要求正确连接。
  2. VLCD电压调节

    • VLCD引脚电压必须小于或等于VDD。
    • 通过调节VR电阻,适配LCD面板的显示电压(VLCD)。
  3. 时钟源配置

    • 使用32.768kHz晶体时,需添加负载电容(C1, C2),电容值根据晶体精度选择(建议6pF~18pF)。
    • 使用外部时钟源时,直接通过OSCI引脚输入256kHz时钟。
  4. 外部上拉电阻

    • 根据用户的时间基准时钟需求,调整外部上拉电阻(R)的值。

C1/C2推荐容值

容值偏差 容值
±10ppm 0~10p
10~20ppm 10~20p



命令表

命令名称 命令代码 功能描述 默认值
READ 1 1 0 A5A4A3A2A1A0 从RAM中读取数据 -
WRITE 1 0 1 A5A4A3A2A1A0 将数据写入RAM -
READ-MODIFY-WRITE 1 0 1 A5A4A3A2A1A0 从RAM中读取数据,修改后写回RAM -
SYS DIS 1 0 0 0000-0000-X 关闭系统振荡器和LCD偏置发生器
SYS EN 1 0 0 0000-0001-X 开启系统振荡器 -
LCD OFF 1 0 0 0000-0010-X 关闭LCD偏置发生器
LCD ON 1 0 0 0000-0011-X 开启LCD偏置发生器 -
TIMER DIS 1 0 0 0000-0100-X 禁用时基输出 -
WDT DIS 1 0 0 0000-0101-X 禁用WDT超时标志输出 -
TIMER EN 1 0 0 0000-0110-X 启用时基输出 -
WDT EN 1 0 0 0000-0111-X 启用WDT超时标志输出 -
TONE OFF 1 0 0 0000-1000-X 关闭音频输出
TONE ON 1 0 0 0000-1001-X 开启音频输出 -
CLR TIMER 1 0 0 0000-11XX-X 清除时基发生器的内容 -
CLR WDT 1 0 0 0000-111X-X 清除WDT阶段的内容 -
XTAL 32K 1 0 0 0001-01XX-X 系统时钟源:32.768kHz晶体振荡器 -
RC 256K 1 0 0 0001-10XX-X 系统时钟源:256kHz内部RC振荡器
EXT 256K 1 0 0 0001-11XX-X 系统时钟源:256kHz外部时钟源 -
BIAS 1/2 1 0 0 0010-abX0-X LCD偏置选项:1/2偏置
ab=00:2公共端
ab=01:3公共端
ab=10:4公共端
-
BIAS 1/3 1 0 0 0010-abX1-X LCD偏置选项:1/3偏置
ab=00:2公共端
ab=01:3公共端
ab=10:4公共端
-
TONE 4K 1 0 0 010X-XXXX-X 音频频率:4kHz -
TONE 2K 1 0 0 011X-XXXX-X 音频频率:2kHz -
IRQ DIS 1 0 0 100X-0XXX-X 禁用IRQ输出
IRQ EN 1 0 0 100X-1XXX-X 启用IRQ输出 -
F1 1 0 0 101X-X000-X 时基/WDT时钟输出:1Hz
WDT超时标志:4s后触发
-
F2 1 0 0 101X-X001-X 时基/WDT时钟输出:2Hz
WDT超时标志:2s后触发
-
F4 1 0 0 101X-X010-X 时基/WDT时钟输出:4Hz
WDT超时标志:1s后触发
-
F8 1 0 0 101X-X011-X 时基/WDT时钟输出:8Hz
WDT超时标志:0.5s后触发
-
F16 1 0 0 101X-X100-X 时基/WDT时钟输出:16Hz
WDT超时标志:0.25s后触发
-
F32 1 0 0 101X-X101-X 时基/WDT时钟输出:32Hz
WDT超时标志:0.125s后触发
-
F64 1 0 0 101X-X110-X 时基/WDT时钟输出:64Hz
WDT超时标志:0.0625s后触发
-
F128 1 0 0 101X-X111-X 时基/WDT时钟输出:128Hz
WDT超时标志:0.03125s后触发
TEST 1 0 0 1110-0000-X 测试模式(用户勿用) -
NORMAL 1 0 0 1110-0011-X 正常模式

说明

  • 命令代码每个命令的代码格式为1 0 01 0 11 1 0,后跟具体的命令位。
  • 功能描述详细说明了每个命令的作用。
  • 默认值标记为“是”的命令表示HT1621上电后的默认状态。

补充说明

  1. 命令格式中的“X”

    • “X”表示无关位(Don't care),可以是0或1,不影响命令功能。
  2. 地址和数据

    • A5~A06位RAM地址,用于指定操作的目标位置。
    • D3~D04位RAM数据,用于读取或写入操作。
  3. 数据/命令模式(D/C)

    • 数据模式用于读取或写入数据,包括读取、写入和读取-修改-写入操作。
    • 命令模式用于配置HT1621的资源或执行特定操作。
  4. 默认值(Def.)

    • 标记为“是”的命令表示HT1621上电后的默认状态。
  5. 模式命令

    • 1 1 0读取模式。
    • 1 0 1写入模式或读取-修改-写入模式。
    • 1 0 0命令模式。
    • 如果连续发送多个命令,除第一个命令外,后续命令的模式ID可以省略。
  6. 时钟源

    • 音频频率和时基/WDT时钟频率的源可以是:
      • 内部256kHz RC振荡器。
      • 32.768kHz晶体振荡器。
      • 外部256kHz时钟源。
    • 频率计算基于上述系统时钟源。
  7. 上电复位初始化

    • 建议主机控制器在上电复位后初始化HT1621,因为上电复位可能失败,导致HT1621功能异常。

关键点总结

  1. 命令模式ID

    • 命令模式的ID为1 0 0,必须在通信开始时发送。
    • 连续命令中,后续命令的模式ID可以省略。
  2. 时钟源选择

    • 根据应用需求选择合适的时钟源(内部RC振荡器、晶体振荡器或外部时钟源)。
  3. 上电初始化

    • 上电后必须初始化HT1621,以确保其正常工作。
  4. 命令格式

    • 每个命令的格式包括模式ID、地址和数据(如适用)。
    • “X”表示无关位,可以是0或1。

封装尺寸

44-pin LQFP(10mm×10mm) (FP2.0mm)

符号 尺寸(英寸) 最小值 标称值 最大值 说明
A - 0.472 - 基本尺寸(BSC)
B - 0.394 - 基本尺寸(BSC)
C - 0.472 - 基本尺寸(BSC)
D - 0.394 - 基本尺寸(BSC)
E 引脚间距 - 0.032 - 基本尺寸(BSC)
F 引脚宽度 0.012 0.015 0.018 -
G 引脚长度 0.053 0.055 0.057 -
H 封装高度 - - 0.063 -
I 引脚倾斜角度 0.002 - 0.006 -
J 引脚间距 0.018 0.024 0.030 -
K 引脚间距 0.004 - 0.008 -
α 引脚倾斜角度 - -

符号 尺寸(毫米) 最小值 标称值 最大值 说明
A - 12.00 - 基本尺寸(BSC)
B - 10.00 - 基本尺寸(BSC)
C - 12.00 - 基本尺寸(BSC)
D - 10.00 - 基本尺寸(BSC)
E 引脚间距 - 0.80 - 基本尺寸(BSC)
F 引脚宽度 0.30 0.37 0.45 -
G 引脚长度 1.35 1.40 1.45 -
H 封装高度 - - 1.60 -
I 引脚倾斜角度 0.05 - 0.15 -
J 引脚间距 0.45 0.60 0.75 -
K 引脚间距 0.09 - 0.20 -
α 引脚倾斜角度 - -


48-pin SSOP(300mil)

符号 尺寸(英寸) 最小值 标称值 最大值 说明
A 0.395 - 0.420 -
B 0.291 0.295 0.299 -
C 高度 0.008 - 0.014 -
C’ 0.620 0.625 0.630 -
D 0.095 0.102 0.110 -
E 引脚间距 - 0.025 - 基本尺寸(BSC)
F 引脚宽度 0.008 0.012 0.016 -
G 引脚长度 0.020 - 0.040 -
H 引脚倾斜角度 0.005 - 0.010 -
α 引脚倾斜角度 - -

符号 尺寸(毫米) 最小值 标称值 最大值 说明
A 10.03 - 10.67 -
B 7.39 7.49 7.59 -
C 高度 0.20 - 0.34 -
C’ 15.75 15.88 16.00 -
D 2.41 2.59 2.79 -
E 引脚间距 - 0.635 - 基本尺寸(BSC)
F 引脚宽度 0.20 0.30 0.41 -
G 引脚长度 0.51 - 1.02 -
H 引脚倾斜角度 0.13 - 0.25 -
α 引脚倾斜角度 - -

48-pin LQFP (7mm×7mm)

封装尺寸表

符号 尺寸(英寸) 最小值 标称值 最大值 说明
A - 0.354 - 基本尺寸(BSC)
B - 0.276 - 基本尺寸(BSC)
C - 0.354 - 基本尺寸(BSC)
D - 0.276 - 基本尺寸(BSC)
E 引脚间距 - 0.020 - 基本尺寸(BSC)
F 引脚宽度 0.007 0.009 0.011 -
G 引脚长度 0.053 0.055 0.057 -
H 封装高度 - - 0.063 -
I 引脚倾斜角度 0.002 - 0.006 -
J 引脚间距 0.018 0.024 0.030 -
K 引脚间距 0.004 - 0.008 -
α 引脚倾斜角度 - -

符号 尺寸(毫米) 最小值 标称值 最大值 说明
A - 9.00 - 基本尺寸(BSC)
B - 7.00 - 基本尺寸(BSC)
C - 9.00 - 基本尺寸(BSC)
D - 7.00 - 基本尺寸(BSC)
E 引脚间距 - 0.50 - 基本尺寸(BSC)
F 引脚宽度 0.17 0.22 0.27 -
G 引脚长度 1.35 1.40 1.45 -
H 封装高度 - - 1.60 -
I 引脚倾斜角度 0.05 - 0.15 -
J 引脚间距 0.45 0.60 0.75 -
K 引脚间距 0.09 - 0.20 -
α 引脚倾斜角度 - -

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐