HT16E07 在電子紙顯示器的時鐘及溫濕度計的 應用範例 ·...

19
HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例 AN0461T V1.00 1 / 19 June 23, 2017 HT16E07 在電子紙顯示器的時鐘及溫濕度計的 應用範例 文件編碼:AN0461T 簡介 EPD 電泳型顯示器 (Electronic Paper Displays),是一種雙穩態顯示器,顯示器由很多的微杯 或微膠囊排列組成,微杯或微膠囊裡有很多帶電的有色粒子,借由外加電場,使帶電粒子 在液態環境中移動,呈現不同顏色的顯示效果。不改變顯示內容時不耗電、斷電後仍能保 持顯示內容,且黑白對比分明,故一般以電子紙稱呼。 HT16E07 HOLTEK 的段碼式電子紙驅動 IC,內建 120 Segment1 Background1 Common (提供 4 COMBG 引腳,可依應用設置為 COM BG 輸出) ,可輸出 3 級驅動電壓 (GNDVDL VDH),驅動電壓可由 IC 內部 Charge Pump 電路提供。通過 3-wire 通訊與外部 進行數據傳輸。適用於段碼電子價格標籤、醫療顯示、手環、訊息顯示、溫濕度計等。本 案以 HT66F0185(28SSOP)為主控 MCUHT16E07 為驅動 IC,介紹一款用於通過 EPD 來顯示 時間和溫濕度的 DB工作原理 HT16E07 規格 工作電壓:2.4V~3.6V 3 級驅動電壓 (GNDVDL VDH) 120 Segment1 Background1 Common 內置 LUTCharge Pump 控制器、溫度傳感器 3-wire SPI 串列介面

Transcript of HT16E07 在電子紙顯示器的時鐘及溫濕度計的 應用範例 ·...

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 1 / 19 June 23, 2017

    HT16E07 在電子紙顯示器的時鐘及溫濕度計的

    應用範例

    文件編碼:AN0461T

    簡介

    EPD 電泳型顯示器 (Electronic Paper Displays),是一種雙穩態顯示器,顯示器由很多的微杯

    或微膠囊排列組成,微杯或微膠囊裡有很多帶電的有色粒子,借由外加電場,使帶電粒子

    在液態環境中移動,呈現不同顏色的顯示效果。不改變顯示內容時不耗電、斷電後仍能保

    持顯示內容,且黑白對比分明,故一般以電子紙稱呼。

    HT16E07 是 HOLTEK 的段碼式電子紙驅動 IC,內建 120 個 Segment、1 組 Background、1 組

    Common (提供 4 個 COMBG 引腳,可依應用設置為 COM 或 BG 輸出),可輸出 3 級驅動電壓

    (GND、VDL和 VDH),驅動電壓可由 IC 內部 Charge Pump 電路提供。通過 3-wire 通訊與外部

    進行數據傳輸。適用於段碼電子價格標籤、醫療顯示、手環、訊息顯示、溫濕度計等。本

    案以 HT66F0185(28SSOP)為主控 MCU,HT16E07 為驅動 IC,介紹一款用於通過 EPD 來顯示

    時間和溫濕度的 DB。

    工作原理

    HT16E07 規格

    工作電壓:2.4V~3.6V

    3 級驅動電壓 (GND、VDL和 VDH)

    120 個 Segment、1 組 Background、1 組 Common

    內置 LUT、Charge Pump 控制器、溫度傳感器

    3-wire SPI 串列介面

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 2 / 19 June 23, 2017

    HT16E07 通訊

    HT16E07 通過 3-wire 通訊可與外部進行功能設定和數據傳輸等,如下圖所示。

    讀/寫操作時序圖

    HT16E07 分為讀/寫操作。寫操作可分為 Command(單命令)和 Command+Parameter(命令+參數)。

    寫操作為 Command+Parameter(命令+參數)。

    寫操作

    單命令 Command 操作

    CSB 使能後,SDA 第一個 bit 為"0",之後輸出 8 個 bit 的 Command,發送完畢後 CSB 除能。

    操作如下圖。

    Command 寫操作時序圖

    Command+Parameter 操作

    首先發送 Command。CSB 使能後,先發送 Command,SDA 第一個 bit 為"0",之後輸出 8 個

    bit 的 Command,發送完畢後 CSB 除能。發送 Command 後開始發送 Parameter,延時一段時

    間後 CSB 使能,SDA 第一個 bit 為"0",之後輸出 8 個 bit 的數據,發送完成後 CSB 除能。

    根據 Command 對應的數據格式,重複發送 Parameter 的動作發送下一筆數據。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 3 / 19 June 23, 2017

    Command+Parameter 寫操作時序圖

    讀操作

    首先發送 Command。CSB 使能後,先發送 Command,SDA 第一個 bit 為"0",之後輸出 8 個

    bit 的 Command,發送完畢後 CSB 除能。發送 Command 後開始接收 Parameter,延時一段時

    間後 CSB 使能,進入讀數據模式,SDA 第一個 bit 為"1",接收 8 個 bit 的數據,接收完成後

    CSB 除能。

    讀操作時序圖

    命令簡介

    Panel Setting (PSR) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Address 0 0 0 0 0 0 0 0 0 0 00h

    Panel Setting

    (PSR) 0 1 BWR — — — VDLH_EN DDX SHD_N RST_N 8Fh

    BWR:黑/白或紅色選擇。

    0:紅色。VDH和 VDL值由 PWR 暫存器設定。

    1:黑/白。VDH固定為 12V,VDL值由 PWR 暫存器設定。

    VDLH_EN:VDL/VDH選擇。

    0:VDL/VDH選擇由 VDL/VDH pin 提供。

    1:VDL/VDH選擇由內部 Charge Pump 提供。

    DDX:數據狀態選擇。

    0:"0:白;1:黑/紅"。

    1:"0:黑/紅;1:白"。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 4 / 19 June 23, 2017

    SHD_N:Charge Pump 控制。

    0:關閉。

    1:開啟。

    如果 SHD_N 設定為 0,Charge Pump 將自動關閉,此時如果 VDLH_EN 為 1,則驅動

    腳輸出將接地。

    RST_N:重設。

    0:恢復所有暫存器到默認值。

    1:正常操作。

    Power Setting (PWR) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Address 0 0 0 0 0 0 0 0 0 1 01h

    Power Setting (PWR) 0 1 — — VDH_LV[5:0] 1Eh

    0 1 — — VDL_LV[5:0] 1Eh

    VDH_LV[5:0]:默認值為 1Eh,VDH=7.0V。

    VDL_LV[5:0]:默認值為 1Eh,VDH=3.5V。

    具體請查閱 HT16E07 規格書。

    Charge Pump ON (CPON) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Charge Pump ON (CPON) 0 0 0 0 0 0 0 1 0 0 04h

    Charge Pump 命令後,Charge Pump 開始工作,BUSY_N 旗標將置 1。

    用戶在訪問 HT16E07 之前,應先開啟 Charge Pump 功能。

    COMBG Set (CBS) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Address 0 0 0 0 0 0 0 1 0 1 05h

    COMBG Set (CBS) 0 1 — — — — CBS3 CBS2 CBS1 CBS0 0Bh

    CBS3:0:COMBG3 腳設定為 COM 腳位。

    1:COMBG3 腳設定為 BG 腳位。

    CBS2:0:COMBG 腳設定為 COM 腳位。

    1:COMBG2 腳設定為 BG 腳位。

    CBS1:0:COMBG1 腳設定為 COM 腳位。

    1:COMBG1 腳設定為 BG 腳位。

    CBS0:0:COMBG0 腳設定為 COM 腳位。

    1:COMBG0 腳設定為 BG 腳位。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 5 / 19 June 23, 2017

    Frame Rate Control (FRC) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Address 0 0 0 0 1 1 0 0 0 0 30h

    Frame Rate

    Control (FRC) 0 1 SF[1] SF[0] NF[1] NF[0] — P2 P1 P0 83h

    SF[1:0]:Charge Pump 在啟動過程中的開關頻率。

    SF[1] SF[0] 頻率

    0 0 2MHz

    0 1 4 MHz

    1 0 8 MHz(default)

    1 1 12 MHz

    NF[1:0]:Charge Pump 溫度後的開關頻率。

    NF[1] NF[0] 頻率

    0 0 2MHz(default)

    0 1 4 MHz

    1 0 8 MHz

    1 1 12 MHz

    P[2:0]:畫面播放速率。

    P[2:0] 畫面播放速率

    000 10 Hz

    001 20 Hz

    010 40 Hz

    011 50 Hz(default)

    100 57 Hz

    101 67 Hz

    110 80 Hz

    111 100 Hz

    在 Charge Pump 啟動過程中,開關頻率默認為 8MHz,工作電壓為 3V 時,VDH/VDL電壓上升

    到穩定值需要 40ms。當 Charge Pump 穩定後,設定開關頻率為 2MHz 以減少功耗。

    Data Start Transmission (DTM) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    Address 0 0 0 0 0 1 0 0 0 0 10h

    Data Start

    Transmission

    (DTM)

    (17-byte command)

    0 1 S1 S2 S3 S4 S5 S6 S7 S8 00h

    0 1 S9 S10 S11 S12 S13 S14 S15 S16 00h

    0 1 S17 S18 S19 S20 S21 S22 S23 S24 00h

    0 1 S25 S26 S27 S28 S29 S30 S31 S32 00h

    0 1 S33 S34 S35 S36 S37 S38 S39 S40 00h

    0 1 S41 S42 S43 S44 S45 S46 S47 S48 00h

    0 1 S49 S50 S51 S52 S53 S54 S55 S56 00h

    0 1 S57 S58 S59 S60 S61 S62 S63 S64 00h

    0 1 S65 S66 S67 S68 S69 S70 S71 S72 00h

    0 1 S73 S74 S75 S76 S77 S78 S79 S80 00h

    0 1 S81 S82 S83 S84 S85 S86 S87 S88 00h

    0 1 S89 S90 S91 S92 S93 S94 S95 S96 00h

    0 1 S97 S98 S99 S100 S101 S102 S103 S104 00h

    0 1 S105 S106 S107 S108 S109 S110 S111 S112 00h

    0 1 S113 S114 S115 S116 S117 S118 S119 S120 00h

    0 1 BG — — — — — — — 00h

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 6 / 19 June 23, 2017

    VCOM LUT (LUTV) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    VCOM LUT (LUTV)

    (16-byte command,

    bytes 2~4 repeated 5 times)

    0 0 0 0 1 0 0 0 0 0 20h

    0 1 LVL_V1[1:0] FRM_V1[5:0] 00h

    0 1 LVL_V2[1:0] FRM_V2[5:0] 00h

    0 1 PHS_V[7:0] 00h

    LVL_V1[1:0]:(bytes 2, 5, 8, 11, 14):電壓選擇 Level selection(1)。

    LVL_V2[1:0]:(bytes 3, 6, 9, 12, 15):電壓選擇 Level selection (2)。

    FRM_Vx[5:0] Level(x)

    00 VDL

    01 VDH

    10 0V

    11 Floating

    FRM_V1[5:0]:(bytes 2, 5, 8, 11, 14):幀數 Number of Frames (1)。

    FRM_V2[5:0]:(bytes 3, 6, 9, 12, 15):幀數 Number of Frames (2)。

    FRM_Vx[5:0] 幀數(x)

    000000 0

    000001 1

    000010 2

    000011 3

    : :

    111111 63

    PHS_V[7:0]:(bytes 4, 7, 10, 13, 16):重複相數 Number of Phase。

    PHS_V[7:0] Number of Phase

    00000000 0

    00000001 1

    00000010 2

    00000011 3

    : :

    11111111 255

    此命令儲存了VCOM LUT所有使用的 5個相的數據,每個相所包含的資訊由 3個位元組組成。

    BlackBlack LUT (LUT_KK) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    BlackBlack LUT

    (LUT_KK)

    (16-byte command,

    bytes 2~4 repeated 5 times)

    0 0 0 0 1 0 0 0 0 0 21h

    0 1 LVL_KK1[1:0] FRM_KK1[5:0] 00h

    0 1 LVL_KK2[1:0] FRM_KK2[5:0] 00h

    0 1 PHS_KK[7:0] 00h

    LVL_KK1[1:0]:(bytes 2, 5, 8, 11, 14):電壓選擇 Level selection(1)。

    LVL_KK2[1:0]:(bytes 3, 6, 9, 12, 15):電壓選擇 Level selection (2)。

    FRM_KKx[5:0] Level(x)

    00 VDL

    01 VDH

    10 0V

    11 Floating

    FRM_KK1[5:0]:(bytes 2, 5, 8, 11, 14):幀數 Number of Frames (1)。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 7 / 19 June 23, 2017

    FRM_KK2[5:0]:(bytes 3, 6, 9, 12, 15):幀數 Number of Frames (2)。

    FRM_KKx[5:0] 幀數(x)

    000000 0

    000001 1

    000010 2

    000011 3

    : :

    111111 63

    PHS_KK[7:0]:(bytes 4, 7, 10, 13, 16):重複相數 Number of Phase。

    PHS_KK[7:0] Number of Phase

    00000000 0

    00000001 1

    00000010 2

    00000011 3

    : :

    11111111 255

    此命令儲存了 BlackBlackLUT 所有使用的 5 個相的數據,每個相所包含的資訊由 3 個位元組

    組成。

    BlackBlack:顏色從黑色變成黑色。

    BlackWhite LUT (LUT_KW) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    BlackWhite LUT

    (LUT_KW)

    (16-byte command,

    bytes 2~4 repeated 5 times)

    0 0 0 0 1 0 0 0 0 0 22h

    0 1 LVL_KW1[1:0] FRM_KW1[5:0] 00h

    0 1 LVL_KW2[1:0] FRM_KW2[5:0] 00h

    0 1 PHS_KW[7:0] 00h

    LVL_KW1[1:0]:(bytes 2, 5, 8, 11, 14):電壓選擇 Level selection(1)。

    LVL_KW2[1:0]:(bytes 3, 6, 9, 12, 15):電壓選擇 Level selection (2)。

    FRM_KWx[5:0] Level(x)

    00 VDL

    01 VDH

    10 0V

    11 Floating

    FRM_V1[5:0]:(bytes 2, 5, 8, 11, 14):幀數 Number of Frames (1)。

    FRM_V2[5:0]:(bytes 3, 6, 9, 12, 15):幀數 Number of Frames (2)。

    FRM_KWx[5:0] 幀數(x)

    000000 0

    000001 1

    000010 2

    000011 3

    : :

    111111 63

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 8 / 19 June 23, 2017

    PHS_KW[7:0]:(bytes 4, 7, 10, 13, 16):重複相數 Number ofPhase。

    PHS_KW[7:0] Number of Phase

    00000000 0

    00000001 1

    00000010 2

    00000011 3

    : :

    11111111 255

    此命令儲存了 BlackWhite LUT 所有使用的 5 個相的數據,每個相所包含的資訊由 3 個位元

    組組成。

    BlackWhite:顏色從黑色變成白色。

    WhiteBlack LUT (LUT_WK) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    WhiteBlack LUT

    (LUT_WK)

    (16-byte command,

    bytes 2~4 repeated 5 times)

    0 0 0 0 1 0 0 0 0 0 23h

    0 1 LVL_WK1[1:0] FRM_WK1[5:0] 00h

    0 1 LVL_WK2[1:0] FRM_WK2[5:0] 00h

    0 1 PHS_WK[7:0] 00h

    LVL_WK1[1:0]:(bytes 2, 5, 8, 11, 14):電壓選擇 Level selection(1)。

    LVL_WK2[1:0]:(bytes 3, 6, 9, 12, 15):電壓選擇 Level selection (2)。

    FRM_WKx[5:0] Level(x)

    00 VDL

    01 VDH

    10 0V

    11 Floating

    FRM_WK1[5:0]:(bytes 2, 5, 8, 11, 14):幀數 Number of Frames (1)。

    FRM_WK2[5:0]:(bytes 3, 6, 9, 12, 15):幀數 Number of Frames (2)。

    FRM_WKx[5:0] 幀數(x)

    000000 0

    000001 1

    000010 2

    000011 3

    : :

    111111 63

    PHS_WK[7:0]:(bytes 4, 7, 10, 13, 16):重複相數 Number of Phase。

    PHS_WK[7:0] Number of Phase

    00000000 0

    00000001 1

    00000010 2

    00000011 3

    : :

    11111111 255

    此命令儲存了 WhiteBlack LUT 所有使用的 5 個相的數據,每個相所包含的資訊由 3 個位元

    組組成。

    WhiteBlack:顏色從白色變成黑色。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 9 / 19 June 23, 2017

    WhiteWhite LUT (LUT_WW) Command

    Command R/W D/CX Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Def.

    WhiteWhite LUT (LUT_WW)

    (16-byte command,

    bytes 2~4 repeated 5 times)

    0 0 0 0 1 0 0 0 0 0 24h

    0 1 LVL_WW1[1:0] FRM_WW1[5:0] 00h

    0 1 LVL_WW2[1:0] FRM_WW2[5:0] 00h

    0 1 PHS_WW[7:0] 00h

    LVL_WW1[1:0]:(bytes 2, 5, 8, 11, 14):電壓選擇 Level selection(1)。

    LVL_WW2[1:0]:(bytes 3, 6, 9, 12, 15):電壓選擇 Level selection (2)。

    FRM_WWx[5:0] Level(x)

    00 VDL

    01 VDH

    10 0V

    11 Floating

    FRM_WW1[5:0]:(bytes 2, 5, 8, 11, 14):幀數 Number of Frames (1)。

    FRM_WW2[5:0]:(bytes 3, 6, 9, 12, 15):幀數 Number of Frames (2)。

    FRM_WWx[5:0] 幀數(x)

    000000 0

    000001 1

    000010 2

    000011 3

    : :

    111111 63

    PHS_WW[7:0]:(bytes 4, 7, 10, 13, 16):重複相數 Number of Phase。

    PHS_WW[7:0] Number of Phase

    00000000 0

    00000001 1

    00000010 2

    00000011 3

    : :

    11111111 255

    此命令儲存了 WhiteWhiteLUT 所有使用的 5 個相的數據,每個相所包含的資訊由 3 個位元

    組組成。

    WhiteWhite:顏色從白色變成白色。

    HT16E07 初始化

    HT16E07 在使用前需要做初始化。在操作 HT16E07 之前,首先必須發送 CPON 命令啟動模

    塊,之後通過 PSR 命令選擇"黑/白或紅色"、"VDL/VDH 選擇"等,通過 CBS 命令設定 COMBGn

    為 COM 或者 BG 腳,通過 FRC 命令設定"畫面播放速率",通過 LUTV、LUT_KK、LUT_KW、

    LUT_WK 和 LUT_WW 設定電子紙波形輸出規則。命令細節請參考"命令簡介"章節。初始化

    完成後即可正常使用。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 10 / 19 June 23, 2017

    初始化過程

    硬體說明

    系統方塊圖

    主控 MCU 為 HT66F0185(28SSOP)。

    電源電路

    USB 通過 HT7133 供電

    單顆 CR2032 供電

    12-bit A/D 電路

    採集電池電壓值

    按鍵電路

    模式選擇和功能設定

    EPD 顯示屏 (HT16E07)

    顯示 DB 功能演示的相關資訊

    時鐘電路 (HT1381)

    用於 DB 顯示當前時間信息

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 11 / 19 June 23, 2017

    應用電路

    整機原理圖

    電源電路

    如圖為電源電路,系統可由外部和電池進行供電。外部電源通過HT7133後輸出穩定的3.3V,

    以供系統使用,LED1 燈用於提示外部電源是否連入。電池供電為單顆 CR2032 3V 紐扣電池

    直接供電。外部電源和電池分別通過肖特基二極管 D1、D2 連入系統給 VDD。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 12 / 19 June 23, 2017

    時鐘電路

    如圖為 HT1381 組成的時鐘電路,HT1381 是一款用硬體來實現日曆及時鐘功能的標準品,

    在與其它 MCU 配套使用時外部只需掛一顆 32.768kHz 的晶體振盪器。使用時只需將初始時

    間日期寫入其相應的暫存器內即可,隨後從 HT1381 內讀出的資料即為當前時間日期值。其

    中有 R17、R18、R19(電阻值可取 100 歐左右)用與衰減干擾信號,提高抗干擾能力,確

    保系統的穩定性。

    顯示模塊電路

    主控 MCU 通過採用 3-Wire 通信與電子紙驅動 IC HT16E07 進行通信。通信線上 R10、R11、

    R12、R13、R14、R15、R16(電阻值可取 510 歐左右)用與衰減干擾信號,提高抗干擾能力,

    確保系統的穩定性。通過拉高 MS 引腳準位,將 HT16E07 設定為 Master。拉高 SHD_N 引腳

    準位,打開 Charge Pump。隨後通過 3-wire 通信對 HT16E07 進行初始化,模式設定數據更新

    等操作。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 13 / 19 June 23, 2017

    按鍵電路

    如圖 DB 有 4 個按鍵,分別為"UP"、"DOWN"、"SET"、"SEL",對應其相應的功能。4 個按

    鍵所對應的 I/O 口均有喚醒功能,在休眠狀態下按下按鍵均可喚醒 MCU。

    軟體說明

    主程式流程圖及其說明

    main

    System_State1.HT1381_Updata=1;u8_StateMode=1;

    RamClean();IO_Initial();

    HT16E07_Initial();HT1381_Initial();Timer_Initial();

    GCC_CLRWDT();State_Manager();

    HT16E07_UpData();Halt_Manager();

    主程序流程圖

    MCU POR 後程式首先做初始化的工作,清 RAM、初始化 I/O、設定定時、初始化 HT16E07

    和HT1381等。初始化之後電子紙顯示屏顯示畫面"溫度時間顯示"模式,系統進入待機狀態,

    等待按鍵觸發或定時器中斷觸發,具體的流程如上圖所示。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 14 / 19 June 23, 2017

    工作模式切換程式流程圖及其說明

    State_Manager

    Key_Set是否長按 ?

    RET

    Y

    退出時鐘調整模式,并保存設置

    是否處於時鐘調整模式 ?

    u8_StateMode==1 ?

    進入時鐘調整模式

    u8_StateMode==2 ?

    u8_StateMode==3 ?

    u8_StateMode==4 ?

    u8_StateMode==10 ?

    溫度時間顯示模式

    濕度時間顯示模式

    溫度光照顯示模式

    濕度氣壓顯示模式

    時鐘設置模式

    N

    N

    Y

    Y

    Y

    Y

    Y

    Y

    N

    N

    N

    N

    N

    System_State1.HT1381_Updata==1 ?

    HT1381_Manager();ADC_Sample();

    Y

    N

    工作模式切換流程圖

    程式前半部分用於檢測"SET"按鍵是否長按(2S 以上),如果檢測到長按則進入時間調整模式

    或跳出時間調整模式。之後根據 u8_StateMode 值進入相應的工作模式。當檢測到

    System_State1.HT1381_Updata 為"1"時,讀取 HT1381 當前時間和檢測當前電池電壓,並更新

    顯示。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 15 / 19 June 23, 2017

    工作電壓採集副程式流程圖及其說明

    ADC_Sample

    是否欠電壓?

    RET

    Y

    採集MCU的VDD電壓,共採集10筆數據,剔除最大值和最小值後,將剩下的

    值求平均。

    將採到的AD值與內置的低電壓AD參考值進行比較,判斷是否欠電壓

    S12=1;點亮欠電壓圖標

    S12=0;清除欠電壓圖標N

    工作電壓採集流程圖

    A/D 採樣電池電壓值,共採集 10 筆數據,剔除最大值和最小值後,將剩下的數據求平均值

    後得到 nAdc,將採集到的 nAdc 與內部預設的 M_BatV 值進行比較,如果 nAdc>=M_BatV 則

    電池電量正常,熄滅電池欠壓圖標。nAdc

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 16 / 19 June 23, 2017

    HT1381 應用副程式及流程圖

    HT1381_SetTime

    RET

    HT1381_Tx(0b10001110);HT1381_Tx(0b00000000);

    HT1381_Tx(BurstMode_W);

    按順序寫入秒、分、時、日、周、月、年

    HT1381_Tx(0b10001110);HT1381_Tx(0b00000000);

    HT1381_Tx(BurstMode_W);

    按順序讀出秒、分、時、日、周、月、年

    HT1381_GetTime

    RET

    HT1381 應用流程圖

    如圖所示,當設定時間時,先發送命令設定 HT1381 為可寫狀態,設定為可多位元組讀寫模

    式,將預設的時間值秒、分、時、日、周、月、年依次寫入 HT1381,寫完之後再發送命令

    設定 HT1381 為寫保護狀態。當讀取時間時,先發送命令設定 HT1381 為可寫狀態,設定為

    可多位元組讀寫模式,並將時間值秒、分、時、日、周、月、年依次從 HT1381 讀出來。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 17 / 19 June 23, 2017

    HT16E07 顯示副程式流程圖及其說明

    HT16E07_UpData

    System_State2.HT16E07_Updata==1?

    RET

    Y

    HT16E07_3Wire_Tx(0,FLG_GetStatus_CMD);nRead=HT16E07_3Wire_Rx();

    IO_BUSY_N!=0?

    (nRead&0x01)!=0?

    更新HT16E07的顯示數據

    HT16E07_3Wire_Tx(0,FLG_GetStatus_CMD);nRead=HT16E07_3Wire_Rx();

    (nRead&0x01)!=0?

    HT16E07_3Wire_Tx(0,CPOF_ChargePumpOFF_CMD);HT16E07_3Wire_Tx(1,0x00);IO_CSB=1;IO_MS=1;IO_SCL=1;IO_SDA=1;進入休眠

    System_State2.HT16E07_Busy!=0?

    Y

    Y

    Y

    Y

    N

    N

    N

    N

    N

    HT16E07 顯示流程圖

    當 System_State2.HT16E07_Updata 為"1",發送命令開啟 HT16E07 的 Charge Pump,更新前判

    斷 IO_BUSY_N 狀態是否為空閒。更新前先讀取 HT16E07 的 FLG_GetStatus 的值,判斷是否

    可以進行操作,在空閒時根據數據格式進行更新。數據發送完之後,讀取 HT16E07 的

    FLG_GetStatus 的值,判斷是否更新完畢,更新完畢之後發送命令關閉 Charge Pump。

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 18 / 19 June 23, 2017

    程式範例

    Source Code 檔

    HT16E07_HT66F0185-DB-20170602-AN.z

    SCH & PCB 圖檔

    sch&pcb.zip

    操作說明

    DB 功能說明

    DB 可由外部和電池進行供電,按鍵 SW 撥到"ON"系統上電,顯示屏顯示預設好的時間,並

    顯示當前溫度和天氣狀況。通過"SEL"按鍵可以切換當前的顯示畫面。長按"SET"鍵,進入

    時間設定模式,在時間設定模式下,通過"SEL"鍵切換時間的"時"、"分"的設定,"UP"、"DOWN"

    對其數字進行加減。設定完成後長按"SET"完成時間設定。

    整機圖

    SET SEL DOWN UP

    SW

    USB 接口

  • HT16E07 在電子紙顯示器的時鐘及溫濕度計的應用範例

    AN0461T V1.00 19 / 19 June 23, 2017

    結論

    本文根據 HT16E07 的特性及用途,介紹一些關於 HT16E07 驅動電子紙的使用注意事項和使

    用技巧,結合 DB 程式範例,幫助使用者能夠更靈活的運用 HT16E07 的功能。

    版本及修改資訊

    Date 日期 Author 作者 Issue 發行、修訂說明

    2017.06.02 鄭金顯 First Version

    參考資料

    參考文件 HT16E07 Datasheet。

    如需進一步瞭解,敬請瀏覽 Holtek 官方網站 http://www.holtek.com。

    免責聲明

    本網頁所載的所有資料、商標、圖片、連結及其他資料等(以下簡稱「資料」),只供參

    考之用,盛群半導體股份有限公司(以下簡稱「本公司」)將會隨時更改資料,並由本公

    司決定而不作另行通知。雖然本公司已盡力確保本網頁的資料準確性,但本公司並不保證

    該等資料均為準確無誤。本公司不會對任何錯誤或遺漏承擔責任。

    本公司不會對任何人士使用本網頁而引致任何損害(包括但不限於電腦病毒、系統固障、

    資料損失)承擔任何賠償。本網頁可能會連結至其他機構所提供的網頁,但這些網頁並不

    是由本公司所控制。本公司不對這些網頁所顯示的內容作出任何保證或承擔任何責任。

    責任限制

    在任何情況下,本公司並不須就任何人由於直接或間接進入或使用本網站,並就此內容上

    或任何產品、資訊或服務,而招致的任何損失或損害負任何責任。

    管轄法律

    本免責聲明受中華民國法律約束,並接受中華民國法院的管轄。

    免責聲明更新

    本公司保留隨時更新本免責聲明的權利,任何更改於本網站發佈時,立即生效。

    http://www.holtek.com.tw/home

    簡介工作原理HT16E07規格HT16E07通訊命令簡介

    硬體說明系統方塊圖應用電路

    軟體說明主程式流程圖及其說明工作模式切換程式流程圖及其說明工作電壓採集副程式流程圖及其說明按鍵檢測副程式流程圖及其說明HT1381應用副程式及流程圖HT16E07顯示副程式流程圖及其說明程式範例

    操作說明DB功能說明

    結論版本及修改資訊參考資料免責聲明

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice