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

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

[复制链接]
  • TA的每日心情
    开心
    昨天 19:05
  • 签到天数: 123 天

    [LV.7]常住居民III

    33

    主题

    397

    回帖

    2048

    积分

    荣誉版主

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

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


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

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


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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:05
  • 签到天数: 123 天

    [LV.7]常住居民III

    33

    主题

    397

    回帖

    2048

    积分

    荣誉版主

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

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

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

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:05
  • 签到天数: 123 天

    [LV.7]常住居民III

    33

    主题

    397

    回帖

    2048

    积分

    荣誉版主

    积分
    2048
     楼主| 发表于 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, 2024-5-20 08:55 , Processed in 0.064150 second(s), 44 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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