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