查看: 20548|回复: 23

[其他] 如何让SPI的CS pin在发送数据时一直保持低电平呢

[复制链接]

该用户从未签到

63

主题

263

帖子

0

高级会员

Rank: 4

积分
921
最后登录
2021-2-23
发表于 2017-1-31 21:54:53 | 显示全部楼层 |阅读模式
请教各位高手,目前本人在用KL02的SPI,因为从机模块要求在接收数据的时候cs必须一直为低,但是我用KL02 KSDK2.0的 sdk SPI polling例程测试发现,每发完一个字节之后,CS就会拉高一小段时间。于是我将这个脚配置成IO口,关掉cs的自动控制功能,手动去控制,既开始发送数据前手动拉低,发送完在拉高,但这样就显示接收错误了,其他东西都没有改,只是改了cs pin相关的地方。
我想确认的是:是不是KL02的SPI一定需要在每次发完1个字节后拉高一小段时间呢?应该不会吧。
还是说我在每次发完数据后加入相应那么长时间的延时就可以了呢?

谢谢!
我知道答案 目前已有23人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 02:23
  • 签到天数: 2975 天

    连续签到: 14 天

    [LV.Master]伴坛终老

    23

    主题

    4190

    帖子

    82

    金牌会员

    Rank: 6Rank: 6

    积分
    14009
    最后登录
    2025-9-10
    发表于 2017-2-1 14:37:37 | 显示全部楼层
    找找看,应该有相应设置。
    一般来说,SPI按帧发送数据,在帧内CS一直有效。当然这个帧长度是1,或是2,还是别的,都可以设置。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2017-2-1 15:44:27 | 显示全部楼层
    主机发送时cs为低,相应的从机在此时接收数据。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5788
    最后登录
    2025-5-7
    发表于 2017-2-1 21:12:21 | 显示全部楼层
    spi数据传输是按字节发送的,发完之后肯定拉高啊,你看看SPI时序图
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    63

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    921
    最后登录
    2021-2-23
     楼主| 发表于 2017-2-2 12:02:55 | 显示全部楼层
    本帖最后由 huiyao 于 2017-2-2 16:07 编辑
    toofree 发表于 2017-2-1 14:37
    找找看,应该有相应设置。
    一般来说,SPI按帧发送数据,在帧内CS一直有效。当然这个帧长度是1,或是2,还是 ...

    你好 kinetis这个我确实没找到帧相关的控制,就不清楚要怎么弄了,所以想问一下,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    90

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    419
    最后登录
    1970-1-1
    发表于 2017-2-2 15:37:32 | 显示全部楼层
    试着用GPIO控制,CS拉低后 稍微延迟一会,延时多长时间根据你的SPI的频率来定,比如说延迟半个周期
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    63

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    921
    最后登录
    2021-2-23
     楼主| 发表于 2017-2-2 16:04:04 | 显示全部楼层
    浪淘沙-407988 发表于 2017-2-2 15:37
    试着用GPIO控制,CS拉低后 稍微延迟一会,延时多长时间根据你的SPI的频率来定,比如说延迟半个周期 ...

    你好!请问你的意思是说 我用gpio拉低后,延时一下就可以了吗?每个字节传输之间是否需要加延时呢?非常感谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    63

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    921
    最后登录
    2021-2-23
     楼主| 发表于 2017-2-2 16:06:26 | 显示全部楼层
    wambob 发表于 2017-2-1 21:12
    spi数据传输是按字节发送的,发完之后肯定拉高啊,你看看SPI时序图

    你好 可能我表述问题不够清楚 我的spi从机那边要求传输时cs要一直为低,像KL02这样每个字节拉高的话,一次性传几个字节的数据时会有丢数据的现象,所以需要用IO口来控制cs。我的疑问主要是说是不是需要在每个字节传输完后加相应的延时,延时的时间就差不多等于每次cs拉高的时间呢?谢谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2017-2-2 16:57:27 | 显示全部楼层
    cs用io控制
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    63

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    921
    最后登录
    2021-2-23
     楼主| 发表于 2017-2-2 18:42:35 | 显示全部楼层

    是的 目前我是用IO来做了 请问使用IO口做cs有什么要注意的地方吗,目前我在FRDM板上跑spi polling例程,修改了相应的地方,传输并不成功,是否需要像楼上说的,拉低之后要先延时,然后byte和byte直接是否也要加延时?因为我看自动cs的时候,会自动拉高一小段时间,我如果用IO的话是不是也要认为的延时响应的时间呢?谢谢!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-11 05:29 , Processed in 0.107442 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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