查看: 11238|回复: 12

[已解决] KL25 SPI从机中断接收丢数据的问题(已解决)

[复制链接]

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
发表于 2014-4-22 21:23:50 | 显示全部楼层 |阅读模式
 使用KL25开发板,作SPI slave,时钟4.2Mhz,收发通过SPI中断完成。现在调试发现主机发过来的数据,从机丢包严重,接收2-3个字节就可能丢一个,时钟降到2MHz就没有此问题,请问4.2MHz的时钟太高了吗?还是SPI中断已经不够快了,通过DMA会有改善吗?
注:通过示波器看过波形,主机发送没有问题
诚求大虾指点
我知道答案 目前已有12人回答
回复

使用道具 举报

该用户从未签到

10

主题

65

帖子

0

新手上路

Rank: 1

积分
94
最后登录
1970-1-1
 楼主| 发表于 2014-4-23 09:16:45 | 显示全部楼层

回复:KL25 SPI从机中断接收丢数据的问题

没人用过SPI slave吗
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-4-23 09:35:34 | 显示全部楼层

    RE:KL25 SPI从机中断接收丢数据的问题

    主设备SPI的频率是多少?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-4-23 09:54:35 | 显示全部楼层

    RE:KL25 SPI从机中断接收丢数据的问题

    你好,楼主!
    我想确认一点,请问你是在中断函数中,才读取收到的数据吗?
    如果是这样的话,应该可以解释,用示波器观察到的数据是正确,而实际收到的数据有丢包的现象。
    还有关于你想利用DMA增加读取收到数据的速度而避免丢包,我觉得应该是可行的,值得一试!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    65

    帖子

    0

    新手上路

    Rank: 1

    积分
    94
    最后登录
    1970-1-1
     楼主| 发表于 2014-4-23 10:08:24 | 显示全部楼层

    回复:KL25 SPI从机中断接收丢数据的问题

    回复第 4 楼 于2014-04-23 09:54:35发表:
    你好,楼主!
    我想确认一点,请问你是在中断函数中,才读取收到的数据吗?
    如果是这样的话,应该可以解释,用示波器观察到的数据是正确,而实际收到的数据有丢包的现象。
    还有关于你想利用DMA增加读取收到数据的速度而避免丢包,我觉得应该是可行的,值得一试!
    是的,在中断函数中读取的,进一次读一个,我很奇怪哦,为什么这样也会丢,也不算是特别快把,可否详细解析?
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    65

    帖子

    0

    新手上路

    Rank: 1

    积分
    94
    最后登录
    1970-1-1
     楼主| 发表于 2014-4-23 10:08:00 | 显示全部楼层

    回复:KL25 SPI从机中断接收丢数据的问题

    回复第 3 楼 于2014-04-23 09:35:34发表:
    主设备SPI的频率是多少?
    4MHz多,时钟频率只设主设备就OK了,从设备不需要设置的
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-4-23 10:43:26 | 显示全部楼层

    回复:KL25 SPI从机中断接收丢数据的问题

    回复第 5 楼 于2014-04-23 10:08:24发表:
    回复第 4 楼 于2014-04-23 09:54:35发表:
    你好,楼主!
    我想确认一点,请问你是在中断函数中,才读取收到的数据吗?
    如果是这样的话,应该可以解释,用示波器观察到的数据是正确,而实际收到的数据有丢包的现象。
    还有关于你想利用DMA增加读取收到数据的速度而避免丢包,我觉得应该是可行的,值得一试!
    是的,在中断函数中读取的,进一次读一个,我很奇怪哦,为什么这样也会丢,也不算是特别快把,可否详细解析?
     
     谢谢你的回复,我觉得还是在中断函数中读取数值过程,新的数据已经传送到MCU了,从而导致丢包的可能性大一点,虽然
    4.2Mhz波特率确实不怎么高,那请问你的主频频率是多少啊?
    请问你用DMA+SPI调试,有丢包现象发生吗?
     

     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-4-23 10:51:10 | 显示全部楼层

    RE:KL25 SPI从机中断接收丢数据的问题

    看一下手册:
    http://cache.freescale.com/files/32bit/doc/data_sheet/KL25P80M48SF0.pdf?fasp=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation&amparent_nodeId=1339527982286712105629&amparent_pageType=product
    这里描述了从模式下,各种时序的要求。For SPI0, fperiph is the bus clock (fBUS). For SPI1 fperiph is the system clock (fSYS)。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    65

    帖子

    0

    新手上路

    Rank: 1

    积分
    94
    最后登录
    1970-1-1
     楼主| 发表于 2014-4-23 11:21:22 | 显示全部楼层

    回复:KL25 SPI从机中断接收丢数据的问题

    回复第 7 楼 于2014-04-23 10:43:26发表:
    回复第 5 楼 于2014-04-23 10:08:24发表:
    回复第 4 楼 于2014-04-23 09:54:35发表:
    你好,楼主!
    我想确认一点,请问你是在中断函数中,才读取收到的数据吗?
    如果是这样的话,应该可以解释,用示波器观察到的数据是正确,而实际收到的数据有丢包的现象。
    还有关于你想利用DMA增加读取收到数据的速度而避免丢包,我觉得应该是可行的,值得一试!
    是的,在中断函数中读取的,进一次读一个,我很奇怪哦,为什么这样也会丢,也不算是特别快把,可否详细解析?
     
     谢谢你的回复,我觉得还是在中断函数中读取数值过程,新的数据已经传送到MCU了,从而导致丢包的可能性大一点,虽然
    4.2Mhz波特率确实不怎么高,那请问你的主频频率是多少啊?
    请问你用DMA+SPI调试,有丢包现象发生吗?
     

     
    主频48M的,用DMA后现象也很奇怪,因为帧长度不是一定的,必须根据协议分段DMA收取,感觉还是有丢,我现在还在调试,有结果汇报

     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    65

    帖子

    0

    新手上路

    Rank: 1

    积分
    94
    最后登录
    1970-1-1
     楼主| 发表于 2014-4-23 11:25:50 | 显示全部楼层

    回复:KL25 SPI从机中断接收丢数据的问题

    回复第 8 楼 于2014-04-23 10:51:10发表:
    看一下手册:
    http://cache.freescale.com/files/32bit/doc/data_sheet/KL25P80M48SF0.pdf?fasp=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation&amparent_nodeId=1339527982286712105629&amparent_pageType=product
    这里描述了从模式下,各种时序的要求。For SPI0, fperiph is the bus clock (fBUS). For SPI1 fperiph is the system clock (fSYS)。
    打不开,可否详述一下
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-28 04:38 , Processed in 0.104611 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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