SI4463 改变空中速率以后,接收不到数据,请问改变空中速....
STM8L单片机控制si4463通信,因为发送8字节的数据用了100ms+,与低功耗要求不符。必须控制在10ms左右。所以想通过改变空中速率的方式来实现,(若大家有其他方法也可以留言讨论,谢谢。)但是当我两个模块都改成相同空中速率的时候,就接收不到了。默认是1kbps,如果两个模块设置成1kbps就可以接收和发送。目前只是把空中速率改成2K,就无法收到信号。而且发射波形有时候会变得不平整。附上程序。请问大家,想要修改空中速率,还需要修改什么其他东西嘛?[*]void SI4463_porter_rate_Set(u32 rate)
[*]函数功能:设置无线模块空中速率
[*]输入 rate 空中速率参数
[*]空中波特率=rate*2/10
[*]*********************************************************/
[*]void SI4463_porter_rate_Set(u32 rate)
[*]{
[*] SI446x_Set_Property_1(modem_DATA_RATE_2 , rate>>16 );
[*] SI446x_Set_Property_1(MODEM_DATA_RATE_1 , (rate>>8)&0xff);
[*] SI446x_Set_Property_1(MODEM_DATA_RATE_0 , rate&0xff );
[*] SI446x_Set_Property_1(MODEM_TX_NCO_MODE_3 , 0x00 );
[*] SI446x_Set_Property_1(MODEM_TX_NCO_MODE_2 , 0xE4);
[*] SI446x_Set_Property_1(MODEM_TX_NCO_MODE_1 , 0xE1 );
[*] SI446x_Set_Property_1(MODEM_TX_NCO_MODE_0 , 0xC0 );
[*]}
[*]void SI446x_Init( void )
[*]{
[*] SI446x_Gpio_Init( ); //SI4463引脚初始化
[*] SI446x_Reset( ); //SI4463复位
[*] SI446x_Power_Up( 30000000 );//reset 后需要Power up设备 晶振30MHz
[*] SI446x_Config_Init( ); //SI4463模块初始化
[*] SI446x_Set_Power( 0x7F ); //功率设置
[*] SI4463_porter_rate_Set(10000);//设置空中波特率 2kbps
[*] SI446x_Change_Status( 6 ); //切换到RX状态
[*] while( 6 != SI446x_Get_Device_Status( ));
[*] SI446x_Start_Rx( 0, 0, PACKET_LENGTH,0,0,3 );
[*]
[*]}
复制代码
你要用wds生成的工程搞 速率搞太快了吧,可能会导致收不到了 你可以重启一下试试呗,也许是OK的
发射波形如果变得不平整,说明电路这块能会有点问题吧,比如滤波可能有点问题
是不速度太高了 这种问题没遇到过啊,一般都是可以收到的啊
你这是不是得考虑增益啊,或者电路是否支持
那你就用1k的速度就不支持低功耗了?
我觉得跟速率没啥关系,你速率设置成之前的就好了,低功耗在考虑点其他的呗
你买个相同的模块,试试2K的速率是否OK啊?
可能是你2k的速度有点快了吧
波形不平整是功率的问题导致的吧
有可能是速度太快了
复位一下试试 可能速度太快失真了吧 可能是速率太快了,可能会导致收不到
页:
[1]