如题,我应该怎么配置在主机仅接收的模式时,采用FIFO完成多个字(16位)的接收,当FIFIO达到几乎满的时候产生中断。谢谢
Steven Liu1:
建议你按照AM335x的TRM手册的24.3.11 Programming Aid章节,就是对应的MCSPI中的这一节内容,来编写这个流程。
我爱下载:
回复 Steven Liu1:
就是说这个方式是可以实现的
我爱下载:
回复 我爱下载:
测试没有成功,是否可以提供初始化的代码给我参考一下,基于starterwire的,谢谢
Jian Zhou:
回复 我爱下载:
没有看到MCSPI里面有控制FIFO深度的寄存器啊,理论上应该是FIFO满了就报中断的。
我爱下载:
回复 Jian Zhou:
mcspi的fifo可以设置几乎满数量和几乎空数量。
Jian Zhou:
回复 我爱下载:
是不是MCSPI_XFERLEVEL这个寄存器,配置之后有效果么?
我爱下载:
回复 Jian Zhou:
实践证明,引脚上没有任何输出。
ch0conf=200107d4,ch0ctrl=1,ch0stat=0,irqen=4,irqsta=0,modctl=1,sysconf=15,syssta=1,syst=0,xfer=0
从寄存器中都回来的数据,请看看是否会有输出
Jian Zhou:
回复 我爱下载:
之前SPI正常工作的时候,这个寄存器是怎么配置的?
我爱下载:
回复 Jian Zhou:
spi可以通讯了,原因是必须在开始spi通讯前,调用函数McSPICSAssert(),否则spi不会输出任何东西,尽管你根本不使用spi的引荐cs,也必须调用。
另外,关于FIFO还是有些没有理解,我一次spi通讯要接受8个字(每个spi通讯是16位),我如果系统现在发送FIFO中填好8个字,然后等待这个中断MCSPI_INT_EOWKE,接收fifo中的8个字,是否可以
我爱下载:
回复 我爱下载:
这样做可以大大减少中断次数,不然必须8次中断