MiniCat 发表于 2012-4-29 15:06:04

SI4432收发转换问题以及收发效率问题请教

本帖最后由 MiniCat 于 2012-4-30 00:01 编辑

第一件事:
目前调试SI4432的过程中遇到这样一件事情,当发射时写完发射FIFO后,打开发射中断
SpiWriteAddressData( TransmitPacketLength , len);
       
for(i=0;i<len;i++)
{
SpiWriteAddressData( FIFOAccess , *databuf);
databuf++;
}

TxGPIOSetting();
SpiWriteAddressData( InterruptEnable1 , 0x04);      //使能包发射中断
SpiWriteAddressData( InterruptEnable2 , 0x00);          
SpiWriteAddressData( OperatingFunctionControl1 , 0x0B);

做完这些之后等待发射中断发生,在9600空中波特率下,当传送7个和8个字节数据的时候等不到中断(但是数据却发送正常),其他字节数都可以等到中断。
while((Rf.ItStatus1&0x04)==0)
{
WDR();
Rf.ItStatus1 = SpiReadAddressData(InterruptStatus1);
Rf.ItStatus2 = SpiReadAddressData(InterruptStatus2);
}

这是为什么呢?

第二件事:
当查询到0x03地址的0x04中断后,要延时一段才能置接收模式,不然发送数据就不正常。

RFSetIdleMode();
Delay_1ms();
RFSetRxMode();
我是先置成IDLEmode,再置成接收模式,中间延时1ms

我要问的就是收发转化这里,当收到04发射中断后,为什么要延时才能通信正常,一般应延时多少呢?还是我的处理过程不正确?

第三件事:
想做无线数据的实时传输,串口接收一字节数据就在无线端发送一字节数据,这个想法可行吗?或者说如何把做这个延时时间做到最短呢?


MiniCat 发表于 2012-4-30 23:07:00

现在是不是用SI4432的人已经很少了,大家现在都转到什么IC了?

roman99190@sina 发表于 2012-8-6 09:31:15

你好,请问你的SI4432程序用的中断还是查询啊?

MiniCat 发表于 2012-8-6 17:28:49

roman99190@sina 发表于 2012-8-6 09:31 static/image/common/back.gif
你好,请问你的SI4432程序用的中断还是查询啊?

中断方式

roman99190@sina 发表于 2012-8-7 09:22:30

能指导我下嘛,我的程序一直调不通。。。我QQ1585612009

老鼠爱上猫 发表于 2012-8-14 00:42:22

我也在学si4432,我遇到一些问题。模块的寄存器,怎么也写不了数据,求交流。QQ1532460434.

MiniCat 发表于 2012-8-17 10:49:17

老鼠爱上猫 发表于 2012-8-14 00:42 static/image/common/back.gif
我也在学si4432,我遇到一些问题。模块的寄存器,怎么也写不了数据,求交流。QQ1532460434. ...

SPI没通,先用软件模拟SPI 调通后在尝试硬件SPI,就会有一个方向。

wanchun311 发表于 2012-8-18 20:30:00

最近我在调试SI4432的无线模块 现在发现双向通信丢失数据很严重
我测试时 是一个si4432发送数据另外一个接受数据后 再转发回来
发现 在600组数据中   接受部分只丢了几组
但是 转发回来后就丢失很严重   距离10米的时候 返回的数据 600组只收到100组都不到
当距离在一米以内的时候返回数据又好多了   

wanchun311 发表于 2012-8-18 20:31:12

功率都是17mdb
请问大侠要修改什么地方可以解决

MiniCat 发表于 2012-8-19 14:39:33

wanchun311 发表于 2012-8-18 20:31 static/image/common/back.gif
功率都是17mdb
请问大侠要修改什么地方可以解决

接收的时候读取下26H,手册上有输入功率与RSSI的对比表,你参考下,感觉你射频的输出功率不够,所以才100m就丢的那么严重。

happydk666 发表于 2012-9-16 14:20:15

MiniCat 发表于 2012-8-17 10:49 static/image/common/back.gif
SPI没通,先用软件模拟SPI 调通后在尝试硬件SPI,就会有一个方向。

软件模拟spi,用的是spi的00模式还是什么模式?我看的时序上,应该是00模式,但是我模拟的话,就是控制不了

MiniCat 发表于 2012-9-26 12:20:45

roman99190@sina 发表于 2012-8-6 09:31 static/image/common/back.gif
你好,请问你的SI4432程序用的中断还是查询啊?

4432用的中断模式

lalapunk1983 发表于 2012-10-10 16:24:54

模块厂商都给的查询模式。都是简单的傻瓜式示范程序,实际应用肯定是用中断模式了。
大家都习惯用什么模式FIFO还是PH呢?我的数据包大了100个字节左右,上的FIFO模式。

gzyavr 发表于 2012-11-7 18:13:42

如果需要实现232的透明传输的话,如LZ所说“想做无线数据的实时传输,串口接收一字节数据就在无线端发送一字节数据”这样的效果。用FIFO这种有缓存区的数字调制方式,可以吗?我自己感觉这样不容易实现,应该用直接模式,,

rf_smart 发表于 2013-3-31 11:02:09

哈,看了楼主这么多帖,也跟了很多,不知道楼主的透传模块做得如何了。大概与你同一时期我也在做透传模块,当然现在已经完成了。目前能在19200速率下传输任意大小数据。用FIFO和直接模式都是可以的,只是限于单片机,用FIFO模式可以达到的速率会高点,用直接模式需要用IO口读BIT数据,同时需要判断引导码,同步字,CRC等,能达到的速率会低点。

MiniCat 发表于 2013-4-7 14:43:43

rf_smart 发表于 2013-3-31 11:02 static/image/common/back.gif
哈,看了楼主这么多帖,也跟了很多,不知道楼主的透传模块做得如何了。大概与你同一时期我也在做透传模块, ...

去年7月份就开始出货了,一直在去年年底一直功能上陆陆续续的升级。今年准备换频段,硬件软件上改动比较大,所以又是个麻烦事,这东西搞起来头疼死了。

MiniCat 发表于 2013-4-7 14:45:31

rf_smart 发表于 2013-3-31 11:02 static/image/common/back.gif
哈,看了楼主这么多帖,也跟了很多,不知道楼主的透传模块做得如何了。大概与你同一时期我也在做透传模块, ...

我那个是做透传抄表的,波特率要求1200 2400 4800 9600 19200自识别那种,字节数也不多,最大包也就200多字节吧。

mute 发表于 2013-7-18 14:59:56

第二件事:
当查询到0x03地址的0x04中断后,要延时一段才能置接收模式,不然发送数据就不正常。

RFSetIdleMode();
Delay_1ms();
RFSetRxMode();
我是先置成IDLEmode,再置成接收模式,中间延时1ms

我要问的就是收发转化这里,当收到04发射中断后,为什么要延时才能通信正常,一般应延时多少呢?还是我的处理过程不正确?
-----------------------------------------------------------
你好,请问这个问题能不能给点提示呢?

我在调试接收时也碰到类似情况。
进入 【包有效中断】0x02 ,收取数据,重新设置为 XTON |RX (0x05模式)。
但是经常就停止接收了。
后来在主循环里,一直轮询这个模式寄存器,发现中断设置成0x05后(设置后读取一直是0x05正常的),在主循环里轮询会发现有一半几率会从0x05变回0x01。
看手册里是只有【包有效中断】才会变回0x01。
页: [1]
查看完整版本: SI4432收发转换问题以及收发效率问题请教