找回密码
 立即注册
查看: 588|回复: 5

STC8H1K08做SPI从机的数据发送问题

[复制链接]

该用户从未签到

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 2023-2-18 10:42:56 | 显示全部楼层 |阅读模式
现有单主多从的架构,spi主机是imx6ull的硬件spi,从机是stc8h1k08.stc的数据手册有这样一段描述
从机模式的注意事项:
当 CPHA= 0 时, SSIG 必须为 0(即不能忽略 SS 脚)。在每次串行字节开始还发送前 SS 脚必须拉
低, 并且在串行字节发送完后须重新设置为高电平。 SS 管脚为低电平时不能对 SPDAT 寄存器执行写操
作, 否则将导致一个写冲突错误。 CPHA=0 且 SSIG=1 时的操作未定义。
当 CPHA= 1 时, SSIG 可以置 1(即可以忽略脚)。如果 SSIG= 0, SS 脚可在连续传输之间保持低
有效(即一直固定为低电平)。这种方式适用于固定单主单从的系统。

那么在我的这种使用场景,多个stc8作为从机,imx6ull作为主机,stc8收到数据后,还需要在从机模式下返回数据,应该怎么配置stc8的寄存器
回复 送花

使用道具 举报

  • TA的每日心情
    开心
    2024-1-4 08:56
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    16

    主题

    711

    回帖

    2518

    积分

    超级版主

    积分
    2518
    发表于 2023-2-18 21:23:36 | 显示全部楼层
    SPCTL寄存器中
    • SSIG:为必须设置为0,即主机选通本从机的SS才进行数据回应
    • SPEN:必须设置为1
    • DORD:需要根据SPI主机的数据协议,如果是MSB,DORD就设置为0,否则就设置为1
    • MSTR:位必须设置为0,表示是从机
    • CPOL和CPHA:也需要根据主机的SPI模式的电平来进行设置
    • SPR:从机忽略此位,可设置为0

    该用户从未签到

    1

    主题

    1

    回帖

    11

    积分

    新手上路

    积分
    11
     楼主| 发表于 2023-2-20 14:58:12 | 显示全部楼层
    zhp 发表于 2023-2-18 21:23
    SPCTL寄存器中
  • SSIG:为必须设置为0,即主机选通本从机的SS才进行数据回应

  • 我按照你说的设置了,但是由于需求是SPI主机连续发8字节,从机(STC8H)再连续回复8字节。在从机回复的时候,会陷入写冲突(由于主机需要提供SCLK给从机发送数据且MOSI上仍然有全部为零的数据,导致从机误认为还在接收)。这种情况如何解决?

    点评

    不会陷入写冲突的,当从机返回数据时,主机发CLK,同时发的数据忽略即可。SPI通讯要有协议的。  详情 回复 发表于 2023-2-20 16:15
    zhp
    这是上层通信协议的问题,主机和从机需要配合好才行 另外,SPI数据传输中没有单独的读操作或者写操作,读写是同时进行的  详情 回复 发表于 2023-2-20 15:34
  • TA的每日心情
    开心
    2024-1-4 08:56
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    16

    主题

    711

    回帖

    2518

    积分

    超级版主

    积分
    2518
    发表于 2023-2-20 15:34:13 | 显示全部楼层
    Ieuan 发表于 2023-2-20 14:58
    我按照你说的设置了,但是由于需求是SPI主机连续发8字节,从机(STC8H)再连续回复8字节。在从机回复的时候 ...

    这是上层通信协议的问题,主机和从机需要配合好才行
    另外,SPI数据传输中没有单独的读操作或者写操作,读写是同时进行的

    该用户从未签到

    45

    主题

    2905

    回帖

    6528

    积分

    超级版主

    积分
    6528
    发表于 2023-2-20 16:15:17 | 显示全部楼层
    Ieuan 发表于 2023-2-20 14:58
    我按照你说的设置了,但是由于需求是SPI主机连续发8字节,从机(STC8H)再连续回复8字节。在从机回复的时候 ...

    不会陷入写冲突的,当从机返回数据时,主机发CLK,同时发的数据忽略即可。SPI通讯要有协议的。

    该用户从未签到

    1

    主题

    1

    回帖

    9

    积分

    新手上路

    积分
    9
    发表于 2023-3-3 15:13:16 | 显示全部楼层
    在主机发每一个字节数据后延迟一定时间,让从机有足够时间处理接收到的数据,并将需要发送到主机的数据送往SPDAT。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-4-26 01:04 , Processed in 0.065055 second(s), 52 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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