搜索
bottom↓
回复: 19

急!!!跪求各位大虾知道4432,在430里的中断使能!!!

[复制链接]

出0入0汤圆

发表于 2011-4-15 22:33:37 | 显示全部楼层 |阅读模式
现在正在学习SI4432.

之前在51里程序调通了,但是功率根本不是我设置的那样的。

现在决定换430调,但是程序不能跑啊~

那个中断检测,始终检测不了~不知道为何~~~

下面附上代码:

//----------------RF4432数据包发送函数-------------------
void RF4432_TxPacket(void)
{
        RF4432_PAC_1;         
        RF4432_WriteReg(OPERATING_FUNCTION_CONTROL_2,RF4432_ReadReg(OPERATING_FUNCTION_CONTROL_2)|0x01);
        RF4432_WriteReg(OPERATING_FUNCTION_CONTROL_2,RF4432_ReadReg(OPERATING_FUNCTION_CONTROL_2)&0xFE);
        RF4432_WriteBurestReg(FIFO_ACCESS,RF4432_TxRxBuf,RF4432_TxRxBuf_Len );

        RF4432_ReadReg(INTERRUPT_STATUS_1);
        RF4432_ReadReg(INTERRUPT_STATUS_2);
        RF4432_WriteReg(INTERRUPT_ENABLE_1, 0x04);     //Enable Packet Sent.
        RF4432_WriteReg(OPERATING_FUNCTION_CONTROL_1,0x09);//发射
        while(1)
        {
                RF4432_IRQ_1;
                //P1DIR &= ~BIT0;
                if(!RF4432_IRQ_1)
                {
                    if(RF4432_ReadReg(INTERRUPT_STATUS_1)&0x04)     //详细请看P95页
                    {
                        break;
                    }
                }
                //P1DIR |= BIT0;
        }
}

跪求各位大虾帮我看看啊~~~神奇的430~

出0入0汤圆

发表于 2011-4-15 22:47:04 | 显示全部楼层
我水平太低,没看明白你的问题到底是什么

出0入0汤圆

 楼主| 发表于 2011-4-15 22:52:28 | 显示全部楼层
回复【1楼】alengend  
-----------------------------------------------------------------------

就是检测4432有没有发送数据的时候,程序会卡在那~

也就是说430在检测interrupt 1 的时候,即IRQ脚的电平没有变化,若检测到变化就会发送数据,但现在检测不到变化~

出0入0汤圆

发表于 2011-4-15 22:54:22 | 显示全部楼层
估计你少了相应的4432中断使能

出0入0汤圆

发表于 2011-4-15 23:15:38 | 显示全部楼层
是这样的,430的IO口中P1 P2具备中断能力,但是使用前要初始化,要设置为输入,使能IO口中断,设置上升沿或下降沿产生中断,不知道你是怎么接的,怎么初始化的IO口

出0入0汤圆

 楼主| 发表于 2011-4-15 23:48:16 | 显示全部楼层
回复【4楼】alengend  
-----------------------------------------------------------------------
是这样的:
When any of the Interrupt/Status 1 bits change state from 0 to 1 the device
will notify the microcontroller by settingthe nIRQ pin LOW if it is enabled in
the Interrupt Enable 1 register. The nIRQ pin will go to HIGH and all theenabled
interrupt bits will be cleared when the microcontroller reads this address. If
any of these bits is not enabledin the Interrupt Enable 1 register then it becomes
a status signal that can be read anytime in the same location andwill not be
cleared by reading the register.

大概就是当我的4432模块检测到中断状态位的变化,则它会通过把IRQ这个引脚拉低来通知430.

只要我的430能检测到这个IRQ引脚变低,那我就能判断数据发送成功~

但是我程序每次都卡在检测4432里的中断状态位这个地方~

出0入0汤圆

发表于 2011-4-16 03:27:04 | 显示全部楼层
看来你是新手,两个芯片都没摸熟悉;只是你调试方法的问题。
首先让你430能够识别IO中断,不管是上升沿或下降沿,只要是P1/P2口都可以快速识别处理,而且尽量避免中断嵌套,430的处理有很多小细节,以后自己慢慢积累吧,不错的低功耗单片机;
然后,在接上4432,示波器架起调试,你就容易判断是哪的问题了。注意,读INTERRUPT_STATUS_1和INTERRUPT_STATUS_2,读出来就要识别处理,读后它会自动刷新。你想观察发射没发射成功,也可以配置GPIO0、GPIO1、GPIO2来观察。你多半没仔细看手册,还是得静下心仔细看,呵呵.

出0入0汤圆

发表于 2011-4-16 06:19:01 | 显示全部楼层
跪求龟求

出0入0汤圆

 楼主| 发表于 2011-4-16 11:00:41 | 显示全部楼层
回复【6楼】pentong  
-----------------------------------------------------------------------
谢谢你的回答

现在已经调好了。其实那些IO口都不用设置中断模式,因为只要是数字输入输出模式就可以了

解决办法是在IO初始化的时候,要设置430与4432连接的SDO和IRQ脚为输入模式。

4432在发送的时候会通过改变IRQ的值来让单片机读取~

所以现在解决啦~


不过,确实是如你所说,昨晚我看英文的pdf看了好久好久,才把这个过程看完。平时看英文的pdf看得少,感觉很吃力。

现在还有一个问题就是发射功率。我按照pdf上设置TX POWER 为0x03,最大功率,但是用频谱仪检测的结果却不理想~

不知道该怎么解决。

出0入0汤圆

发表于 2011-4-16 11:57:56 | 显示全部楼层
回复【8楼】ledatou  
-----------------------------------------------------------------------

得看你的SI4432是什么版本的,最大发射功率,V2版本才配置成0X03,B1版本的应该是0x07;寄存器配置,最好看原厂手册,而且注意它的勘误说明

出0入0汤圆

 楼主| 发表于 2011-4-16 18:16:03 | 显示全部楼层
回复【9楼】pentong  
-----------------------------------------------------------------------

我看的英文pdf。silab的。上面说4431的最大功率才是0x07.4432的就是0x03。。。

出0入0汤圆

发表于 2011-4-16 19:47:11 | 显示全部楼层
回复【10楼】ledatou  
-----------------------------------------------------------------------
估计你看的是V2版本的手册哦。
下面是B1版本的芯片的手册,写得很明白,SI4432最大发射功率20dbm,而且配置为0X07

功率配置寄存器 (原文件名:power_register.jpg)


最大发射功率 (原文件名:max_power.jpg)

出0入0汤圆

 楼主| 发表于 2011-4-16 22:57:47 | 显示全部楼层
回复【11楼】pentong  
-----------------------------------------------------------------------

B1版本比V2新?

出0入0汤圆

发表于 2011-4-17 00:18:57 | 显示全部楼层
回复【12楼】ledatou  
-----------------------------------------------------------------------
是的。
V2相当于测试版本,有不少bug,最大发射功率只能18dbm左右;
B1是最新版本,芯片相对成熟,最大发射功率确实有20dbm

出0入0汤圆

 楼主| 发表于 2011-4-17 00:25:35 | 显示全部楼层
回复【13楼】pentong  
-----------------------------------------------------------------------

谢谢啦~那你有木有B1版本的pdf呢?

zengle1990@gmail.com

出0入0汤圆

发表于 2011-4-17 10:24:33 | 显示全部楼层
回复【14楼】ledatou  
-----------------------------------------------------------------------
去芯片公司网站下吧,那儿资料比较齐全。或者加这个QQ群116372396

出0入0汤圆

发表于 2011-7-19 16:24:31 | 显示全部楼层
我也正在学习,不知道是否能提供430F149的程序看看呢

出0入0汤圆

发表于 2013-9-12 14:41:29 | 显示全部楼层
路过,看看。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-11 03:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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