您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>發(fā)光二極管>

SPI 運(yùn)用的實(shí)現(xiàn)過程 - LED大屏幕輸出電路的優(yōu)化設(shè)計(jì)

2012年04月11日 15:23 《液晶與顯示》 作者:王飛,靳桅,鄔芝權(quán) 用戶評(píng)論(0
3 SPI 運(yùn)用的實(shí)現(xiàn)過程

  從上文可以得到這樣的啟示:在LED控制電路的設(shè)計(jì)中,可借助于SPI 模式讀取數(shù)據(jù),即增加一塊SPI 模式的FLASH 存儲(chǔ)器,一方面可以保存重要文檔,另一方面可以利用SPSCK 產(chǎn)生的信號(hào),通過計(jì)數(shù)器電路實(shí)現(xiàn)對(duì)存儲(chǔ)器高速讀數(shù)據(jù),并且復(fù)用此信號(hào)產(chǎn)生屏幕顯示的控制信號(hào)。在給定了輸出數(shù)據(jù)的首地址并啟動(dòng)SPI 后,此方式使數(shù)據(jù)的讀出到屏幕顯示這一過程自動(dòng)進(jìn)行,同一信號(hào)源的全硬件方式大大減少了以往分別產(chǎn)生各控制信號(hào)方式時(shí)的銜接延時(shí)。圖3 為SPI 在LED大屏幕控制電路中的運(yùn)用示例。

  

圖3  SPI 模式下的L ED 大屏幕控制電路圖

?

  圖3  SPI 模式下的L ED 大屏幕控制電路圖

  級(jí)聯(lián)計(jì)數(shù)器的個(gè)數(shù)根據(jù)RAM 的容量大小,即地址線的數(shù)目來確定。微處理器通過驅(qū)動(dòng)器連接SPI 串行存儲(chǔ)器, 驅(qū)動(dòng)器可以選擇7407 或7417 的型號(hào)。RM_MODE 用來區(qū)別不同的讀寫操作方式。當(dāng)RM_MODE = 1 時(shí),是普通讀寫外部存儲(chǔ)器的方式,當(dāng)RM_MODE = 0 時(shí),就可以讓主機(jī)作為主器件,串行FLASH 存儲(chǔ)器作為從器件,兩者以SPI 方式進(jìn)行通信,利用此時(shí)產(chǎn)生的SPSCK信號(hào)對(duì)存儲(chǔ)器進(jìn)行高速讀數(shù)據(jù)操作。同時(shí)SPSCK信號(hào)經(jīng)過變換與延時(shí)處理,可以供給LED做SCK 移位信號(hào)用。在計(jì)數(shù)脈沖的輸入端,可以使用跳線做加、減方式的選擇處理。當(dāng)脈沖接于計(jì)數(shù)器UP 端時(shí), 為加計(jì)數(shù)方式, 接于DOWN 時(shí),為減計(jì)數(shù)方式。圖3 也可擴(kuò)展并接多組計(jì)數(shù)器,多組RAM.

  減計(jì)數(shù)器方式的運(yùn)用大大增強(qiáng)了數(shù)據(jù)輸出的靈活性。在LED大屏幕顯示中,加、減計(jì)數(shù)器配合使用,可以使相同一塊控制卡輸出數(shù)據(jù)的顯示長度提高一倍。當(dāng)使用減計(jì)數(shù)器方式時(shí),為了與使用加方式時(shí)LED大屏幕上顯示的圖文一致,必須對(duì)與減計(jì)數(shù)器連接的RAM 的數(shù)據(jù)進(jìn)行上、下半屏交換處理,并且在輸出時(shí)要在程序中改變數(shù)據(jù)的起始點(diǎn),給出的行控制信號(hào)(RCK) 也應(yīng)做倒序處理(見圖4)。

  

圖4  加、減法模式下的數(shù)據(jù)組織與顯示

?

  圖4  加、減法模式下的數(shù)據(jù)組織與顯示

  4 本方式使用時(shí)的注意事項(xiàng)

  本方式使用時(shí)要注意計(jì)數(shù)器及RAM 芯片的讀寫速度必須與SPSCK 相匹配。SPI 方式的速率比較高,電路各器件讀取速度越高,數(shù)據(jù)出錯(cuò)的幾率就會(huì)越小。

  此外還有其他一些原因也會(huì)引起讀數(shù)據(jù)時(shí)的錯(cuò)誤。如軟件編寫不當(dāng)導(dǎo)致數(shù)據(jù)地址超出RAM空間,電路設(shè)計(jì)未重視計(jì)數(shù)器高速工作時(shí)發(fā)熱對(duì)周邊器件與布線帶來的影響等。

  使用SPSCK 信號(hào)讀取外部儲(chǔ)存器時(shí),同樣會(huì)產(chǎn)生SPI 主、從模式下的溢出錯(cuò)誤,即連續(xù)傳輸多個(gè)數(shù)據(jù)時(shí), 后一個(gè)數(shù)據(jù)覆蓋了前一個(gè)數(shù)據(jù)而產(chǎn)生的錯(cuò)誤。這種錯(cuò)誤產(chǎn)生的原因是從器件的傳輸標(biāo)志SPIF從相對(duì)于主器件的傳輸標(biāo)志SPIF主有一定的滯后,在主器件連續(xù)發(fā)送數(shù)據(jù)時(shí),會(huì)導(dǎo)致從器件的傳輸標(biāo)志和主器件下一個(gè)數(shù)據(jù)的傳輸標(biāo)志相重疊,而利用SPSCK 觸發(fā)計(jì)數(shù)器使地址遞加讀取數(shù)據(jù),第一個(gè)收到的數(shù)據(jù)也會(huì)被覆蓋。

  這種傳輸錯(cuò)誤可以用軟、硬件的方法進(jìn)行改進(jìn)。在本文的設(shè)計(jì)中,后期在軟件編寫上采用了如下解決方法:先啟動(dòng)SPI 模式,再進(jìn)入計(jì)數(shù)器讀并行RAM ,浪費(fèi)一個(gè)時(shí)序?;蚴窃赗AM 中存入數(shù)據(jù)時(shí),全部存到它后一位的地址單元上,再用SPI 方式產(chǎn)生的脈沖去讀RAM ,就可得到正確的數(shù)據(jù)。

  理論上本文方式可使顯示數(shù)據(jù)的輸出速度高至fOSC的1/ 4 ,但實(shí)際運(yùn)用時(shí)卻受到了RAM、鎖存器等輸出電路器件的參數(shù)限制。SPSCK 的速率設(shè)定要根據(jù)所選擇RAM 的參數(shù)確定,即要滿足RAM 最小的地址有效時(shí)間與數(shù)據(jù)有效時(shí)間的要求。

  

圖5  主、從SPIF 時(shí)序下的數(shù)據(jù)溢出錯(cuò)誤

?

  圖5  主、從SPIF 時(shí)序下的數(shù)據(jù)溢出錯(cuò)誤

  5 結(jié) 語

  通過此方法對(duì)輸出電路進(jìn)行改造,可極大地使原有控制系統(tǒng)滿足數(shù)據(jù)高速輸出的要求。本文給出的例子雖是基于LED大屏幕應(yīng)用的,但在LCD 或是其他對(duì)數(shù)據(jù)有高速輸出要求的系統(tǒng)中,同樣具有借鑒運(yùn)用意義。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:diyfans )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?