本應(yīng)用筆記討論了使用MAX6952和MAX6953 SPI和I2C 5×7矩陣LED顯示驅(qū)動器構(gòu)建單色和雙色圖形留言板的軟件設(shè)計技術(shù)。
本應(yīng)用筆記是討論MAX6952和MAX6953 LED驅(qū)動器應(yīng)用中的軟件和處理器接口問題的兩篇應(yīng)用筆記之一,用于構(gòu)建用于留言板和動畫圖形顯示的點數(shù)海LED矩陣圖形面板。本說明介紹了面板設(shè)計的軟件方面。
MAX6952和MAX6953為4位陰極排5×7矩陣LED顯示驅(qū)動器,通過高速SPI控制?(MAX6952)或I2C (MAX6953) 串行接口。這些驅(qū)動程序主要用于字符顯示應(yīng)用,其中單個 5×7 矩陣數(shù)字在物理上間隔開以形成一個或多個字符行(圖 1)。
圖1.使用 8×2 個矩陣字符的 5 個字符 x 7 行矩陣顯示面板的示例。
MAX6952和MAX6953將4個獨立的5×7矩陣LED處理為4位數(shù)字。用戶控制每個數(shù)字上顯示 104 個固定字符和 24 個用戶定義字符中的哪一個。如果需要,用戶可以在通電后將自定義字符加載到 24 種用戶定義的字體中。顯示使用數(shù)字寄存器控制,以從 128 個字符的字體中選擇一個字符。此方法對于字符顯示快速有效,但不適用于圖形顯示。
對于使用MAX6952或MAX6953的圖形應(yīng)用,控制技術(shù)正好相反。固定字體被忽略,24 種用戶定義的字體用于直接圖形顯示控制。每個數(shù)字寄存器都設(shè)置為指向不同的用戶定義的字體位置,并且對字體本身進行操作以調(diào)整 5×7 部分中的圖形顯示。如果不需要閃爍控制,則只需要 4 個用戶定義的字體位置,每個 5×7 部分一個(表 1)。如果使用閃爍,則需要 8 個用戶定義的字體位置,每個閃爍階段(P1 和 P0)每個 5×7 部分一個(表 2)。數(shù)字寄存器只需使用適當?shù)?a href="http://www.asorrir.com/tags/ram/" target="_blank">RAMxx字符地址寫入一次,并且字體本身作以設(shè)置圖形圖像。
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | |
字體位置 | RAM00 | RAM01 | RAM02 | RAM03 |
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | |||||
閃爍階段 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 |
字體位置 | RAM00 | RAM04 | RAM01 | RAM05 | RAM02 | RAM06 | RAM03 | RAM07 |
上面概述的簡單方案對于靜態(tài)顯示是足夠的,其中圖形圖像相對不經(jīng)常上傳到顯示器,也許使用閃爍來提供一些動畫效果。但是,通過充分利用更多用戶定義的字體,可以獲得高度的無偽影圖像處理。有 24 個用戶定義的字體位置可用,實際上只需要 4 個(不閃爍)或 8 個(帶閃爍)字體位置來存儲顯示的圖形圖像。額外的字體位置可用于預(yù)加載圖形框架。圖形框架是存儲在顯示驅(qū)動程序中以便顯示的完整顯示圖像。24 種用戶定義的字體允許顯示驅(qū)動程序存儲 3 個完整的圖形幀(其中一個正在顯示),并在像素級別上通過閃爍控制(表 4)或 6 個沒有閃爍控制的完整幀(表 3)。預(yù)加載是在需要顯示圖像數(shù)據(jù)之前將圖像數(shù)據(jù)發(fā)送到顯示驅(qū)動程序的藝術(shù)。
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | |
框架 1 字體位置 | RAM00 | RAM01 | RAM02 | RAM03 |
框架 2 字體位置 | RAM04 | RAM05 | RAM06 | RAM07 |
框架 3 字體位置 | RAM08 | RAM09 | RAM0A | RAM0B |
框架 4 字體位置 | RAM0C | RAM0D | RAM0E | RAM0F |
框架 5 字體位置 | RAM10 | RAM11 | RAM12 | RAM13 |
框架 6 字體位置 | RAM14 | RAM15 | RAM16 | RAM17 |
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | |||||
閃爍階段 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 | 小一 |
框架 1 字體位置 | RAM00 | RAM04 | RAM01 | RAM05 | RAM02 | RAM06 | RAM03 | RAM07 |
框架 2 字體位置 | RAM08 | RAM0C | RAM09 | RAM0D | RAM0A | RAM0E | RAM0B | RAM0F |
框架 3 字體位置 | RAM10 | RAM14 | RAM11 | RAM00 | RAM15 | RAM12 | RAM13 | RAM17 |
顯示動態(tài)圖像的挑戰(zhàn)是無縫地更改圖片,而不會對觀眾造成瞬態(tài)效果(偽影)。每次更改映像時必須發(fā)送給驅(qū)動程序的數(shù)據(jù)量越小,就越容易實現(xiàn)。在留言板上看到的一個常見偽影是滾動波紋,因為控制器無法足夠快地移動所有顯示數(shù)據(jù)。最小化數(shù)據(jù)流可最大程度地減少處理器負載,并且接口數(shù)據(jù)速率也可以較慢。
使用幀的優(yōu)點是,與更改顯示圖像本身相比,將顯示從一個預(yù)加載幀翻轉(zhuǎn)到另一個預(yù)加載幀需要向驅(qū)動程序發(fā)送更少的控制字。為了改變幀,MAX4或MAX6952的6953位寄存器用與新幀對應(yīng)的用戶定義字體值寫入。這涉及對MAX4或MAX6952的每個數(shù)字寄存器進行6953次寫入(每個數(shù)字寄存器20次寫入)。直接改變顯示圖像需要對MAX5或MAX4進行6952次寫入(6953種用戶定義字體各寫入20次)。當然,幀數(shù)據(jù)仍然需要加載一些時間,因此仍然需要執(zhí)行這 4 次寫入 <> 種用戶定義的字體。執(zhí)行此操作的好時機是在上電初始化期間。
無縫更改圖像的推薦技術(shù)需要啟用閃爍,盡管圖像中不必有任何閃爍段。假設(shè)當前正在使用第 1 幀,因此顯示的圖像對數(shù)字 00 到數(shù)字 07 使用 RAM0 到 RAM3(表 4)。請注意,如果 RAM00 數(shù)據(jù) = RAM04 數(shù)據(jù)、RAM01 數(shù)據(jù) = RAM05 數(shù)據(jù)、RAM02 數(shù)據(jù) = RAM06 數(shù)據(jù)、RAM03 數(shù)據(jù) = RAM07 數(shù)據(jù),則圖像不會閃爍,因為閃爍平面 P1 和 P0 中的圖像相同。然后可以將另一個完整的圖像加載到第 2 幀中,即 RAM08 到 RAM0F。上傳可以像微處理器允許的那樣慢或盡可能快地執(zhí)行,因為圖像尚未顯示。將顯示器從第 1 幀無縫翻轉(zhuǎn)到第 2 幀的訣竅是在 P0 閃爍階段更改數(shù)字的 P1 數(shù)據(jù),然后在 P1 閃爍階段更改數(shù)字的 P0 數(shù)據(jù)。電流閃爍相位可以在Blink輸出引腳上監(jiān)控,也可以通過在配置寄存器中讀取P位的狀態(tài)來監(jiān)控。請注意,閃爍計時現(xiàn)在設(shè)置更改圖像的響應(yīng)時間,因為圖像更新已同步為閃爍。如果應(yīng)用程序?qū)⑹褂枚伍W爍,則權(quán)衡明顯較慢的段閃爍速度與在不同圖像之間切換時相當快的響應(yīng)時間的競爭要求。閃爍速度設(shè)置控制這兩個參數(shù)。
使用幀還可以使慢速動畫變得容易。MAX6952或MAX6953驅(qū)動器可存儲6幀動畫。同樣,該技術(shù)是在顯示P0相位時更改P1閃爍相位的數(shù)字數(shù)據(jù),并在顯示P1相位時更改P0閃爍相位的數(shù)字數(shù)據(jù)(表6)。片段閃爍不用于動畫,因此閃爍速度只是設(shè)置動畫速度或幀速率。這可以設(shè)置為每秒 4 幀 (OSC = 8MHz) 到每 2 秒一幀 (OSC = 1MHz)。
表 5 中的用戶操作可確保下一個閃爍階段顯示一個新幀,圍繞六個可用幀循環(huán)。因此,該序列控制一個 6 步動畫,該動畫無限期重復(fù)。如果需要,動畫可以單步執(zhí)行少于 6 幀;例如,驅(qū)動程序可以存儲兩個 3 步動畫。注意,連續(xù)幀的時間同步完全由MAX6952或MAX6953驅(qū)動器的閃爍時鐘設(shè)置。用戶的任務(wù)就是在每個閃爍階段向MAX4或MAX6952驅(qū)動器寫入6953字數(shù)字數(shù)據(jù),以控制動畫。表5中未顯示的是將所有動畫數(shù)據(jù)幀上傳到所有MAX6952或MAX6953驅(qū)動器的用戶定義字體中的一次性任務(wù)。
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | 閃爍階段 |
閃爍輸出引腳電平 (配置寄存器 P 位)( 在當前閃爍階段) |
當前閃爍階段的用戶 操作 |
|
初始化 | 將動畫數(shù)據(jù)寫入 RAM00 - RAM17 | ||||||
幀 1 | RAM00 | RAM01 | RAM02 | RAM03 | 小一 | 高 |
將0x04寫入地址0x40(數(shù)字 0 P1) 將0x05寫入地址0x41(數(shù)字 1 P1) 將0x06寫入地址0x42(數(shù)字 2 P1) 將0x07寫入地址0x43(數(shù)字 3 P1) |
幀 2 | RAM04 | RAM05 | RAM06 | RAM07 | 小一 | 低 |
將0x08寫入地址0x20(數(shù)字 0 P0) 將0x09寫入地址0x21(數(shù)字 1 P0) 將0x0A寫入地址0x22(數(shù)字 2 P0) 將0x0B寫入地址0x23(數(shù)字 3 P0) |
幀 3 | RAM08 | RAM09 | RAM0A | RAM0B | 小一 | 高 |
將0x0C寫入地址0x40(數(shù)字 0 P1) 將0x0D寫入地址0x41(數(shù)字 1 P1) 將0x0E寫入地址0x42(數(shù)字 2 P1) 將0x0F寫入地址0x43(數(shù)字 3 P1) |
幀 4 | RAM0C | RAM0D | RAM0E | RAM0F | 小一 | 低 |
將0x10寫入地址0x20(數(shù)字 0 P0) 將0x11寫入地址0x21(數(shù)字 1 P0) 將0x12寫入地址0x22(數(shù)字 2 P0) 將0x13寫入地址0x23(數(shù)字 3 P0) |
幀 5 | RAM10 | RAM11 | RAM12 | RAM13 | 小一 | 高 |
將0x14寫入地址0x40(數(shù)字 0 P1) 將0x15寫入地址0x41(數(shù)字 1 P1) 將0x16寫入地址0x42(數(shù)字 2 P1) 將0x17寫入地址0x43(數(shù)字 3 P1) |
幀 6 | RAM14 | RAM15 | RAM16 | RAM17 | 小一 | 低 |
將0x00寫入地址0x20(數(shù)字 0 P0) 將0x01寫入地址0x21(數(shù)字 1 P0) 將0x02寫入地址0x22(數(shù)字 2 P0) 將0x03寫入地址0x23(數(shù)字 3 P0) |
要運行不斷變化的動畫序列,系統(tǒng)處理器需要做更多的工作(表 6)。用戶在每一幀期間的操作現(xiàn)在包括更新MAX6952或MAX6953的字體RAM,因為幀數(shù)據(jù)是不斷變化的,不會像以前那樣永久(一次)存儲。但是,連續(xù)幀的時間同步仍由MAX6952或MAX6953驅(qū)動器的閃爍時鐘控制。同樣,處理器只需在每個眨眼階段的某個時間提供數(shù)據(jù)包。數(shù)據(jù)包像以前一樣包含 4 個字的數(shù)字數(shù)據(jù),外加 20 個字的字體數(shù)據(jù)。
當受接口速度限制時,圖形顯示器的尺寸限制值得探討(表 7)。下表顯示了串行接口以最大比特率連續(xù)運行時理論最大顯示大小,運行連續(xù)動畫序列。實際限制至少會比理論限制低一點(或者可能很多),這取決于處理器必須執(zhí)行的后臺處理,以及串行接口是硬件同步串行端口還是位撞擊 I/O。
數(shù)字 0 | 數(shù)字 1 | 數(shù)字 2 | 數(shù)字 3 | 閃爍階段 |
閃爍輸出引腳電平 (配置寄存器 P 位)( 在當前閃爍階段) |
當前閃爍階段的用戶 操作 |
|
初始化 | 將動畫數(shù)據(jù)寫入 RAM00 - RAM17 | ||||||
幀 1 | RAM00 | RAM01 | RAM02 | RAM03 | 小一 | 高 |
將0x04寫入地址0x40(數(shù)字 0 P1) 將0x05寫入地址0x41(數(shù)字 1 P1) 將0x06寫入地址0x42(數(shù)字 2 P1) 將0x07寫入地址0x43(數(shù)字 3 P1) 確保 RAM04-RAM07 已針對第 2 幀進行更新 如果處理器時間和幀數(shù)據(jù)可用,則可以更新 RAM08-RAM17 |
幀 2 | RAM04 | RAM05 | RAM06 | RAM07 | 小一 | 低 |
將0x08寫入地址0x20(數(shù)字 0 P0) 將0x09寫入地址0x21(數(shù)字 1 P0) 將0x0A寫入地址0x22(數(shù)字 2 P0) 將0x0B寫入地址0x23(數(shù)字 3 P0) 確保 RAM08-RAM0B 已針對第 3 幀進行更新 如果處理器時間和幀數(shù)據(jù)可用,則可以更新 RAM0C-RAM17、RAM00-RAM03 |
幀 3 | RAM08 | RAM09 | RAM0A | RAM0B | 小一 | 高 |
將0x0C寫入地址0x40(數(shù)字 0 P1) 將0x0D寫入地址0x41(數(shù)字 1 P1) 將0x0E寫入地址0x42(數(shù)字 2 P1) 將0x0F寫入地址0x43(數(shù)字 3 P1) 確保 RAM0C-RAM0F 已針對第 4 幀進行更新 可以更新 RAM10-RAM17、RAM00-RAM07如果處理器時間和幀數(shù)據(jù)可用 |
幀 4 | RAM0C | RAM0D | RAM0E | RAM0F | 小一 | 低 |
寫入0x10以地址0x20(數(shù)字 0 P0) 將0x11寫入地址0x21(數(shù)字 1 P0) 將0x12寫入地址0x22(數(shù)字 2 P0) 將0x13寫入地址0x23(數(shù)字 3 P0) 確保 RAM10-RAM13 已針對第 5 幀進行更新 可以更新 RAM14-RAM17,RAM00-RAM0Bif 處理器時間和幀數(shù)據(jù)可用 |
幀 5 | RAM10 | RAM11 | RAM12 | RAM13 | 小一 | 高 |
寫入0x14以地址0x40(數(shù)字 0 P1) 將0x15寫入地址0x41(數(shù)字 1 P1) 將0x16寫入地址0x42(數(shù)字 2 P1) 將0x17寫入地址0x43(數(shù)字 3 P1) 確保 RAM14-RAM17 已針對第 6 幀進行更新 如果處理器時間和幀數(shù)據(jù)可用,則可以更新 RAM00-RAM0F |
幀 6 | RAM14 | RAM15 | RAM16 | RAM17 | 小一 | 低 |
寫入0x00以地址0x20(數(shù)字 0 P0) 將0x01寫入地址0x21(數(shù)字 1 P0) 將0x02寫入地址0x22(數(shù)字 2 P0) 將0x03寫入地址0x23(數(shù)字 3 P0) 確保 RAM00-RAM03 已針對第 1 幀進行更新 如果處理器時間和幀數(shù)據(jù)可用,則可以更新 RAM04-RAM13 |
單色40x56像素子模塊 (16個MAX6952/3驅(qū)動器) |
雙色40x56像素子模塊 (32個MAX6952/3驅(qū)動器) |
|||
簡單動畫 每個驅(qū)動程序每幀 4 個單詞 |
完整動畫 每個驅(qū)動程序每幀 24 個單詞 |
簡單動畫 每個驅(qū)動程序每幀 4 個單詞 |
完整動畫 每個驅(qū)動程序每幀 24 個單詞 |
|
我2C 接口位/幀 | 18 × 4 × 16 = 1152 位 | 18 × 24 × 16 = 6912 位 | 18 × 4 × 32 = 1304 位 | 18 × 24 × 32 = 13824 位 |
SPI 接口位/幀 | 16 × 4 × 16 = 1024 位 | 16 × 24 × 16 = 6144 位 | 16 × 4 × 32 = 2048 位 | 16 × 24 × 32 = 12288 位 |
400k 位-1我2C 接口最大顯示尺寸 | 342 個子塊 | 57 個子塊 | 171 個子塊 | 28 個子塊 |
26M 位-1SPI 接口最大顯示尺寸 | 25200 個子塊 | 4200 個子塊 | 12600 個子塊 | 2100 個子塊 |
SPI接口可能是除最小顯示器尺寸之外的所有接口的首選接口。每個我2C MAX6953可設(shè)置為16 I之一2C 地址。這意味著每個包含16個MAX6953的單色子模塊必須獨立運行I2C總線以避免解決沖突。例如,具有 224 × 80 像素的中等大小圖形顯示器將使用 6 個單色子塊,需要 12 個處理器 I/O 線來處理 6 I2C 總線。如果SPI MAX2采用菊花鏈(級聯(lián)SPI接口),則同一面板可以由6952條處理器I/O線驅(qū)動。
使用MAX6952時,具有完整動畫的雙色面板的限值顯示尺寸為2100個子塊。一個實際的設(shè)計示例可能有一個處理器,它可以將其四分之一的時間用于接口,以 10 Mb 的速度運行。-1(通過 RS-485 鏈路)。因此,此應(yīng)用程序的顯示大小限制降至 (2100 × 10/26 × 1/4) = 200 個子塊。因此,可以驅(qū)動的最大雙色面板是 10 個子塊乘以 20 個子塊,可能排列為 1120 × 400 個雙色像素。可以驅(qū)動兩倍于此尺寸的單色面板。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19805瀏覽量
233547 -
led
+關(guān)注
關(guān)注
242文章
23703瀏覽量
670932 -
led驅(qū)動器
+關(guān)注
關(guān)注
12文章
1172瀏覽量
73876
發(fā)布評論請先 登錄
MAX6953,pdf,datasheet,Matrix L
軟件控制的MAX6952和MAX6953LED驅(qū)動器的圖形應(yīng)

添加小組發(fā)光強度控制MAX6952和MAX6953 5x7矩

建設(shè)點陣圖形小組與MAX6952和MAX6953 5x7LE

MAX6953 Development board,MAX6

使用單片機實現(xiàn)兼容I2C接口的MAX6953驅(qū)動4片5乘7點陣顯示器的C語言
為MAX6952和MAX6953 5x7矩陣LED驅(qū)動器增加面板LED強度控制

MAX6952EVKIT 評估板 - LED 驅(qū)動器

MAX6952EAX+ PMIC - 顯示驅(qū)動器

MAX6953EPL+ PMIC - 顯示驅(qū)動器

MAX6953EAX+ PMIC - 顯示驅(qū)動器

MAX6952EPL+ PMIC - 顯示驅(qū)動器

MAX6953EAX+T PMIC - 顯示驅(qū)動器

使用MAX6952和MAX6953 5x7 LED驅(qū)動器構(gòu)建點陣圖形面板

從PC上試驗MAX6952和MAX6953 SPI和I2C LED顯示驅(qū)動器

評論