王昱顺 发表于 2024-3-3 11:49:21

请教大家 SPI如何进行数据帧头同步?| 已解决

最近在研究SPI接口的摄像头数据传输,目前已经完成摄像头SCCB接口的配置和通讯。摄像头已经配置好仅输出亮度数据,LSB方式
现在有个问题,是摄像头作为SPI主机,STC单片机作为从机。数据帧头是 ff 40 80 00 固定,后面就是连续的128个数据。

摄像头端也没有片选CS端,这时应该如何通过帧头进行SPI数据第一位的对齐?


目前读到的总是会随机偏差1~2位,没法做到很准确的对齐


比如上面这个数据,是启动了SPI_DMA后获取到的,这个是需要向右整体移动一位(低位在前),数据就正确了。


请教一下大家有什么好方法嘛?

王昱顺 发表于 2024-3-3 16:44:22



新的进展,通过设置摄像头的门控位,完成了SCLK在不发数据是的门控状态。
目前已经可以从示波器端读到正确的协议和数据。


但是现在有一个新的问题了,因为SPI数据是多种长度的,没法使用固定长度全部接收下来。
所以使用了SPI超时功能进行判断,但是现在超时功能似乎有些小问题,进不去超时中断。

王昱顺 发表于 2024-3-5 10:47:30

王昱顺 发表于 2024-3-3 16:44
新的进展,通过设置摄像头的门控位,完成了SCLK在不发数据是的门控状态。
目前已经可以从示波器端读到正 ...
现在已经解决了SPI超时寄存器的设置问题:
需要注意现有超时中断产生条件有2个:
1. 收满一个字节(8位数据)
2. 超时时间内没有收到新的数据
这两个条件需要同时满足,
我这个超时不生效的问题就是启动前有杂乱脉冲导致的数据错位。
所以没有满足8位数据收满条件
具体详见这个帖子
STC32F技术手册笔误 20240202版本|有关超时寄存器 - 问题反馈:ISP软件/头文件/单片机数据手册规格书等 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

页: [1]
查看完整版本: 请教大家 SPI如何进行数据帧头同步?| 已解决