查看: 6060|回复: 15

[求助] 使用SPIMaster_LDD的ReceiveBlock(…)接收数据会少收1byte

[复制链接]

该用户从未签到

11

主题

54

帖子

0

中级会员

Rank: 3Rank: 3

积分
231
最后登录
2015-11-20
发表于 2014-11-24 18:03:05 | 显示全部楼层 |阅读模式
本帖最后由 yugolee 于 2014-11-25 08:56 编辑

使用FRDM_MKL25Z,MCG使用FEI模式(clock source為Slow IRC=32.768Khz),SPIMaster_LDD设定如下:
1.jpg
2.jpg
使用以下程序代码测试:
  1. SM1_ReceiveBlock(SM1_DeviceData,SPIInBuf,10);
  2. SM1_SendBlock(SM1_DeviceData,SPIOutBuf,10);
  3. while(!SM1_GetBlockSentStatus(SM1_DeviceData))
  4. {}
  5. m=SM1_GetReceivedDataNum(SM1_DeviceData);
复制代码

当SPISCK设定成5.996544Mhz时,SPI只能收到9个bytes,但是在其他频率(2.998272Mhz及11.993088Mhz)皆可收到10个bytes,请问各位大哥这是PE的bug吗?
我知道答案 目前已有15人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-25 08:57:23 | 显示全部楼层
    楼主你好
    如果方便的话能否直接上传工程以便我们测试一下呢?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-25 09:43:11 | 显示全部楼层
    麻烦了,使用 keil 5.11及PE。程序很简单,重复收发数据,正常动作时LED灯会闪烁,谢谢!!

    Kinetis.rar

    3.16 MB, 下载次数: 5, 下载积分: 威望 1

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-25 14:21:40 | 显示全部楼层
    yugolee 发表于 2014-11-25 09:43
    麻烦了,使用 keil 5.11及PE。程序很简单,重复收发数据,正常动作时LED灯会闪烁,谢谢!!
    ...

    请问直接使用PE提供的典型例子会有这个问题吗?
    SPI Help.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-25 16:16:15 | 显示全部楼层
    一样,我的程序基本上就是由其范例而来,也试过使用interrupt的方式,基本上只要SPISCK设定成5.996544Mhz就会少收1个byte,所以SM1_OnBlockReceived(…)都不会被呼叫,谢谢!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-27 23:46:11 | 显示全部楼层
    各位有这种情况吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-12-1 14:58:48 | 显示全部楼层
    yugolee 发表于 2014-11-25 16:16
    一样,我的程序基本上就是由其范例而来,也试过使用interrupt的方式,基本上只要SPISCK设定成5.996544Mhz就 ...

    我这在两块FRDM-KL25Z开发板上用PE生成的中断例子可以实现10bytes的通信的,在从机接收完毕后点亮一个小灯就可以看到是否传输完成。
    用逻辑分析仪也看了一下波形也是对的。

    所以问你是否有用过PE生成的SPI 中断方式通信例程。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-12-1 15:10:10 | 显示全部楼层
    yugolee 发表于 2014-11-25 09:43
    麻烦了,使用 keil 5.11及PE。程序很简单,重复收发数据,正常动作时LED灯会闪烁,谢谢!!
    ...

    看了你的工程,只给出了主机端的,也没看到从机端程序。
    验证一个模块是否有问题,参考PE给出的典型例子是最方便的。
    你那个工程添加了很多其他模块,建议在SPI通信正确的情况下再逐个添加其他模块功能以便排查问题。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-12-1 15:49:36 | 显示全部楼层
    版主你好,正常来说,从SPI送出几个byte,则Shift Register就会从MISO收回几个byte,所以我并不需要一个从机端来接收,我会在测试一下,谢谢!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-12-1 16:53:40 | 显示全部楼层
    请问版主的SPI的clock path跟我的设定是否相同?有没有将SPISCK设定成5.996544Mhz,我这测试了这个频率一定会少收1个 byte,其他频率则OK,包括11.993088Mhz。另外我也有外挂SPI Flash测试,一样是5.996544Mhz有问题,其它频率读写 SPI Flash都OK,谢谢!!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 16:51 , Processed in 0.112804 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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