HT1621B手册翻译细读

特性  

  • 工作电压: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-41004150
2-39004150
3-37004150
.........
444100-4150

焊盘坐标说明

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

焊盘描述

焊盘编号焊盘名称输入/输出功能描述
1CS输入芯片选择输入(内置上拉电阻)。当CS为高电平时,禁用从HT1621读取或写入的数据和命令,同时复位串行接口电路;当CS为低电平时,启用主机控制器与HT1621之间的数据和命令传输。
2RD输入读时钟输入(内置上拉电阻)。在RD信号的下降沿,HT1621 RAM中的数据被输出到DATA线上,主机控制器可在下一个上升沿锁存数据。
3WR输入写时钟输入(内置上拉电阻)。在WR信号的上升沿,DATA线上的数据被锁存到HT1621中。
4DATA输入/输出串行数据输入/输出(内置上拉电阻)。
5VSS-负电源,接地。
7OSCI输入连接32.768kHz晶体以生成系统时钟。如果使用外部时钟源,则外部时钟应连接到OSCI引脚;如果选择内部RC振荡器,则OSCI和OSCO引脚可悬空。
6OSCO输出晶体振荡器输出。
8VLCD输入LCD电源输入。
9VDD-正电源。
10IRQ输出时基或看门狗定时器(WDT)溢出标志,NMOS开漏输出。
11, 12BZ, BZ输出2kHz或4kHz音频频率输出对。
13~16COM0~COM3输出LCD公共端输出。
48~17SEG0~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.45.2V
IDD1工作电流3V,无负载/LCD开启,内部RC振荡器150300μA
5V,无负载/LCD开启,内部RC振荡器300600μA
IDD2工作电流3V,无负载/LCD开启,晶体振荡器60120μA
5V,无负载/LCD开启,晶体振荡器120240μA
IDD3工作电流3V,无负载/LCD开启,外部时钟源100200μA
5V,无负载/LCD开启,外部时钟源200400μA
ISTB待机电流3V,无负载,低功耗模式0.15μA
5V,无负载,低功耗模式0.310μA
VIL输入低电平电压3V,DATA, WR, CS, RD00.6V
5V,DATA, WR, CS, RD01.0V
VIH输入高电平电压3V,DATA, WR, CS, RD2.43.0V
5V,DATA, WR, CS, RD4.05.0V
IOL1输出低电平电流3V,VOL=0.3V,DATA, BZ, BZ, IRQ0.51.2mA
5V,VOL=0.5V,DATA, BZ, BZ, IRQ1.32.6mA
IOH1输出高电平电流3V,VOH=2.7V,DATA, BZ, BZ-0.4-0.8mA
5V,VOH=4.5V,DATA, BZ, BZ-0.9-1.8mA
IOL2LCD公共端吸入电流3V,VOL=0.3V80150μA
5V,VOL=0.5V150250μA
IOH2LCD公共端源出电流3V,VOH=2.7V-80-120μA
5V,VOH=4.5V-120-200μA
IOL3LCD段吸入电流3V,VOL=0.3V60120μA
5V,VOL=0.5V120200μA
IOH3LCD段源出电流3V,VOH=2.7V-40-70μA
5V,VOH=4.5V-70-100μA
RPH上拉电阻3V,DATA, WR, CS, RD60120200
5V,DATA, WR, CS, RD3060100

交流特性

测试条件:Ta=25°C

符号参数VDD测试条件最小值典型值最大值单位
fSYS1系统时钟3V内部RC振荡器192256320kHz
fSYS2系统时钟晶体振荡器32768Hz
fSYS3系统时钟外部时钟源256kHz
fLCDLCD时钟内部RC振荡器fSYS1/1024Hz
晶体振荡器fSYS2/128Hz
外部时钟源fSYS3/1024Hz
tCOMLCD公共端周期n:COM数量n/fLCDs
fCLK1串行数据时钟(WR引脚)3V占空比50%4150kHz
5V占空比50%4300kHz
fCLK2串行数据时钟(RD引脚)3V占空比50%75kHz
5V占空比50%150kHz
fTONE音频频率(2kHz)3V内部RC振荡器1.52.02.5kHz
音频频率(4kHz)3V内部RC振荡器3.04.05.0kHz
tCS串行接口复位脉冲宽度CS引脚250300ns
tCLKWR、RD输入脉冲宽度3V写模式3.34125μs
3V读模式6.67μs
5V写模式1.67125μs
5V读模式3.34μs
tr, tf上升/下降时间串行数据时钟宽度120ns
160ns
tsuDATA到WR、RD时钟的建立时间60120ns
thDATA到WR、RD时钟的保持时间250300ns
tsu1CS到WR、RD时钟的建立时间500600ns
th1CS到WR、RD时钟的保持时间250300ns
tOFFVDD关闭时间VDD降至0V20ms
tSRVDD上升斜率0.05V/ms
tRSTD复位后延迟时间1ms

备注: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)
0D3, D2, D1, D0SEG0COM0
1D3, D2, D1, D0SEG1COM0
2D3, D2, D1, D0SEG2COM0
............
31D3, D2, D1, D0SEG31COM3

系统振荡器

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 OFF1 0 0 0 0 0 0 0 0 1 0 X关闭LCD输出,禁用LCD偏置发生器。
LCD ON1 0 0 0 0 0 0 0 0 1 1 X打开LCD输出,启用LCD偏置发生器。
BIAS & COM1 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推荐容值

容值偏差容值
±10ppm0~10p
10~20ppm10~20p



命令表

命令名称命令代码功能描述默认值
READ1 1 0 A5A4A3A2A1A0从RAM中读取数据-
WRITE1 0 1 A5A4A3A2A1A0将数据写入RAM-
READ-MODIFY-WRITE1 0 1 A5A4A3A2A1A0从RAM中读取数据,修改后写回RAM-
SYS DIS1 0 0 0000-0000-X关闭系统振荡器和LCD偏置发生器
SYS EN1 0 0 0000-0001-X开启系统振荡器-
LCD OFF1 0 0 0000-0010-X关闭LCD偏置发生器
LCD ON1 0 0 0000-0011-X开启LCD偏置发生器-
TIMER DIS1 0 0 0000-0100-X禁用时基输出-
WDT DIS1 0 0 0000-0101-X禁用WDT超时标志输出-
TIMER EN1 0 0 0000-0110-X启用时基输出-
WDT EN1 0 0 0000-0111-X启用WDT超时标志输出-
TONE OFF1 0 0 0000-1000-X关闭音频输出
TONE ON1 0 0 0000-1001-X开启音频输出-
CLR TIMER1 0 0 0000-11XX-X清除时基发生器的内容-
CLR WDT1 0 0 0000-111X-X清除WDT阶段的内容-
XTAL 32K1 0 0 0001-01XX-X系统时钟源:32.768kHz晶体振荡器-
RC 256K1 0 0 0001-10XX-X系统时钟源:256kHz内部RC振荡器
EXT 256K1 0 0 0001-11XX-X系统时钟源:256kHz外部时钟源-
BIAS 1/21 0 0 0010-abX0-XLCD偏置选项:1/2偏置
ab=00:2公共端
ab=01:3公共端
ab=10:4公共端
-
BIAS 1/31 0 0 0010-abX1-XLCD偏置选项:1/3偏置
ab=00:2公共端
ab=01:3公共端
ab=10:4公共端
-
TONE 4K1 0 0 010X-XXXX-X音频频率:4kHz-
TONE 2K1 0 0 011X-XXXX-X音频频率:2kHz-
IRQ DIS1 0 0 100X-0XXX-X禁用IRQ输出
IRQ EN1 0 0 100X-1XXX-X启用IRQ输出-
F11 0 0 101X-X000-X时基/WDT时钟输出:1Hz
WDT超时标志:4s后触发
-
F21 0 0 101X-X001-X时基/WDT时钟输出:2Hz
WDT超时标志:2s后触发
-
F41 0 0 101X-X010-X时基/WDT时钟输出:4Hz
WDT超时标志:1s后触发
-
F81 0 0 101X-X011-X时基/WDT时钟输出:8Hz
WDT超时标志:0.5s后触发
-
F161 0 0 101X-X100-X时基/WDT时钟输出:16Hz
WDT超时标志:0.25s后触发
-
F321 0 0 101X-X101-X时基/WDT时钟输出:32Hz
WDT超时标志:0.125s后触发
-
F641 0 0 101X-X110-X时基/WDT时钟输出:64Hz
WDT超时标志:0.0625s后触发
-
F1281 0 0 101X-X111-X时基/WDT时钟输出:128Hz
WDT超时标志:0.03125s后触发
TEST1 0 0 1110-0000-X测试模式(用户勿用)-
NORMAL1 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.0120.0150.018-
G引脚长度0.0530.0550.057-
H封装高度--0.063-
I引脚倾斜角度0.002-0.006-
J引脚间距0.0180.0240.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.300.370.45-
G引脚长度1.351.401.45-
H封装高度--1.60-
I引脚倾斜角度0.05-0.15-
J引脚间距0.450.600.75-
K引脚间距0.09-0.20-
α引脚倾斜角度--


48-pin SSOP(300mil)

符号尺寸(英寸)最小值标称值最大值说明
A0.395-0.420-
B0.2910.2950.299-
C高度0.008-0.014-
C’0.6200.6250.630-
D0.0950.1020.110-
E引脚间距-0.025-基本尺寸(BSC)
F引脚宽度0.0080.0120.016-
G引脚长度0.020-0.040-
H引脚倾斜角度0.005-0.010-
α引脚倾斜角度--

符号尺寸(毫米)最小值标称值最大值说明
A10.03-10.67-
B7.397.497.59-
C高度0.20-0.34-
C’15.7515.8816.00-
D2.412.592.79-
E引脚间距-0.635-基本尺寸(BSC)
F引脚宽度0.200.300.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.0070.0090.011-
G引脚长度0.0530.0550.057-
H封装高度--0.063-
I引脚倾斜角度0.002-0.006-
J引脚间距0.0180.0240.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.170.220.27-
G引脚长度1.351.401.45-
H封装高度--1.60-
I引脚倾斜角度0.05-0.15-
J引脚间距0.450.600.75-
K引脚间距0.09-0.20-
α引脚倾斜角度--

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值