本應(yīng)用筆記討論了使用MAX6952和MAX6953 SPI和I2C 5×7矩陣LED顯示驅(qū)動(dòng)器構(gòu)建單色和雙色圖形留言板的軟件設(shè)計(jì)技術(shù)。
本應(yīng)用筆記是討論MAX6952和MAX6953 LED驅(qū)動(dòng)器應(yīng)用中的軟件和處理器接口問題的兩篇應(yīng)用筆記之一,用于構(gòu)建用于留言板和動(dòng)畫圖形顯示的點(diǎn)數(shù)海LED矩陣圖形面板。本說明介紹了面板設(shè)計(jì)的軟件方面。
MAX6952和MAX6953為4位陰極排5×7矩陣LED顯示驅(qū)動(dòng)器,通過高速SPI控制?(MAX6952)或I2C (MAX6953) 串行接口。這些驅(qū)動(dòng)程序主要用于字符顯示應(yīng)用,其中單個(gè) 5×7 矩陣數(shù)字在物理上間隔開以形成一個(gè)或多個(gè)字符行(圖 1)。

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

圖形應(yīng)用中MAX6952和MAX6953 LED驅(qū)動(dòng)器的軟件控制
評(píng)論