NXP linux SPI多字节时钟连续没有间隔问题

NXP linux SPI多字节时钟连续没有间隔问题

项目场景:

硬件平台:NXP Cortex-A9 双核
linux内核版本:4.19.35


问题描述:

使用SPI通讯时,当传输数据小于32字节时发现SPI时序单个字节与单个字节之间时钟是连在一起的,没有间隔。大于32字节时,时序是分开的,由于SPI另一端接的是单片机,速度慢,需要把时序分开。

问题时序
NXP linux SPI多字节时钟连续没有间隔问题_第1张图片
正常时序
NXP linux SPI多字节时钟连续没有间隔问题_第2张图片

原因分析:

查看NXP SPI底层驱动发现当传输字节小于32字节时,系统会使用IO方式传输,反之这会使用DMA传输。

解决方案:

根据原因修改驱动的判断条件,由于我们不想使用IO方式,并且传输数据都会大于10个字节,所以我这里把判断条件改到了10。

需要修改的文件为:drivers/spi/spi-imx.c

需要修改的部分截图:
NXP linux SPI多字节时钟连续没有间隔问题_第3张图片

你可能感兴趣的:(问题相关)