打印

有关SI4432调试问题的探讨

[复制链接]
7991|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gostman|  楼主 | 2009-10-4 17:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
高位大虾,小弟最近在做一个无线收发模块。用的就是SI4432,控制器是C8051F005。
可是调了好几天,那家伙一点反应都没有。愁啊,下面简单的说一下我的思路还望有经验的大虾们不吝赐教啊
    我的硬件连接图完全是按照手册上来的,单片机的p00(CLK)接SI4432的CLK,p01(MISO)接SI4432的SDO,p02(MOSI)接SI4432的SDI,p03(NSS)接SI4432的NESL,p05接SI4432的NIRQ.
   SI4432的初始化思路是:先读0x03,0x04两个中断状态寄存器使得NIRQ变高,在给07工作模式寄存器写0x80复位所有的寄存器,然后等待NIRQ变低........程序就死在这个等待的地方了,此时的SI4432就好像睡美人,任凭我怎么的呼喊她也不醒来。。。。
  或许她在等待王子的出现
哈哈 望大虾们赐教!

相关帖子

沙发
gostman|  楼主 | 2009-10-5 08:40 | 只看该作者
没人回帖么?大侠们?somebody help me~~~~

使用特权

评论回复
板凳
gostman|  楼主 | 2009-10-6 10:50 | 只看该作者
饿的神啊!!~~

使用特权

评论回复
地板
gostman|  楼主 | 2009-10-6 15:08 | 只看该作者
org,还是没人回答我的问题,上午重新整理了一遍思路,明显犯了一个错误据资料描术C8051F的SPI接口的NSS是在多主机下使用的。哎,第一次学习没仔细看书啊把它当成了片选信号线。从然如此我还是没调出来啊。贴段初始化代码,真心希望能有个能人。
  int i;
  WDTCN = 0XDE;                          //关闭看门狗
  WDTCN = 0XAD;

  XBR0 = 0X02;                            //配置交叉开关,将SPI0配置在P00-P03
  XBR1 = 0X00;
  XBR2 = 0X40;
  PRT0CF = 0X95;                        //设置P07,P04,P02,P00为推挽输出
                                        // p07做片选p04驱动一个二极管
  OSCXCN = 0X67;                           //外部晶振为11.0592

  for(i=0;i<256;i++);
  while(!(OSCXCN & 0X80));                //等待外部晶振稳定
  OSCICN = 0X88;                          //选择外部晶振作为系统时钟源,允许时钟丢失时钟检测

  SPI0CFG   = 0x47;                   // SPI0配置寄存器CKPHA = '0', CKPOL = '1',帧长度为8位
  SPI0CKR   = 0x14;                   //设置SPI传送时钟频率约240Kpbs
  SPI0CN    = 0x02;                   // SPI0控制寄存器,主方式操作,允许SPI0
  
  EIE1 |= 0x01;                       // 允许 SPI 中断
  SPIEN = 1;                                //开启SPI
  ///SI4432_NIRQ = 1;
  SI4432_NSEL = 1;

使用特权

评论回复
5
gostman|  楼主 | 2009-10-6 15:11 | 只看该作者
void Init_Si4432(void)
{

  Regist_read(0x03);
  Regist_read(0x04);
  Regist_write(0x05,0x00);
  Regist_write(0x06,0x02);
  Regist_write(0x07,0x80);      //写工作模式寄存器,复位所有的寄存器
// msec(1000);
while(SI4432_NIRQ){LED = 0;}
}

使用特权

评论回复
6
annaxs| | 2009-11-16 21:26 | 只看该作者
需要初始化4432.有需要请联系我们!!!

使用特权

评论回复
7
NE5532| | 2009-11-16 21:45 | 只看该作者
搞微功率射频,非常烦,过来人,同情你一下。憋憋就好了。

使用特权

评论回复
8
qq8863| | 2011-8-16 14:22 | 只看该作者

使用特权

评论回复
9
lxlcoffee| | 2011-10-30 21:05 | 只看该作者
我用的是C8051F930,也曾遇到楼主的问题,后来我发现是端口初始化的时候没有把NIRQ接的端口配置成开漏,楼主可以看看是不是这个问题。

使用特权

评论回复
10
kevinjzw| | 2012-3-14 22:22 | 只看该作者
gostman的问题,我遇到过,建立检查SPI是否能够正确读写,我遇到的是SPI读写是一nSEL信号无论是你给高还是低电平。一直处于低电平状态,如果你开始的是写,那么会进入brust写状态,如果读就会进入brust读状态,建议换一个si4432的板子试下,另外也可以将nSEL置成高电平,进行SPI读写看测试的结果。

使用特权

评论回复
11
hp_song| | 2018-9-22 17:00 | 只看该作者
本帖最后由 hp_song 于 2018-9-22 17:08 编辑

6年前的问题啊,我又掉进来了,还有人拉一把吗?我的在软复位是倒是可以拉低,读0304后拉高,但发送数据后不下去啊,ipksent也一直不置位啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝