Labview實驗:SPI的讀寫(Flash)
SPI 是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。
SPI,是一種高速的,全雙工,同步的通信總線,並且在芯片的管腳上只佔用四根線,節約了芯片的管腳,同時為PCB的佈局上節省空間,提供方便,主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。
一,SPI部分內容介紹
1,SPI內部示意圖
MISO 主設備數據輸入,從設備數據輸出;
MOSI 主設備數據輸出,從設備數據輸入;
SCLK時鐘信號,由主設備產生;
CS從設備片選信號,由主設備控制。
2,SPI工作原理
(1)主機和從機都有一個串行移位寄存器,主機通過向它的SPI串行寄存器寫入一個字節來發起一次傳輸。
(2)串行移位寄存器通過MOSI信號線將字節傳送給從機,從機也將自己的串行移位寄存器中的內容通過MISO信號線返回給主機。這樣,兩個移位寄存器中的內容就被交換。
(3)外設的寫操作和讀操作是同步完成的。如果只進行寫操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個字節,就必須發送一個空字節來引發從機的傳輸。
二,程序編寫實驗
與IIC的讀寫程序相類似。
用開關KEY_UP的按下與鬆開來切換不同的字符串分別寫入Flash,再通過LCD顯示出來。
實驗預期效果:程序啟動運行後,LCD顯示出一組字符串,代表從Flash中讀取出來的數據;當按下KEY_UP,LCD顯示出另一組字符串,代表Flash又重寫入另一組數據;KEY_UP再鬆開,LCD顯示出原先的字符串。
程序編寫,只需要一個主VI。
(一)程序步驟:
1,LCD初始化
2,SPI2初始化
3,Flash ID讀取
4,Flash字節數組寫入
5,Flash字節數組讀取
6,LCD清除背景
7,LCD字符串顯示
程序編寫:
1,LCD初始化
2,SPI2初始化
硬件SPI W25Q64連接圖:
3,Flash ID讀取
4,Flash字節數組寫入
KEY_UP按下或鬆開,分別給Flash寫入不同的字符串:字符串轉換成字節數組再寫入。
5,Flash字節數組讀取
字節數組轉換成字符串,將送至LCD顯示。
6,LCD清除背景
7,LCD字符串顯示
完整的程序
三,編譯,下載到開發板,程序運行後,進行KEY_UP按鍵操作,效果如預期。