找回密码
 立即注册
查看: 699|回复: 2

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2024-3-3 11:49:21 | 显示全部楼层 |阅读模式
最近在研究SPI接口的摄像头数据传输,目前已经完成摄像头SCCB接口的配置和通讯。摄像头已经配置好仅输出亮度数据,LSB方式
现在有个问题,是摄像头作为SPI主机,STC单片机作为从机。数据帧头是 ff 40 80 00 固定,后面就是连续的128个数据。

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


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

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


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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2024-3-3 16:44:22 | 显示全部楼层
截图202403031639098071.jpg

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

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

点评

现在已经解决了SPI超时寄存器的设置问题: 需要注意现有超时中断产生条件有2个: 1. 收满一个字节(8位数据) 2. 超时时间内没有收到新的数据 这两个条件需要同时满足,我这个超时不生效的问题就是启动前有杂乱脉冲导  详情 回复 发表于 2024-3-5 10:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 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)

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:56 , Processed in 0.221719 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表