久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3971|回復: 5
收起左側

SI4432無線模塊調試程序

[復制鏈接]
ID:74862 發表于 2015-6-16 14:34 | 顯示全部樓層 |閱讀模式
希望能幫到有需要的人
SI4432點對點收發自動切換程序分析

silabs官方給的DEMO是AN415_EZRadioPRO_Sample_Code.zip

版本號:
AN415_EZRadioPRO_Sample_Code 1.0 4/11/2011
收發在一體的主程序:
AN415_EZRadioPRO_Sample_Code\EZRadioPRO_Sample_Codes\Si4432_revV2\TRX_operation \main_SDBC_DK3.c
說明文檔:
AN415.pdf    英文版的,大致解釋了一下程序是怎么運行的,建議花時間仔細看一遍。

程序分析如下:

初始化:

1、讀0x03和0x04中斷狀態寄存器,當讀這個地址時,中斷標志位將被自動清除;
2、軟件復位所有的內部寄存器;
3、等待Power-on-reset (POR)中斷,連續讀兩次0x03 0x04;
4、通信頻率;
5、發送數據的波特率;
6、Filter Bandwidth濾寬、Clock Recovery始終恢復、deviation偏差;
7、報頭長度,Preamble Detection Threshold.報頭檢測極值;
8、指定若干同步字(Synchronization Word),并填入值;
9、使能對數據包的收發,填入FIFO并進行CRC校驗;
10、沒有廣播,接收頭不用核對。No broadcast address enable, No Received Header check.
11、使能FIFO模式,是調制GFSK模式;
12、若干non-default Si4432 registers賦值;
13、打開接收模式,使能“有效數據包接收”、“CRC錯誤”兩個中斷;
14、再一次讀兩個中斷狀態寄存器,釋放所有掛起的中斷。

發送模式:

1、    檢測到按鍵,首先關閉接收器,但keep the XTAL,確保可以及時的調整到發送模式;
2、    注意在發送前,必須要重新配置Tx deviation register;
3、    指定載荷(payload)大小,向FIFO中填入發送數據,在末尾填入回車鍵的ASSIC碼;
4、    屏蔽其它中斷,只打開“發送完畢”中斷,這樣當這個終端產生時,nIRQ引腳會被拉低;讀中斷狀態寄存器,清除所有掛起中斷,同時nIRQ引腳被再次拉高;
5、    使能發送,數據被打包發出去,同時FIFO被自動清空;
6、    MCU的程序,停在等待發送完畢中斷處;中斷發生后,讀狀態寄存器清除中斷;
7、    再一次使能“有效數據包接收”“CRC錯誤”中斷;
8、    重新配置Frequency Deviation register,再使能接收鏈路。

小記:不論是使能發送鏈路還是接收鏈路,之前都要重新配置頻率偏差寄存器。

接收模式:

1、    關閉接收鏈路
2、    讀中斷狀態,如果是CRC出錯,則清空RX FIFO,方法是對ffclrrx先置1再置0;
3、    如果是有效數據中斷,首先讀報文長度,再從FIFO中,逐一讀出數據;清空FIFO,方法如上;
4、    使能接收鏈路。

小記:demo里面貌似缺了配置Frequency Deviation register。

接收中嵌套發送:

1、    關閉接收鏈路;
2、    讀中斷狀態,如果是CRC出錯,則清空RX FIFO,方法是對ffclrrx先置1再置0;
3、    如果是有效數據中斷,首先讀報文長度,再從FIFO中,逐一讀出數據;
4、    若需要回應ACK信號,配置Frequency Deviation register,填入報文長度和內容;
5、    使能發送完畢中斷,打開發送模式,等待發送結束,清中斷;
6、    再一次使能“有效數據包接收”“CRC錯誤”中斷;
7、    重新配置Frequency Deviation register,清空FIFO,使能接收鏈路。

SI4432簡單收發程序



void IA4432_Init(void)
{
IA4432_Register((REG_WRITE | OperatingControl1), 0x80);
IA4432_Register((REG_WRITE | TXRampControl), 0x7F);
IA4432_Register((REG_WRITE | AFCLoopGearshiftOverride), 0x00);
IA4432_Register((REG_WRITE | FrequencyBandSelect), 0x53);    //set frequency
IA4432_Register((REG_WRITE | NominalCarrierFrequency1), 0x4b);  //433HZ
IA4432_Register((REG_WRITE | NominalCarrierFrequency0), 0x00);
IA4432_Register((REG_WRITE | ModulationModeControl1), 0x00);
IA4432_Register((REG_WRITE | ModulationModeControl2), 0x22); //asynchronous mode  FSK
IA4432_Register((REG_WRITE | HeaderControl2), 0x02); //no head; sync word 3 and 2
IA4432_Register((REG_WRITE | HeaderControl1), 0x00);
IA4432_Register((REG_WRITE | PreambleLength), 0x04);   //2byte
IA4432_Register((REG_WRITE | PreambleDetectionControl), 0x10); //8bit
IA4432_Register((REG_WRITE | SyncWord3), 0x2d);
IA4432_Register((REG_WRITE | SyncWord2), 0xd4);
//IA4432_Register((REG_WRITE | TransmitPacketLength), 0x40);
IA4432_Register((REG_WRITE | DataAccessControl), 0x88); //enable TX handling
IA4432_Register((REG_WRITE | IFFilterBandwidth), 0x03); //BW=90kHZ
IA4432_Register((REG_WRITE | ClockRecoveryOversamplingRatio), 0xa1);
IA4432_Register((REG_WRITE | ClockRecoveryOffset2), 0x20);
IA4432_Register((REG_WRITE | ClockRecoveryOffset1), 0x4e);
IA4432_Register((REG_WRITE | ClockRecoveryOffset0), 0xa5);
IA4432_Register((REG_WRITE | ClockRecoveryTimingLoopGain1), 0x00);
IA4432_Register((REG_WRITE | ClockRecoveryTimingLoopGain0), 0x36);
IA4432_Register((REG_WRITE | TXDataRate1), 0x02); //9600BPS
IA4432_Register((REG_WRITE | TXDataRate0), 0x75);
IA4432_Register((REG_WRITE | FrequencyDeviation), 0x48);
IA4432_Register((REG_WRITE | ClockRecoveryGearshiftOverride), 0x13);
IA4432_Register((REG_WRITE | GPIO0Configuration), 0x1f);
IA4432_Register((REG_WRITE | GPIO1Configuration), 0x12); //GPIO_1 TX state
IA4432_Register((REG_WRITE | GPIO2Configuration), 0x15); //GPIO_2 RX state
IA4432_Register((REG_WRITE | OperatingControl2), 0x02);
IA4432_Register((REG_WRITE | OperatingControl2), 0x00);
IA4432_Register((REG_WRITE | InterruptEnable1), 0x02);
}
void RF_R(unsigend char *d)
{
unsigned char index,yyy,ttt;
IA4432_Register((REG_WRITE | OperatingControl2), 0x02);
IA4432_Register((REG_WRITE | OperatingControl2), 0x00);
IA4432_Register((REG_WRITE | OperatingControl1), 0x05);
while(1)
{
yyy = IA4432_Register((REG_READ | InterruptStatus1),0x00);
if(yyy&0x02) break;
}
IA4432_Register((REG_WRITE | OperatingControl1), 0x01);
ttt = IA4432_Register((REG_WRITE | ReceivedPacketLength), 0x00);
for(index=0;index<tt;index++)
{
d[index]=IA4432_Register((REG_READ | FIFOAccess),0x00);
}
}
void RF_T(unsigned char *d,unsigned char l)
{
unsigned char i;
IA4432_Register((REG_WRITE | OperatingControl1), 0x01);
IA4432_Register((REG_WRITE | OperatingControl2), 0x01);
IA4432_Register((REG_WRITE | OperatingControl2), 0x00);
IA4432_Register((REG_WRITE | InterruptEnable1), 0x00);
IA4432_Register((REG_WRITE | InterruptEnable2), 0x00);
IA4432_Register((REG_WRITE | TransmitPacketLength),l);
for(i=0;i<l;i++)
{
IA4432_Register((REG_WRITE | FIFOAccess),*d);
d++;
}
IA4432_Register((REG_WRITE | OperatingControl1), 0x09);
IA4432_Register((REG_WRITE | InterruptEnable1), 0x04); //使能發送有效包中斷
while((IA4432_Register((REG_READ | InterruptStatus1), 0x00)&0x04)==0);
}


回復

使用道具 舉報

ID:74862 發表于 2015-6-16 14:38 | 顯示全部樓層
沒有上傳就發了
回復

使用道具 舉報

ID:73848 發表于 2015-6-17 11:40 來自手機 | 顯示全部樓層
樓主能不能介紹一下這個模塊呀
回復

使用道具 舉報

ID:63094 發表于 2015-6-21 19:43 | 顯示全部樓層
那里啊
回復

使用道具 舉報

ID:1 發表于 2015-6-22 23:22 | 顯示全部樓層

樓主,在回帖的時候點 高級模式  或者 編輯主題帖 均可上傳附件  謝謝
回復

使用道具 舉報

ID:364014 發表于 2018-7-3 15:08 | 顯示全部樓層
好東西,我正在用它
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 91在线精品视频 | 不卡视频在线 | 麻豆精品国产91久久久久久 | 久久精品日产第一区二区三区 | 午夜久久久久久久久久一区二区 | 国产sm主人调教女m视频 | 国产伦精品一区二区三毛 | 日韩精品一区二区三区在线观看 | 草久久久| 国产精品久久精品 | 中文字幕在线一区二区三区 | 一区二区三区四区免费视频 | 欧美极品少妇xxxxⅹ免费视频 | 国产精品久久久久久久久久久久久 | 激情91| 99精品视频网 | 日韩一区二区在线播放 | 欧美成人精品二区三区99精品 | 国产一区二区三区精品久久久 | 成人在线不卡 | 久久亚洲一区二区三 | 免费观看www| 欧美看片| 中文字幕一区在线观看视频 | 在线小视频 | 男人的天堂中文字幕 | 丁香婷婷久久久综合精品国产 | 欧美一区二区三区四区五区无卡码 | 成年人网站在线观看视频 | 欧美综合一区二区 | 亚洲精品成人av | 亚洲成人免费在线 | 日本精品久久 | 国产精品国产亚洲精品看不卡15 | 欧美日韩一本 | 成人在线视频网址 | 日韩三级在线 | 91精品www | 黄色大片视频 | 亚洲日本成人 |