ARM與射頻芯片TRF796x的SPI通信研究
②寫地址,從圖1和圖3的時序可以看出,要讀TRF796x的寄存器值,必須包含一個寫地址周期和一個讀數(shù)據(jù)周期。在寫TRF796x的地址之前,必須先設(shè)置SPCON0的CPOL和CPHA都為O,這樣通信雙方的時序才能保持一致,而且要將地址字節(jié)的最高3位設(shè)為010,然后將地址字節(jié)寫入發(fā)送移位寄存器SPTDAT0中,一旦地址字節(jié)發(fā)送完,TRF796x就會把相應(yīng)地址的內(nèi)容送到MISO腳上。
③讀數(shù)據(jù),在地址字節(jié)寫入后,讀數(shù)據(jù)之前,必須轉(zhuǎn)換SCK的時鐘極性,從圖1可以看出,需要設(shè)置CPOL為0,CPHA為1,這樣就滿足了TRF796x的讀時序要求。寫數(shù)據(jù)0x00或0xFF到SPTDAT0中,接著就可以從SPRDAT0中讀取數(shù)據(jù)。
非連續(xù)讀操作的實現(xiàn)代碼如下:
為了驗證上述的程序,在按照圖4連接電路后,可以選擇讀取TRF7960的09h、0Ah、0Bh寄存器單元的內(nèi)容,這3個寄存器在系統(tǒng)上電時,分別默認(rèn)內(nèi)容為0x11、0x40、0x87。定義一個數(shù)組 Operation[O]=0x09;Operation[1]=0x0A;Operation[2]=0x0B;調(diào)用函數(shù) SingleRead(Operation,3);即可得到3個寄存器的內(nèi)容并存放在Operation數(shù)組中。在RFID門禁系統(tǒng)的開發(fā)中,就是采用了這種SPI通信方式實現(xiàn)了ARM對RFID閱讀器芯片的訪問控制。
結(jié)語
本文通過介紹ARM芯片與TRF796x之間的硬件SPI通信方式,說明了在進(jìn)行SPI器件之間通信時應(yīng)該注意的問題,強(qiáng)調(diào)工作時序在通信時的重要性,最后給出的程序在RFID門禁系統(tǒng)中得到了運(yùn)用。論文研究對ARM與其他SPI器件之間的通信有一定的參考意義,只要根據(jù)SPI器件的工作時序進(jìn)行稍加修改就能融會貫通。
本文引用地址:http://www.ex-cimer.com/article/151079.htm
評論