今天的用戶希望他們的移動(dòng)設(shè)備具有出色的圖形功能,但仍需要可接受的電池壽命。顯示器的其他用戶也期望低功耗。這些標(biāo)準(zhǔn)顯然有不同的方向,但有可用的低功耗微控制器,如果應(yīng)用得當(dāng),可以大大解決這些問題。本文將介紹三種此類設(shè)備,詳細(xì)介紹三種基于圖形的應(yīng)用程序。
第一個(gè)應(yīng)用將著眼于使用Silicon Labs的EFM32微控制器來驅(qū)動(dòng)電子紙顯示器。然后,本文將介紹使用標(biāo)準(zhǔn)微控制器驅(qū)動(dòng) LCD 的兩種不同方法。在其中的第一個(gè)中,PIC32微控制器來自Microchip將成為開發(fā)無控制器圖形嵌入式應(yīng)用電路的一部分。其次,將使用 STMicroelectronics的標(biāo)準(zhǔn)ST62微控制器來驅(qū)動(dòng) LCD。 電子紙展示
電子閱讀器的增長催生了對(duì)看起來好像是用紙制成的顯示器的需求,以便為讀者創(chuàng)造更像書本的體驗(yàn)。這種顯示器是反射式的,因?yàn)樗鼈兺耆蕾嚟h(huán)境光。沒有背光。它們是雙穩(wěn)態(tài)的,即使斷電也能保留圖像。除了電子閱讀器,它們還用于工業(yè)標(biāo)牌、電子貨架標(biāo)簽和其他圖像更新不頻繁的應(yīng)用。當(dāng)顯示靜態(tài)圖像時(shí),它們不消耗電流,因此延長了電池壽命。但是,他們需要大量電流來更新圖像,這可能需要一到兩秒鐘。
填充有深色油的透明膠囊構(gòu)成像素。油中含有帶負(fù)電荷的白色二氧化鈦顆粒。膠囊的正面和背面都有電極。如果前電極帶正電,則粒子被吸引到它,像素顯示為白色。如果背面電極帶正電,則粒子會(huì)朝著使黑色油可見的方向移動(dòng),因此像素顯示為黑色。這如圖 1 所示。
圖 1:電極將帶負(fù)電的白色顆粒吸引到顯示器的正面或背面以創(chuàng)建圖像。
由于它們消耗的電流非常小,因此顯示器中其他任何消耗電流的東西都變得相對(duì)更明顯,因此微控制器的選擇變得很重要。在此示例中,我們使用的是 Silicon Labs 的 EFM32 MCU,因?yàn)樗梢岳闷涓鞣N能量模式來減少消耗的電流量。在這種類型的應(yīng)用中,它主要處于能量模式 4 中,在這種模式下,它消耗的電流低至 20 nA。此范圍內(nèi)的 MCU 可擁有高達(dá) 1 MB 的 Flash 和 128 KB 的 SRAM,可用于保存幀緩沖區(qū)和圖像。這些顯示器在低溫下也需要更長的時(shí)間來更新,但 MCU 有一個(gè)內(nèi)部溫度傳感器,可以用來調(diào)整這個(gè)時(shí)間。
這種顯示器的一個(gè)問題是對(duì)比度,它會(huì)隨著時(shí)間的推移而衰減。一些制造商對(duì)這種衰減率提出了要求,一個(gè)制造商的一個(gè)例子是在三周內(nèi)從 9.1 到 7.1 的對(duì)比度指定下降。重影也可能導(dǎo)致問題,仍然可以看到之前圖像的某些部分。如果不是所有粒子都設(shè)法移動(dòng)到單元格的另一側(cè),則會(huì)發(fā)生這種情況,從而產(chǎn)生灰色陰影。這通常通過為每個(gè)圖像多次寫入顯示器來解決。
此示例使用Pervasive Displays SG020AS0T1 EPD 擴(kuò)展板和 Silicon Labs EFM32GG-STK3700
入門套件。擴(kuò)展板包括一個(gè)用于連接顯示器的靈活面板連接器、用于存儲(chǔ)圖像的 8 MB 閃存、溫度傳感器和用于連接 EFM32 MCU 的 20 針接頭。該連接器可用于 1.44、2.0 和 2.7 英寸的紙質(zhì)顯示面板。驅(qū)動(dòng)面板的信號(hào)在 20 針接頭上路由。該板帶有一個(gè) 20 針連接器電纜,該電纜端接在另一側(cè)的標(biāo)準(zhǔn)跨接電纜中。圖 2 顯示了如何將入門板連接到擴(kuò)展套件。
圖 2:用于將擴(kuò)展板連接到入門套件的連接表。
Pervasive Displays 的面板配有集成的玻璃上芯片 (CoG) 驅(qū)動(dòng)程序,可控制面板上的線條和列。CoG 有一個(gè)三線 SPI 接口,用于接受來自 MCU 的命令。將圖像寫入顯示器時(shí),面板需要大電壓來驅(qū)動(dòng)像素。為了在沒有外部電壓供應(yīng)的情況下實(shí)現(xiàn)這一點(diǎn),使用了電荷泵電路。MCU 必須提供 100 到 300 kHz 之間的 PWM 信號(hào)來為該電壓充電。
繪制圖像的過程從 MCU 上電和初始化 CoG 開始。在初始化期間,MCU 向 CoG 發(fā)送 SPI 命令,并且必須遵守 CoG 文檔中的時(shí)序。它還必須提供 PWM 波形作為初始化序列的一部分。圖像數(shù)據(jù)被多次寫入以避免重影并提高對(duì)比度。幀應(yīng)重寫的次數(shù)取決于顯示器的類型和溫度。粒子在較冷的溫度下移動(dòng)得更慢,因此面板需要更多的重寫。這就是為什么擴(kuò)展板有一個(gè)溫度傳感器來幫助確定必要的重寫次數(shù)。EFM32 中還有一個(gè)內(nèi)部溫度傳感器可以使用。然后關(guān)閉 CoG 驅(qū)動(dòng)程序,這必須按照 MCU 必須遵循的時(shí)序以特定順序完成。該序列包括首先清除像素寄存器,然后對(duì)電荷泵電容器進(jìn)行放電。
MCU 需要在內(nèi)存中保留兩個(gè)幀緩沖區(qū),一個(gè)用于新圖像,一個(gè)用于仍在面板上的舊圖像。這是因?yàn)槊姘宸炙膫€(gè)階段更新。首先,將當(dāng)前圖像反轉(zhuǎn)。其次,整個(gè)面板被繪制成白色。然后,繪制新圖像的反面,最后繪制新圖像。斷電序列完成后,可以移除面板的電源,圖像將保持在原位。
為了在顯示更新期間優(yōu)化功率,EFM32 必須始終處于正確的能量模式。因此,在渲染新圖像時(shí),它應(yīng)該以高頻率運(yùn)行。在更新階段,當(dāng)幀通過 SPI 傳輸?shù)矫姘鍟r(shí),時(shí)鐘頻率可能會(huì)變慢,因?yàn)樵撾A段應(yīng)該運(yùn)行預(yù)定的時(shí)間。在延遲期間,當(dāng) MCU 等待 CoG 就緒時(shí),MCU 可以處于睡眠模式。根據(jù)在睡眠模式期間是否需要執(zhí)行其他任務(wù),使用能量模式四作為睡眠模式是明智的。從該模式喚醒時(shí),MCU 必須進(jìn)行完全復(fù)位并運(yùn)行啟動(dòng)和初始化代碼,這會(huì)增加電流消耗。因此,僅當(dāng)睡眠模式較長時(shí),此模式才完全有益。
在更新期間可以優(yōu)化以節(jié)省電力的主要參數(shù)是每個(gè)階段應(yīng)該花費(fèi)多長時(shí)間。顯示文檔應(yīng)為每個(gè)面板定義合理的默認(rèn)值以及可用于延長此時(shí)間以適應(yīng)較冷環(huán)境的溫度因素。
無控制器圖形應(yīng)用程序
許多嵌入式應(yīng)用程序使用內(nèi)部或外部圖形控制器,但這些會(huì)增加成本并使設(shè)計(jì)更加復(fù)雜。然而,對(duì)于基本的圖形用戶界面,這種控制器通常不是必需的。相反,可以使用微控制器外圍設(shè)備來創(chuàng)建虛擬圖形控制器,而不會(huì)占用大量 CPU 時(shí)間;此處給出的示例使用的 CPU 時(shí)間不到 5%。它使用 Microchip 的 PIC32 微控制器和公司的PICtail 低成本無控制器 (LCC)圖形板,可與許多 PIC32 入門套件配合使用。
無控制器圖形系統(tǒng)需要以大約 60 Hz 的刷新率將一幀像素信息發(fā)送到顯示玻璃。這意味著系統(tǒng)必須不斷地向 LCD 面板發(fā)送幀數(shù)據(jù),這會(huì)占用大量 CPU 時(shí)間。但是,PIC32 MCU 可以有一個(gè)直接存儲(chǔ)器訪問 (DMA) 外設(shè),無需 CPU 干預(yù)即可傳輸數(shù)據(jù),從而將 CPU 時(shí)間減少到 5% 以下。
在無控制器圖形應(yīng)用程序中,應(yīng)將 DMA 設(shè)置為通過并行主端口 (PMP) 一次傳輸一行幀數(shù)據(jù)。每行包含許多像素,并且 DMA 在每次傳輸期間發(fā)送一部分幀緩沖區(qū)。PMP 或定時(shí)器中斷觸發(fā)下一次 DMA 傳輸,直到傳輸一條線。對(duì)于具有非持久中斷的 PIC32 器件,定時(shí)器是 DMA 觸發(fā)源。
PMP 在每次像素傳輸后選通一個(gè)讀或?qū)懶盘?hào)。PMP 外設(shè)的讀寫選通用作顯示玻璃的像素時(shí)鐘。在傳輸每行像素?cái)?shù)據(jù)后,CPU 會(huì)被 DMA 中斷,并更新 LCD 面板所需的某些時(shí)序信號(hào),例如 HSYNC、VSYNC 和 DEN。重復(fù)此過程,直到繪制了整個(gè)幀。幀存儲(chǔ)在易失性存儲(chǔ)器中,因此圖像可以是動(dòng)態(tài)的。在此設(shè)置中,使用了 SRAM。系統(tǒng)可以設(shè)置為使用內(nèi)部或外部 SRAM,如圖 3 所示。
圖 3:系統(tǒng)設(shè)置為使用外部(頂部)和內(nèi)部(底部)內(nèi)存。
PMP 數(shù)據(jù)線用于將顏色映射到 TFT LCD。根據(jù)所使用的顏色格式,可以配置 16 條 PMP 數(shù)據(jù)線來傳輸顏色數(shù)據(jù)。在 8 BPP 顏色模式下,只需要 8 條 PMP 數(shù)據(jù)線。當(dāng)為 16 BPP 顏色模式使用外部存儲(chǔ)器時(shí),可以使用 8 或 16 PMP 數(shù)據(jù)線。使用 8 條數(shù)據(jù)線,外部存儲(chǔ)器數(shù)據(jù)線仍以 16 BPP 模式映射到 TFT LCD,但 PIC32 MCU 僅通過 8 位連接到存儲(chǔ)器。當(dāng)需要執(zhí)行寫入時(shí),MCU 可以使用外部存儲(chǔ)器上的低/高字節(jié)引腳將 16 位顏色值發(fā)送到 SRAM。
盡管此處描述的無控制器方法旨在與 TFT LCD 面板一起使用,但它也可以與 CSTN 或 MSTN 玻璃一起使用,只需稍作修改。大多數(shù) LCD 面板可以有 8 到 24 條顏色數(shù)據(jù)線,具體取決于顏色深度。這些線為 LCD 提供原始顏色數(shù)據(jù)。時(shí)鐘信號(hào) HSYNC、VSYNC、DEN 和 PCLK 將像素?cái)?shù)據(jù)與圖形幀和 LCD 面板同步。同步線告訴 LCD 面板數(shù)據(jù)何時(shí)位于行 (HSYNC) 或幀 (VSYNC) 的開頭或結(jié)尾。DEN(數(shù)據(jù)啟用線)讓面板知道何時(shí)發(fā)送有效的像素?cái)?shù)據(jù)。TFT 類型面板需要 DEN,因?yàn)樾枰獣r(shí)間來設(shè)置面板以獲得正確的像素位置。
PCLK 信號(hào)是整個(gè)系統(tǒng)的時(shí)鐘源。來自 PCLK 的一個(gè)時(shí)鐘脈沖更新面板。所有其他時(shí)鐘線必須與像素時(shí)鐘同步,以實(shí)現(xiàn)正確的圖像輸出。并非所有顯示面板都有 HSYNC、VSYNC 和 DEN 線。此示例適用于可用于解釋每一行及其用途的面板。但是,不包含 HSYNC 和 VSYNC 信號(hào)的面板仍然可以與無控制器圖形設(shè)置一起使用。
LCC 軟件驅(qū)動(dòng)程序可以幫助需要某些時(shí)序參數(shù)的同步,例如水平和垂直脈沖的脈沖寬度、前沿和后沿。將這些值編譯到驅(qū)動(dòng)程序中后,面板會(huì)顯示框架。
在屏幕中渲染新像素與刷新屏幕一樣重要。這是通過 CPU 寫入顯示緩沖區(qū)來完成的。如果幀存儲(chǔ)在外部,則在更新幀時(shí)暫停 DMA 傳輸。這是因?yàn)橹挥幸粋€(gè) PMP 外設(shè),它由虛擬圖形控制器或 DMA 傳輸共享。這會(huì)影響屏幕的刷新率。需要監(jiān)控像素更新量,防止刷新率變化過大,否則人眼會(huì)察覺到變化。這是使用虛擬圖形控制器中的像素計(jì)數(shù)變量完成的,該變量在每次像素寫入時(shí)更新并在每次 DMA 中斷期間清除。
用標(biāo)準(zhǔn)微控制器驅(qū)動(dòng) LCD
也可以使用 STMicroelectronics 的 ST62 微控制器在沒有專用驅(qū)動(dòng)器的情況下驅(qū)動(dòng) LCD。這適合需要低成本小型顯示器但又可以利用該微控制器的多功能功能的應(yīng)用。
在施加零均方根 (RMS) 電壓的情況下,LCD 實(shí)際上是透明的。LCD 對(duì)比度(使各段變暗或不透明并因此開啟)是由施加的 RMS LCD 電壓和 LCD 閾值電壓之間的差異引起的,該電壓特定于每種 LCD 類型。施加的 LCD 電壓必須交替提供零 DC 值,以確保 LCD 的長壽命。復(fù)用率越高,對(duì)比度越低。信號(hào)的周期必須足夠短以避免顯示的可見閃爍。
每個(gè) LCD 段連接到一個(gè) IO 段和一個(gè)所有段共用的背板。使用 S 段的顯示器由 S+1 條 MCU 輸出線驅(qū)動(dòng)。背板由控制在 0 和VDD之間的信號(hào) – com – 驅(qū)動(dòng),占空比為 50%。選擇“ ON”段時(shí),將具有相反極性的信號(hào)發(fā)送到相應(yīng)的段引腳。當(dāng)同相信號(hào) com 發(fā)送到段引腳時(shí),段為“關(guān)閉”。使用 MCU,IO 在邏輯電平 0 或 1 的輸出模式下運(yùn)行。
對(duì)于雙工驅(qū)動(dòng)器(參見圖 4),使用兩個(gè)背板而不是一個(gè)。每個(gè) LCD 引腳連接到兩個(gè) LCD 段,每個(gè)段在另一側(cè)連接到兩個(gè)背板之一。因此,只需 (S/2)+2 個(gè) MCU 引腳即可驅(qū)動(dòng)具有 S 段的 LCD。必須在背板上產(chǎn)生三種不同的電壓電平:0、V DD /2 和 V DD。段電壓電平僅為 0 和 V DD。如果 RMS 電壓低于 LCD 閾值電壓,則 LCD 段無效,如果 LCD RMS 電壓高于閾值電壓,則 LCD 段有效。只有背板電壓需要中間電壓V DD /2。選擇作為背板的 ST62 IO 引腳由軟件設(shè)置為 0 或VDD的輸出模式V DD /2的電平和高阻抗輸入模式。該電壓 V DD /2 由外部連接到 IO 引腳的兩個(gè)等值電阻器定義。通過使用具有靈活 IO 引腳配置的 MCU,只需四個(gè)附加電阻即可實(shí)現(xiàn)雙工 LCD 驅(qū)動(dòng)。
圖 4:雙工模式下的基本 LCD 段連接。
對(duì)于具有 1 或 2 段和多達(dá) 36 段的多路復(fù)用率的簡單 LCD,這種方法非常具有成本效益。
結(jié)論
許多類型的應(yīng)用都需要某種形式的顯示器,即使是那些有成本和功耗壓力的應(yīng)用。這會(huì)讓許多同樣面臨嚴(yán)格的上市時(shí)間限制的工程師感到頭疼。然而,正如這里的三個(gè)示例所示,標(biāo)準(zhǔn)的低成本和低功耗 MCU 通??捎糜隍?qū)動(dòng)圖形應(yīng)用程序。
評(píng)論
查看更多