CC2530 SPI 问题

2019-07-24 18:08发布

CC2530 作为主机  发送读取指令 但是收不到数据  流程为 SPI 主模式  片选 要读取的芯片,发送读取指令 0x8F  读地址为0X0F的寄存器 可是 从设备没有返回任何数值,不知道什么原因,是不是CC2530 在主模式下发送指令  必须将2530 设置成从模式才能收到 数据啊  万分不解,求指导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
dirtwillfly
1楼-- · 2019-07-24 19:31
建议楼主把代码传上来看看
huayuguo
2楼-- · 2019-07-24 22:46
IAR  工程  是根据 SPI 参考代码修改的,希望大牛帮分析一下。


主要就是 初始化 后   2530作为主  向从 发送读取地址 为 0X0F 的内容,但是一直没有收到数据 一直卡在 while 然后超时退出了,我实验过去掉超时,然后程序就死这里了。
          u16Loop=5000;
          while (!U0RX_BYTE)
          {
                u16Loop--;
                if(u16Loop==0)
                {
                    return 0;
                }
        }
huayuguo
3楼-- · 2019-07-24 22:51
自己解决  现在结贴:

第一点 CC2530 SPI 在作为主机时,TX_BYTE 不可用,次状态为只作为从机使用。   至少我实验是这样。

第二点 TX_BYTE 不可用 用什么接收从机来的数据,在SPI作为主机模式下要接收从机数据  必须提供SCK时钟 即需要发送假数据 如:发送0x00 0XFF等
       状态位需要用ACTIVE 来判断 接收到数据没有,但是这里有个问题 需要在发送假数据后 必须加载一定延迟 此延迟 必须超过8个SCK脉冲的时间,不知道是不是ACTIVE不可用的原因还是我理解错误。
      这样就可以接收数据了。


也许上面2点 有错误,但是从我的调试来看是这样的 希望遇到同样问题的同志  参考。


  另外 需要注意 SPI  的SCK  时钟的相位 极性 以及是低位先送还是高位先送  。这个 如果不明白 请百度吧。
xiangtian134
4楼-- · 2019-07-25 02:31
 精彩回答 2  元偷偷看……
寒风晓月
5楼-- · 2019-07-25 04:12
我使用CC2543的SPI口读HMC5983的数据,通过示波器可以观察到时钟信号正确,输出正确,但是无法得不到接收的数据。试过发送无效命令取从器件值,SPI的时钟极性和相位也修改过,但是还是得不到数据,不知道是什么原因。如果您看我的消息,愿意给我一些指导,请给我回复,非常感谢你。

一周热门 更多>