MIMXRT1060 FLEXIO SPI速率

电子说

1.3w人已加入

描述

    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 时钟频率,主机端实际接收数据一个字节总是被接收/存储两次。

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分