




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、RF24L01無(wú)線(xiàn)通訊模塊開(kāi)發(fā)指南作者胡文明一、模塊介紹RF24L01模塊有兩個(gè)型號(hào):RF24L01B和RF24L01SERF24L01B(PCB板載天線(xiàn)) (尺寸:37mm*18mm*1.6mm)RF24L01SE (外置天線(xiàn))(尺寸:30mm*18mm*1.6mm)RF24L01特點(diǎn):(1) 2.4Ghz 全球開(kāi)放ISM 頻段免證使用(2) 最高工作速率2Mbps,高效GFSK調(diào)制,適合工業(yè)控制場(chǎng)合能力強(qiáng),特別(3)(4)(5)126 頻道,滿(mǎn)足多點(diǎn)通信和跳頻通信需要 內(nèi)置硬件CRC 檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制低功耗1.9 - 3.6V 工作,待機(jī)模式下?tīng)顟B(tài)為22uA;掉電模式下為900n
2、A內(nèi)置2.4Ghz 天線(xiàn),體積小巧 34mm X 17mm模塊可軟件設(shè)地址,只有收到本機(jī)地址時(shí)才會(huì)輸出數(shù)據(jù)(提供中斷指示),可直接接各種單片機(jī)使用,軟件編程非常方便內(nèi)置專(zhuān)門(mén)穩(wěn)壓電路,使用各種電源包括DC/DC 開(kāi)關(guān)電源均有很好的通信效果(9) 標(biāo)準(zhǔn)DIP間距接口,便于應(yīng)用(10) 工 作 于 EnhancedShockBurst具 有 Automaticpackethandling, Auto packet tranion handling,具有可選的內(nèi)置包應(yīng)答機(jī)制,極大的降低丟包率。與51系列單片機(jī)P0口連接時(shí)候,需要加10K的上拉電阻,與其余口連接不需要。其他系列的單片機(jī),如果是5V的,請(qǐng)
3、參考該系列單片機(jī) IO口輸出電流大小,如果超過(guò)10mA,需要串聯(lián)電阻分壓,否則容易燒毀模塊! 如果是3.3V的,可以直接和RF2401模塊的IO口線(xiàn)連接。比如AVR系列單片機(jī)如果是5V的,一般串接2K的電阻。二、接口電路說(shuō)明:(1) VCC腳接電壓范圍為1.9V3.6V之間,不能在這個(gè)區(qū)間之外,超過(guò)3.6V將會(huì)燒毀模塊。電壓3.3V左右。除電源VCC和接地端,其余腳都可以直接和普通的5V單片機(jī) IO口直接相連,無(wú)需電平轉(zhuǎn)換。當(dāng)然對(duì)3V左右的單片機(jī)更加適用了。硬件上面沒(méi)有SPI的單片機(jī)也可以控制本模塊,用普通單片機(jī)IO口模擬SPI不需要單片機(jī)真正的串口介入,只需要普通的單片機(jī)IO口就可以了,當(dāng)然
4、用串口也可以了。9腳接地腳,需要和母板的邏輯地連接起來(lái);2腳和9腳懸空。排針間距為100mil,標(biāo)準(zhǔn)DIP插針,如果需要其他封裝接口,比如密腳插針,或者其他形式的接口,可以們定做。三、模塊結(jié)構(gòu)和引腳說(shuō)明模塊使用公司的 RF24L01開(kāi)發(fā)而成。四、工作方式RF24L01有工作模式有四種:收發(fā)模式配置模式空閑模式關(guān)機(jī)模式工作模式由PWR_UP見(jiàn)下表。register、PRIM_RX register和CE決定,詳4.1 收發(fā)模式收 發(fā) 模 式 有 EnhancedShockBurstTM 收 發(fā) 模 式 、ShockBurstTM收發(fā)模式和直接收發(fā)模式三種,收發(fā)模式由器件配置字決定,具體配置將在器
5、件配置部分詳細(xì)介紹。4.1.1 EnhancedShockBurstTM收發(fā)模式EnhancedShockBurstTM收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),數(shù)據(jù)低速?gòu)奈⒖刂破魉腿?,但高?1Mbps)發(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。與射頻協(xié)議相關(guān)的所有高速信號(hào)處理都在片內(nèi)進(jìn)行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費(fèi)用(低速微處理器也能進(jìn)行高速射頻發(fā)射);數(shù)據(jù)在空中停留時(shí)間短,抗干擾性高。Enhanced平均工作電流。在Enhanced理字頭和CRCShockBurstTM技術(shù)同時(shí)也減小了整個(gè)系統(tǒng)的ShockBurstTM收發(fā)模式下, RF24
6、L01自動(dòng)處。在接收數(shù)據(jù)時(shí),自動(dòng)把字頭和CRC移去。在發(fā)送數(shù)據(jù)時(shí),自動(dòng)加上字頭和CRC置CE為高,至少10us,將時(shí)發(fā)送過(guò)程完成后。,在發(fā)送模式下,4.1.1.1 Enhanced ShockBurstTM發(fā)射流程A. 把的地址和要發(fā)送的數(shù)據(jù)按時(shí)序送入RF24L01;B. 配置CONFIG寄存器,使之進(jìn)入發(fā)送模式。 C. 微控制器把CE置高(至少10us),激發(fā)RF24L01進(jìn)行Enhanced ShockBurstTM發(fā)射; D. RF24L01的Enhanced ShockBurstTM發(fā)射(1) 給射頻前端供電;(2)射頻數(shù)據(jù)打包(加字頭、CRC);(3)高速發(fā)射數(shù)據(jù)包;(4)發(fā)射完成,
7、RF24L01進(jìn)入空閑狀態(tài)。4.1.1.2 EnhancedShockBurstTM接收流程 A. 配置本機(jī)地址和要接收的數(shù)據(jù)包大小; B. 配置CONFIG寄存器,使之進(jìn)入接收模式,把CE置高。C. 130us后,RF24L01進(jìn)入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來(lái); D. 當(dāng)接收到正確的數(shù)據(jù)包(正確的地址和CRC字頭、地址和CRC校驗(yàn)位移去;),RF2401自動(dòng)把E. RF24L01通過(guò)把SUS寄存器的RX_DR置位(SUS一般引起微控制器中斷)通知微控制器; F. 微控制器把數(shù)據(jù)從RF2401讀出; G. 所有數(shù)據(jù)完畢后,可以清除SUS寄存器。RF2401可以進(jìn)入四種主要的模式之一。4.1.2S
8、hockBurstTM收發(fā)模式ShockBurstTM收發(fā)模式可以與Nrf2401a,02,E1及E2兼容,具體表述前看本公司的-RF2401文檔。4.2 空閑模式RF24L01的空閑模式是為了減小平均工作電流而設(shè)計(jì),其最大的優(yōu)點(diǎn)是,實(shí)現(xiàn)節(jié)能的同時(shí),縮短的起動(dòng)時(shí)間。在空閑模式下,部分片內(nèi)晶振仍在工作,此時(shí)的工作電流跟外部晶振的頻率有關(guān)。4.4 關(guān)機(jī)模式在關(guān)機(jī)模式下,為了得到最小的工作電流,一般此時(shí)的工作電流為900nA左右。關(guān)機(jī)模式下,配置字的內(nèi)容也會(huì)被保持在RF2401片內(nèi),這是該模式與斷電狀態(tài)最大的區(qū)別。五、配置RF24L01模塊RF2401的所有配置工作都是通過(guò)SPI完成,共有30字節(jié)的
9、配置字。RF24L01工作于EnhancedShockBurstTM 收發(fā)模式,這種工作模式下,系統(tǒng)的程序編制會(huì)更加簡(jiǎn)單,并且穩(wěn)定性也會(huì)更高,因此,下文著重介紹把RF24L01配置為EnhancedShockBurstTM收發(fā)模式的器件配置方法。ShockBurstTM的配置字使RF24L01能夠處理射頻協(xié)議,在配置完成后,在RF24L01工作的過(guò)程中,只需改變其最低一個(gè)字節(jié)中的內(nèi)容,以實(shí)現(xiàn)接收模式和發(fā)送模式之間切換。ShockBurstTM的配置字可以分為以下四個(gè)部分:數(shù)據(jù)寬度:射頻數(shù)據(jù)包中數(shù)據(jù)占用的位數(shù)。這使得RF24L01能夠區(qū)分接收數(shù)據(jù)包中的數(shù)據(jù)和CRC;地址寬度:射頻數(shù)據(jù)包中地址占用
10、的位數(shù)。這使得RF24L01能夠區(qū)分地址和數(shù)據(jù);地址:接收數(shù)據(jù)的地址,有通道0到通道5的地址;CRC:使RF24L01能夠生成CRC和。當(dāng)使用RF24L01片內(nèi)的CRC技術(shù)時(shí),要確保在配置字(CONFIG的EN_CRC)中CRC校驗(yàn)被使能,并且發(fā)送和接收使用相同的協(xié)議。RF24L01配置字的CONFIG寄存器的位描述如下表所示。RF24L01 CONFIG配置字描述六、參考源代碼#include / sbitMISO =P13;sbitMOSI =P14;sbit SCK sbit CE sbit CSN sbit IRQ=P15;=P16;=P37;=P12;sbit sbit sbit s
11、bitLED2 LED1 KEY1 KEY2=P35;=P34;=P30;=P31;/ SPI(nRF24L01)#define READ_REG #define WRITE_REG #define RD_RX_PLOAD #define WR_TX_PLOAD #define FLUSH_TX #define FLUSH_RX #define REUSE_TX_PL #define NOPregisterds0 x000 x200 x610 xA00 xE10 xE20 xE30 xFF/ Define read/ Define writed to register d to registe
12、r/ Define RX payload register address/ Define TX payload register address/ Define flush TX register/ Define flush RX registerd d/ Define reuse TX payload registerd/ Define No Operation, might be used to read sus/*/ SPI(nRF24L01) registers(addresses)#define CONFIG #define EN_AA #define EN_RXADDR0 x00
13、0 x010 x020 x030 x040 x050 x060 x070 x080 x090 x0A0 x0B0 x0C0 x0D0 x0E0 x0F0 x100 x110 x120 x130 x140 x15/ Config register address/ Enable Auto Acknowledgment register address/ Enabled RX addresses register address/ Setup address width register address/ Setup Auto. Retrans register address/ RF chann
14、el register address/ RF setup register address#def #defTUP_AW TUP_RETR#define RF_CH#define RF_SETUP#define SUS/ Sus register address#define OBSERVE_TX #define CD#define RX_ADDR_P0 #define RX_ADDR_P1 #define RX_ADDR_P2 #define RX_ADDR_P3 #define RX_ADDR_P4 #define RX_ADDR_P5 #define TX_ADDR #define R
15、X_PW_P0 #define RX_PW_P1 #define RX_PW_P2 #define RX_PW_P3 #define RX_PW_P4/ Observe TX register address/ Carrier Detect register address/ RX address pipe0 register address/ RX address pipe1 register address/ RX address pipe2 register address/ RX address pipe3 register address/ RX address pipe4 regi
16、ster address/ RX address pipe5 register address/ TX address register address/ RX payload width, pipe0 register address/ RX payload width, pipe1 register address/ RX payload width, pipe2 register address/ RX payload width, pipe3 register address/ RX payload width, pipe4 register address#define RX_PW_
17、P50 x16/ RX payload width, pipe5 register address#defineFIFO_SUS0 x17/FIFOSusRegisterregisteraddress/-/ 寫(xiě)一個(gè)字節(jié)到24L01,同時(shí)讀出一個(gè)字節(jié)uchar SPI_RW(uchar byte)uchar bit_ctr;for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bitMOSI = (byte & 0 x80); byte = (byte 1); SCK = 1;byte |= MISO; SCK = 0;return(byte);/ output
18、 byte, MSB to MOSI/ shift next bito MSB./ Set SCK high./ capture current MISO bit/ .then set SCK low again/ return read byte/向寄存器reg寫(xiě)一個(gè)字節(jié),同時(shí)返回狀態(tài)字節(jié)uchar SPI_RW_Reg(BYTE reg, BYTE value)uchar sus;CSN = 0;/ CSN low, init SPI tran/ select register/ .and write value to it./ CSN high againionsus = SPI_RW(
19、reg);SPI_RW(value); CSN = 1;return(sus);/ return nRF24L01 sus byte/ 讀出bytes字節(jié)的數(shù)據(jù)uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)uchar sus,byte_ctr;CSN = 0;us = SPI_RW(reg);/ Set CSN low, init SPI tranaction/ Select register to write to and read sus bytefor(byte_ctr=0;byte_ctrbytes;byte_ctr+)pBuf
20、byte_ctr = SPI_RW(0);/CSN = 1;return(sus);/ return nRF24L01 sus byte/ 寫(xiě)入bytes字節(jié)的數(shù)據(jù)uchar SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)uchar sus,byte_ctr;CSN = 0;sus = SPI_RW(reg);for(byte_ctr=0; byte_ctrbytes; byte_ctr+) / SPI_RW(*pBuf+);CSN = 1;return(/ Set CSN high againus);/ 接收函數(shù),返回1表示有數(shù)據(jù)收到,否則沒(méi)有
21、數(shù)據(jù)接受到unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)unsigned char revale=0;/ set in RX modeSPI_RW_Reg(WRITE_REG + CONFIG, 0 x0f);bytes) & Prim:RX. RX_DR enabled.CE = 1; / Set Cn high to enable RX device dalay130us();/ Set PWR_UP bit, enable CRC(2sta=SPI_Read(SUS); / read register SUSs valueif
22、(RX_DR)CE = 0;/ if receive data ready (RX_DR)errupt/ stand by modeSPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/ read receive payloadfrom RX_FIFO buffer revale =1;SPI_RW_Reg(WRITE_REG+Serrupt flagUS,sta);/ clear RX_DR or TX_DS or MAX_RTreturn revale;/ 發(fā)送函數(shù)void nRF24L01_TxPacket(unsigned char * tx
23、_buf)CE=0;/SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);Writes TX_Address to nRF24L01/SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); /RX_Addr0 same as TX_Adr for Auto.AckSPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / Writes dao TXpayloadSPI_RW_Reg(WRITE_REG +
24、 CONFIG, 0 x0e);/ Set PWR_UP bit, enable CRC(2bytes) & Prim:TX. MAX_RT & TX_DS enabled. CE=1;dalay10us(); CE=0;/ 配置函數(shù)void nRF24L01_Config(void)/initial ioCE=0;/ chip enableCSN=1;/ SisableSCK=0; CE=0;/ Spi clock line init highSPI_RW_Reg(WRITE_REG + CONFIG, 0 x0f);/ Set PWR_UP bit, enable CRC(2bytes) & Prim:RX. RX_DR enabled.SPI_RW_Reg(WRITE_REG + EN_AA, 0 x01);SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0 x01);/ Enablpe0SPI_RW_Reg(WRITE_REG + SETUP_AW, 0 x02);/ Setup address width=5 bytes S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲行業(yè)勞動(dòng)合同風(fēng)險(xiǎn)防范
- 三方房產(chǎn)抵押擔(dān)保抵押合同文本
- 企業(yè)貸款合同協(xié)議
- 化工產(chǎn)品運(yùn)輸合同運(yùn)輸合同
- 房屋轉(zhuǎn)讓抵債合同模板
- 商業(yè)貸款抵押合同書(shū)示例
- 獵頭發(fā)服務(wù)合作合同 版
- 游艇代理合同
- 藥品研發(fā)工程師聘用合同
- 房屋租賃合同糾紛保全擔(dān)保合同
- 20馬工程教材《公共財(cái)政概論》-第十章-公課件
- 新建校區(qū)工程監(jiān)理質(zhì)量控制手冊(cè)含流程圖
- 小兒急性中毒的處理與急救
- 非遺傳統(tǒng)文化課件
- 橋梁施工常見(jiàn)問(wèn)題及預(yù)防控制要點(diǎn)(PPT,46)
- 中俄文一般貿(mào)易合同范本
- 知情同意書(shū)核查要點(diǎn)課件
- 廣東省深圳市2021-2022學(xué)年高二下學(xué)期期末考試 語(yǔ)文 Word版含解析
- 專(zhuān)項(xiàng)施工方案專(zhuān)家論證意見(jiàn)回復(fù)表
- 《醫(yī)古文》教學(xué)全套課件580頁(yè)
- 水電廠(chǎng)計(jì)算機(jī)監(jiān)控系統(tǒng)改造技術(shù)要求
評(píng)論
0/150
提交評(píng)論