两个问题,关于SPI超时寄存器和SPI使能
STC32F12K54想要读取一个频率在26Mhz的SPI信号,目前的问题是读出来总是有一位的偏移,并且超时中断的时间设置似乎不是很符合预期这个数据并不是一直在发送的,大约间隔20ms发送300个左右的数据。
现在想问两个问题
1.打开HPLL后,SPI的时钟给到了260Mhz,此时超时中断如果使用不精确的1us计时,为啥设置成0xffff了都没有生效。此时IAP_TPS=52;
2.之前有提到过SPI的8个数据位之间是不进行超时判定的。如果错位了,可否通过
SPCTL &= ~0x40;
SPCTL |= 0x40;//开关SPI状态
来重新对齐时序?
本帖最后由 王昱顺 于 2024-3-8 12:02 编辑
国学芯用 发表于 2024-3-8 10:01
请问spi从机的时钟频率影响什么?
可以接受到的最高spi时钟嘛?
使用示波器查看spi信号是正常的,但是接受时会偏移一位。如果降低另一边的spi频率。则接受可以正常实现且无偏移
目前的想法是通过在clk空闲时打开spi-dma并且等待信号来临,接受到第一位spi数据后打开超时功能。等待超时中断后关断spi-dma并且读取数据
SPI从机的时钟 需要是 主SPI 时钟的2倍以上,最好是4倍以上 神农鼎 发表于 2024-3-8 11:40
SPI从机的时钟 需要是 主SPI 时钟的2倍以上,最好是4倍以上
已经使用了HPLL将SPI时钟拉到了260Mhz,分辨信号应该是够用的。 从SPI输出的速度受 I/O 的输出速度的限制 所以这个问题还有后续么{:4_267:} _奶咖君_ 发表于 2024-8-7 13:33
所以这个问题还有后续么
使用CS信号可以解决,但是不使用CS信号的情况下,纯粹通过超时中断来对齐似乎并不能行。或者说,我暂时还没有找到方法 王昱顺 发表于 2024-8-7 13:51
使用CS信号可以解决,但是不使用CS信号的情况下,纯粹通过超时中断来对齐似乎并不能行。或者说,我暂时还 ...
好的感谢跟进
页:
[1]