在i.MX8QXP 平台上有支援SPI(Serial Peripheral Interface)的傳輸介面供客戶使用,在此將教導大家如何在i.MX8QXP的平台上啟用SPI的功能,並進行確認。
i.MX8QXP上 SPI 的介面有兩種,一種(Octal SPI)是用來串接到SPI FLASH。另一種是與其他周邊元件溝通(LPSPI)
1. For Flash: (只用來接 SPI Flash—Quad SPI Flash or Octal SPI Flash)
2. 其他周邊元件溝通的SPI : LPSPI (共有4組 LPSI0~3)
以下將以LPSPI0當作範例,啟用LPSSPI0的功能:
i.MX8QXP上 SPI 的介面有兩種,一種(Octal SPI)是用來串接到SPI FLASH。另一種是與其他周邊元件溝通(LPSPI)
1. For Flash: (只用來接 SPI Flash—Quad SPI Flash or Octal SPI Flash)
2. 其他周邊元件溝通的SPI : LPSPI (共有4組 LPSI0~3)
以下將以LPSPI0當作範例,啟用LPSSPI0的功能:
在linux的程式碼中,我們將針對兩個source code做修改:"lpspi-debug-dma" 與 "lpspi-debug-pio"
1. 在"lpspi-debug-dma" 中,需先將LPSPI0的相關管腳定義正確為LPSPI而非GPIO
接著啟用LPSPI的功能,設定其 chip select與 output clock
2. 在"lpspi-debug-pio" 中,將關閉DMA的功能
如此一來,就可以來驗證LPSPI0的功能是否成功。
在還沒有外接SPI裝置之前,我們可以直接將LPSPI0的MOSI接到MISO,來驗證MISO收到的訊息是否與MOSI的訊號一致。
由上圖可以得知,接收的訊息與輸出的訊息一致,表示LPSPI的功能啟用正常。另外可以量訊號(LPSPI0_SCK 與LPSPI_MOSI)作為驗證
以上,由LPSPI0的相關波形,確認LPSPI0已經被正確啟用。
同理,也可以用相同的方法啟用LPSPI1~LPSPI3。
評論