找回密码
 立即注册
查看: 121|回复: 23

【咨询】硬件SPI发送字节与字节之间间隙是多少?

[复制链接]
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 2024-4-20 15:49:08 | 显示全部楼层 |阅读模式
    最近在要使用一个类似WS2812通讯方式的数码管驱动芯片,最后选择了DMA+SPI模拟驱动芯片时序的方式与芯片通讯。目前通讯已经通了,芯片可以正常使用。

    但是有几个疑问,,对于STC的硬件SPI在发送数据的时候,字节与字节之间有一个间隙使用了DMA之后 处于纳秒级别。且相同配置下,大小固定。

    1. 这个间隙与什么有关?
    2. 一般是多少?
    3. 能否通过SPI的配置缩小,或者去掉(仅配置SPI的情况下)?





    看过论坛里几篇关于WS2812的帖子,,里面都说了在字节传送时存在一个间隙,,也给出了各种解决方案。我这里想知道这个间隙大概应该怎么计算。
    截图202404201548442429.jpg

    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9299

    回帖

    1万

    积分

    管理员

    积分
    14049
    发表于 2024-4-20 19:49:02 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
     楼主| 发表于 2024-4-20 20:58:33 | 显示全部楼层
    神农鼎 发表于 2024-4-20 19:49
    先研究下这个贴,如没讲清楚,跟贴跟梁工讨论

    帖子看过了,,功能都已经实现了,,现在在想了解一些机制性的东西,
    我去问问把,,
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6611

    积分

    超级版主

    积分
    6611
    发表于 2024-4-20 23:50:18 | 显示全部楼层
    WS2812对这个间隙要求不严格,我也没定性测试,后续我会测试一下。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
     楼主| 发表于 2024-4-21 15:38:21 | 显示全部楼层
    梁工 发表于 2024-4-20 23:50
    WS2812对这个间隙要求不严格,我也没定性测试,后续我会测试一下。

    不是不是 您理解错了 ,,我不是在问WS2812的事情,,我问的是关于单片机SPI的间隙.

    我觉得这个东西不应该你们芯片厂家在设计芯片的时候,就应该确定的么,或者说官方应该是要知道这部分参数的啊.
    实际的测试参数我都已经测试完了,,就是没有找到对应的文献来验证我的测试,,

    点评

    我没有理解错,我是说,由于WS2812对于间隔时间没有严格要求,小于RES时间50us都可以,所以没有严格测试DMA发送时字节键间隔,通常都是几十ns级别。 DMA SPI发送间隔是由硬件处理的,不可设置。当SPI发送完成,则下  详情 回复 发表于 2024-4-21 16:40
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6611

    积分

    超级版主

    积分
    6611
    发表于 2024-4-21 16:40:14 | 显示全部楼层
    本帖最后由 梁工 于 2024-4-21 16:41 编辑
    _奶咖君_ 发表于 2024-4-21 15:38
    不是不是 您理解错了 ,,我不是在问WS2812的事情,,我问的是关于单片机SPI的间隙.

    我觉得这个东西不应该你 ...

    我没有理解错,我是说,由于WS2812对于间隔时间没有严格要求,小于RES时间50us都可以,所以没有严格测试DMA发送时字节键间隔,通常都是几十ns级别。
    DMA SPI发送间隔是由硬件处理的,不可设置。当SPI发送完成,则下一个时钟就会启动下一个字节传送。但由于内部需要时钟同步,所以有一个或几个时钟的间隔是正常的,但我并未严格测试这个间隔时间,因为对于我的所有应用,都不会造成干扰,并且间隔时间也不可设置。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 142 天

    [LV.7]常住居民III

    10

    主题

    274

    回帖

    956

    积分

    高级会员

    积分
    956
    发表于 2024-4-21 19:03:47 | 显示全部楼层
    你调整一下 SPI的频率看下?

    点评

    这些都已经测试过了,,现在想要一个官方的数据来证明我的结论。。  发表于 2024-4-22 08:57
    自信就会温和,温和就会坚定!
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    329

    回帖

    872

    积分

    荣誉版主

    积分
    872
    发表于 2024-4-21 20:10:56 | 显示全部楼层
    关于STC的SPI以前测试过。普通模式发送一字节,到下一个字节需要等待很长时间。

    SPI DMA模式开启FIFOCLK间隔时间更短,最短1.5T ,就是1.5个SPI时钟节拍
    1. void DMA_Config(void)
    2. {
    3.         DMA_SPI_STA = 0x00;
    4.         DMA_SPI_CFG = 0xE0;                //bit7 1:Enable Interrupt
    5.         DMA_SPI_AMT = 0xff;                //设置传输总字节数:n+1
    6.         DMA_SPI_TXAH = (u8)((u16)&DmaTxBuffer >> 8);        //SPI发送数据存储地址
    7.         DMA_SPI_TXAL = (u8)((u16)&DmaTxBuffer);
    8.         DMA_SPI_RXAH = (u8)((u16)&DmaRxBuffer >> 8);        //SPI接收数据存储地址
    9.         DMA_SPI_RXAL = (u8)((u16)&DmaRxBuffer);
    10.         DMA_SPI_CFG2 = 0x01;        //01:P2.2
    11.         DMA_SPI_CR = 0x80;                //bit7 1:使能 SPI_DMA, bit6 1:开始 SPI_DMA 主机模式, bit0 1:清除 SPI_DMA FIFO
    12.    
    13.     HSSPI_CFG = 0x00;  //高速模式时SS 控制信号的HOLD 和SETUP 时间设置0,CLK最小间隔1.5T
    14.     HSSPI_CFG2 = 0x00; //高速模式时SS 控制信号的DEACTIVE 时间设置0,CLK最小间隔1.5T
    15.     HSSPI_CFG2 |= 1<<5;         //使能SPI高速模式
    16. }
    复制代码


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 02:02
  • 签到天数: 68 天

    [LV.6]常住居民II

    4

    主题

    414

    回帖

    1122

    积分

    金牌会员

    积分
    1122
    发表于 2024-4-22 07:35:39 | 显示全部楼层
    字节之间的间隔一般都不影响使用吧
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
     楼主| 发表于 2024-4-22 08:42:37 | 显示全部楼层
    小飞侠 发表于 2024-4-22 07:35
    字节之间的间隔一般都不影响使用吧

    是的  一般来说不影响,

    但是毕竟是有关时序的东西,了解清楚比一直糊里糊涂的用要好。
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-3 13:39 , Processed in 0.111777 second(s), 72 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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