FlexIO 支持 1/2/4/8/16/32位并行傳輸,參考寄存器 SHIFTCFT[PWIDTH]進行設置。
FLEXIO1 和 FLEXIO2/3 參數不是完全相同,FLEXIO1有16個引腳,而 FLEXIO2/3 有 32個引腳。在i.MX RT1060用戶手冊中,DMA MUX映射沒有FLEXIO3,只有FLEXIO1和FLEXIO2。DMA外設無法訪問FlexIO3模塊,因此,如果需要DMA功能,只能使用FlexIO1和FlexIO2。
為此 SDK提供了 Flexio和 Flexio3的例程。
如果沒有可用的 Flexio實現SPI,可以使用硬件的 LPSPI接口,支持dma,可以降低CPU運行的負荷。LPSPI的時鐘 Fsck速率只有 15Mhz。
FlexIO 不能在同一周期內移動和存儲。例如當嘗試使用 FlexIO實現SPI從設備時,將發現它無法在同一周期內移動和存儲。時鐘的下降沿不用于鎖存最后的數據位。一種解決方法是使用其他定時器計數數字位并產生禁用信號。然而,它有兩個限制:1)需要知道傳輸速率,并設置此定時器具有相同的波特率。2) 它需要傳輸是異步的,沒有任何時鐘拉伸;否則,將導致失敗。因此,從器件接收不是同步的。
使用示波器測量SPI信號,MISO 接收和MOSI 發送數據,但在DMA緩沖區中,數據向右移動了1位。FLEXIO接口模擬具有DMA的SPI通信,將CPHA配置為1,在第二邊緣采樣(在下降邊緣鎖定)。FLEXIO源時鐘CLK選擇120MHz,FLEXIO_SPI CLK設置為20MHz,數據在下降沿采樣。
masterconfig->enablemaster =true;
masterConfig->enableIndoze =false;
masterConfig->enableIndebug =true;
masterConfig->baudRate_Bps =20000000U;
masterConfig->phase =kFLEXIO_SPI_ClockPhaseSecondEdge;
masterConfig->dataMode =kFLEXIO_SPI_8BITMode;
備注:如設置大于20Mhz 時鐘頻率,主機端實際接收數據一個字節總是被接收/存儲兩次。
審核編輯:湯梓紅
-
示波器
+關注
關注
113文章
6553瀏覽量
188248 -
寄存器
+關注
關注
31文章
5421瀏覽量
123400 -
SPI
+關注
關注
17文章
1784瀏覽量
94789 -
定時器
+關注
關注
23文章
3288瀏覽量
117255 -
SDK
+關注
關注
3文章
1066瀏覽量
47717
原文標題:MIMXRT1060 FLEXIO SPI 速率
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
在imx93中,如何在flexio引腳中模擬spi功能?
BLHost從NOR執行應用程序無法正常啟動的原因?
使用FLEXIO_SPI時如何以多字節為單位切換CS?
為什么無法在MIMXRT1060-EVK套件上使用板載調試器?
調試評估板MIMXRT1060 evkmimxrt1060_tensorflow_lite_label_image項目的問題如何解決?
MIMXRT1060-EVK板 +MCUXpresso IDE如何恢復RT板?
i.MX RT1060的flexIO是否支持QSPI從仿真?
MIMXRT1064-EVK使用MBDToolbox構建音頻示例時出錯怎么解決?
求分享一下FlexIO時序圖嗎?
MIMXRT1060-EVKB USB dev_composite_cdc_msc_disk_freertos示例,為什么這取決于物理sd卡?
MIMXRT并口連接外圍器件的兩種方式
MIMXRT1060 FLEXIO UART波特率
MIMXRT1060 EVK JTAG接口修改方法

評論