搜索
bottom↓
回复: 16

Si4432无法改变传输速率

[复制链接]

出0入0汤圆

发表于 2011-10-12 10:44:12 | 显示全部楼层 |阅读模式
各位大侠,
我在调试SI4432时,原来使用40Kbps传输速率,想修改成9.6Kbps,使用EXCEL计算出R6E=4E、R6F=A5、R70=2E的值后修改这三个寄存器值(在发送端和接收端进行了同样的修改)。结果发送可以正常发送,接收不能正确接收(接收标志位始终为0)。
希望大侠们给分析一下原因。附上接收函数
u8 RF4432_RxPacket(void)
{
  Clr_PAC;
  RF4432_WriteReg(INTERRUPT_ENABLE_1, 0x02);
  RF4432_WriteReg(OPERATING_FUNCTION_CONTROL_1,0x05);//接收
  if(READ_RF4432_IRQ==RESET)
  {
  if(RF4432_ReadReg(INTERRUPT_STATUS_1)&0X02)
  {
    if(RF4432_ReadReg(INTERRUPT_STATUS_1)&0x01)return 2;
       return 1;
  }
  }
  return 0;
}

出0入0汤圆

 楼主| 发表于 2011-10-12 15:40:30 | 显示全部楼层
回复【楼主位】jinguoju
-----------------------------------------------------------------------

有没有哪位修改过发射速率呀?帮帮忙呀~~~~

出0入0汤圆

 楼主| 发表于 2011-10-13 14:21:13 | 显示全部楼层
回复【楼主位】jinguoju
-----------------------------------------------------------------------

看来只能自己顶了

各位都没有修改过传输速率吗?能不能替我试一下你们的行不行。是只修改那三个寄存器吗?

出0入0汤圆

发表于 2011-10-16 02:02:59 | 显示全部楼层
买过个开发板,可惜没有程序,带个液晶屏可是调频率、速率啥的,我的程序现在还有点问题,收发必须用一个程序才行,只接收直接收不到,郁闷。

出0入0汤圆

 楼主| 发表于 2011-10-19 17:09:55 | 显示全部楼层
回复【3楼】40560335 柏拉图的永恒
-----------------------------------------------------------------------

你的主芯片是什么?

出0入0汤圆

发表于 2011-10-20 18:34:27 | 显示全部楼层
回复【4楼】jinguoju
-----------------------------------------------------------------------

还必须修改0x1c 0x20 0x21 0x22 0x23 0x24 0x25寄存器

出0入0汤圆

发表于 2011-10-24 10:08:00 | 显示全部楼层
同意楼上

出0入0汤圆

发表于 2011-10-28 11:31:04 | 显示全部楼层
楼上正解,不只是修改波特率的3个寄存器,应该有10多寄存器要修改,你对照那个表格一一检查一遍

出0入0汤圆

发表于 2011-11-8 01:40:33 | 显示全部楼层
回复【7楼】wendan
-----------------------------------------------------------------------

si4432稍微修改一次 一大推的寄存器会变动 比较麻烦,不过用熟悉了还是一样的,

跟个问题啊 如果我需要一对多通讯的话 如何设置ID

难道是使用FIFO载荷包拿几个BYTES出来当地址ID使用???  没看到有ID地址设置。。。。。。。

同步字节可以可以自己写,收发一样的,但那也只是一对一通讯,多机的话只能是使用数据包做ID来区分??????求解

出0入0汤圆

发表于 2011-11-8 14:30:17 | 显示全部楼层
回复【8楼】zplmcu  
-----------------------------------------------------------------------

之前我做的东西确实是在载荷中加ID来区分的,对于一对多通信是没有问题的

出0入0汤圆

发表于 2011-11-11 18:13:39 | 显示全部楼层
回复【9楼】wendan
-----------------------------------------------------------------------
to wendan
楼上你好 ,在调试SI4432的时候 也遇到楼主的问题 ,

但是我相关连的寄存器都有设置
#define TRX_FREQUENCY         (433000000L)        //  载波
#define TRX_CHANNEL_SPACING   (0)                 //跳频
#define TRX_DEVIATION         (20000L)             // 偏频
#define TRX_DATA_RATE         (60000L)             //速率
#define RX_BANDWIDTH          (100000L)           //IF滤波器带宽


phyWrite(EZRADIOPRO_AFC_LOOP_GEARSHIFT_OVERRIDE, DEFAULT_AFC_LOOP_GEARSHIFT_OVERRIDE);   // 0x1D       //使能AFC频率校正
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_OVERSAMPLING_RATIO, CALC_CLOCK_RECOVERY_OVERSAMPLING_RATIO(RX_DWN3_BYP,RX_NDEC_EXP,TRX_DATA_RATE)); // 0x20  .  //时钟恢复过抽样率
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_OFFSET_2,  CALC_CLOCK_RECOVERY_OFFSET_2(RX_DWN3_BYP,RX_NDEC_EXP,TRX_DATA_RATE));                   // 0x21
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_OFFSET_1, CALC_CLOCK_RECOVERY_OFFSET_1(RX_DWN3_BYP,RX_NDEC_EXP,TRX_DATA_RATE));                    // 0x22
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_OFFSET_0, CALC_CLOCK_RECOVERY_OFFSET_0(RX_DWN3_BYP,RX_NDEC_EXP,TRX_DATA_RATE));                    // 0x23
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_TIMING_LOOP_GAIN_1, CALC_CLOCK_RECOVERY_TIMING_LOOP_GAIN_1(TRX_DATA_RATE,RX_DWN3_BYP,RX_NDEC_EXP,TRX_DEVIATION)); // 0x24
   phyWrite(EZRADIOPRO_CLOCK_RECOVERY_TIMING_LOOP_GAIN_0,CALC_CLOCK_RECOVERY_TIMING_LOOP_GAIN_0(TRX_DATA_RATE,RX_DWN3_BYP,RX_NDEC_EXP,TRX_DEVIATION));  // 0x25
   phyWrite(EZRADIOPRO_AFC_LIMITER,AFC_LIMIT );                    // 0x2A


相关的寄存器已经修改 ,通过仿真确实数据是没问题的  
#define TRX_DEVIATION         (20000L)             // 偏频
#define TRX_DATA_RATE         (60000L)             //速率
#define RX_BANDWIDTH          (100000L)           //IF滤波器带宽
这三个 是按着那个来算的   BANDWIDTH=TRX_DATA_RATE+2*TRX_DEVIATION   符合这个规律
上面给的这个值是可以通讯的 ,但是稍微修改其中一个变量, 可能能通讯可能不能通讯 ,速率低于30K根本无法通讯,大于100也通讯不了,
这三者是不是有相应的要求,没看到datasheet 有介绍三者的联系,程序中关联寄存器会自动修改的,启动了AFC

出0入0汤圆

发表于 2011-11-14 13:54:47 | 显示全部楼层
回复【10楼】zplmcu  
-----------------------------------------------------------------------
偏频各个速率下参考值不同,9.6k波特率建议 45KHz,57.6K速率建议30KHz,当然也可以设置更低,前提是晶体中心频率够准,不能通信会不会是晶体的频率偏的比较大,另外带宽应该是计算的3db带宽,用excel表格输入参数会显示BW值,通过 1C,20~25寄存器来设置,另外excel表格要确认是否是对应的版本,si4432应该有V2 、B1等几个版本,版本不同某些寄存器的设置也是不同的

出0入0汤圆

发表于 2011-11-22 01:20:01 | 显示全部楼层
回复【12楼】wendan
-----------------------------------------------------------------------

谢谢提醒,现在是根据BI版本的excel表格来计算的,测试了下 几个速率都可以通讯。。。。。。
查看了相关文档,对于各个波段,速率 带宽 都相互影响着,这个配置比较灵活,

出0入0汤圆

发表于 2011-11-22 09:01:57 | 显示全部楼层
回复【13楼】zplmcu  
-----------------------------------------------------------------------

不用客气,速率和偏频这两个参数对通信距离有很大影响,同一个波特率下,如果晶振够准,中心频率偏差较小,那么你的偏频可以设置小,这样带宽会窄,接收灵敏度会高些,偏频大些,那么接收更可靠(因为不能保证中心频率不偏),excel表格上可以看出,当你改变偏频值,理论接收灵敏度值在变化,这样可以有个参考。我也有一段时间没接触了,以前做的东西也不是很稳定。

出0入0汤圆

 楼主| 发表于 2011-12-5 22:28:10 | 显示全部楼层
回复【14楼】wendan
-----------------------------------------------------------------------

感谢wendan的详细解答,这个问题我很早解决了。wendan说得很详细,也是我的问题所在,可惜的是没能帮上我,希望这个正解能帮助到更多的人。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-29 07:58

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

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