模塊套件的學習nrf24系列nrf24l_第1頁
模塊套件的學習nrf24系列nrf24l_第2頁
模塊套件的學習nrf24系列nrf24l_第3頁
模塊套件的學習nrf24系列nrf24l_第4頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、NRF24L01說明書MSN:yunjSkype:yunjiakeji市南山區(qū)新圍 30 號地址:省公司:http:/2008 年 12 月 20 日:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術一、模塊介紹(1) 2.4Ghz 全球開放ISM 頻段免證使用(2) 最高工作速率2Mbps,高效GFSK調(diào)制,能力強,特別適合工業(yè)控制場合(3) 126 頻道,滿足多點通信和跳頻通信需要(4) 內(nèi)置硬件CRC 檢錯和點對多點通信地址控制(5) 低功耗1.9 - 3.6V 工作,待機模式下狀態(tài)為22uA;掉電

2、模式下為900nA(6) 內(nèi)置2.4Ghz 天線,體積小巧 34mm X 17mm(7) 模塊可設地址,只有收到本機地址時才會輸出數(shù)據(jù)(提供中斷指示),可直接接各種單片機使用,編程非常方便(8) 內(nèi)置專門穩(wěn)壓電路,使用各種電源包括DC/DC 開關電源均有很好的通信效果(9) 標準DIP間距接口,便于應用(10)工作于Enhanced ShockBurst 具有Automatic packethandling, Auto packet tranion handling,具有可選的內(nèi)置包應答機制,極大的降低丟包率。與51系列單片機P0口連接時候,需要加10K的上拉電阻,與其余口連接不需要。其他系列

3、的單片機,如果是5V的,請參考該系列單片機IO口輸出電流大小,如果超過10mA,需要串聯(lián):http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術電阻分壓,否則容易燒毀模塊! 如果是3.3V的,可以直接和RF2401模塊的IO口線連接。比如AVR系列單片機如果是 5V 的,一般串接 2K 的電阻二、接口電路說明:(1) VCC腳接電壓范圍為1.9V3.6V之間,不能在這個區(qū)間之外,超過3.6V將會燒毀模塊。電壓3.3V左右。(2) 除電源VCC和接地端,其余腳都可以直接和普通的5V單片機IO口直接相連,無需電平轉

4、換。當然對3V左右的單片機更加適用了。(3) 硬件上面沒有SPI的單片機也可以控制本模塊,用普通單片機IO口模擬SPI不需要單片機真正的串口介入,只需要普通的單片機IO口就可以了,當然用串口也可以了。:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術三、模塊結構和引腳說明NRF24L01 模塊使用公司的RF24L01開發(fā)而成。:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術四、工作方式NRF2401有工作模式有四種

5、:收發(fā)模式配置模式空閑模式關機模式工作模式由PWR_UP register、PRIM_RX register和CE決定,詳見下表:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術4.1 收發(fā)模式收發(fā)模式有Enhanced ShockBurstTM收發(fā)模式、ShockBurstTM收發(fā)模式和直接收發(fā)模式三種,收發(fā)模式由器件配置字決定,具體配置將在器件配置部分詳細介紹。4.1.1 Enhanced ShockBurstTM收發(fā)模式Enhanced ShockBurstTM收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),

6、數(shù)據(jù)低速從微控制器送入,但高速(1Mbps)發(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。與射頻協(xié)議相關的所有高速信號處理都在片內(nèi)進行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費用(低速微處理器也能進行高速射頻發(fā)射);數(shù)據(jù)在空中停留時間短,性高。Enhanced ShockBurstTM技術同時也減小了整個系統(tǒng)的平均工作電流。在Enhanced ShockBurstTM收發(fā)模式下, NRF24L01自動處理字頭和CRC。在接收數(shù)據(jù)時,自動把字頭和CRC移去。在發(fā)送數(shù)據(jù)時,自動加上字頭和CRC,在發(fā)送模式下,置CE為高,至少10us,將時發(fā)送過程完成后。 Enha

7、nced ShockBurstTM發(fā)射流程A.的地址和要發(fā)送的數(shù)據(jù)按時序送入NRF24L01;把B.配置CONFIG寄存器,使之進入發(fā)送模式。C. 微控制器把CE置高(至少10us),激發(fā)NRF24L01進行Enhanced ShockBurstTM發(fā)射; D.N24L01的Enhanced ShockBurstTM發(fā)射(1) 給射頻前端供電; (2):http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術射頻數(shù)據(jù)打包(加字頭、CRC); (3) 高速發(fā)射數(shù)據(jù)包; (4)發(fā)射完成,NRF24L01進入空閑狀態(tài)。

8、 Enhanced ShockBurstTM接收流程 A. 配置本機地址和要接收的數(shù)據(jù)包大??;B. 配置CONFIG寄存器,使之進入接收模式,把CE置高。C. 130us后,NRF24L01進入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來; D.當接收到正確的數(shù)據(jù)包(正確的地址和CRC),NRF2401自動把字頭、地址和CRC校驗位移去;E. NRF24L01通過把SUS寄存器的RX_DR置位(SUS一般引起微控制器中斷)通知微控制器;F. 微控制器把數(shù)據(jù)從 NewMsg_RF2401 讀出;G. 所有數(shù)據(jù)完畢后,可以清除SUS寄存器。NRF2401可以進入四種主要的模式之一。4.1.2 ShockBurstT

9、M收發(fā)模式ShockBurstTM收發(fā)模式可以與Nrf2401a,02,E1及E2兼容,具體表述前看本公司的N-RF2401文檔。4.2 空閑模式NRF24L01的空閑模式是為了減小平均工作電流而設計,其最大的優(yōu)點是,實現(xiàn)節(jié)能的同時,縮短的起動時間。在空閑模式下,部分片內(nèi)晶振仍在工作,此時的工作電流跟外部晶振的頻率有關。4.4 關機模式在關機模式下,為了得到最小的工作電流,一般此時的工作電流為:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術900nA左右。關機模式下,配置字的內(nèi)容也會被保持在NRF240

10、1片內(nèi),這是該模式與斷電狀態(tài)最大的區(qū)別。五、配置NRF24L01模塊NRF2401的所有配置工作都是通過SPI完成,共有30字節(jié)的配置字。NRF24L01工作于Enhanced ShockBurstTM 收發(fā)模式,這種工作模式下,系統(tǒng)的程序編制會更加簡單,并且穩(wěn)定性也會更高,因此,下文著重介紹把NRF24L01配置為Enhanced ShockBurstTM收發(fā)模式的器件配置方法。ShockBurstTM的配置字使NRF24L01能夠處理射頻協(xié)議,在配置完成后,在NRF24L01工作的過程中,只需改變其最低一個字節(jié)中的內(nèi)容,以實現(xiàn)接收模式和發(fā)送模式之間切換。ShockBurstTM的配置字可以

11、分為以下四個部分:射頻數(shù)據(jù)包中數(shù)據(jù)占用的位數(shù)。這使得NRF24L01數(shù)據(jù)寬度:能夠區(qū)分接收數(shù)據(jù)包中的數(shù)據(jù)和CRC;地址寬度:射頻數(shù)據(jù)包中地址占用的位數(shù)。這使得NRF24L01能夠區(qū)分地址和數(shù)據(jù);地址:接收數(shù)據(jù)的地址,有通道0到通道5的地址;CRC:使NRF24L01能夠生成CRC和。當使用NRF24L01片內(nèi)的CRC技術時,要確保在配置字(CONFIG的EN_CRC):http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術中CRC校驗被使能,并且發(fā)送和接收使用相同的協(xié)議。NRF24L01配置字的CONFIG寄存

12、器的位描述如下表所示。NRF24L01 CONFIG 配置字描述六、參考源代碼參考源代碼#include / sbit MISO =P13;sbit MOSI =P14; sbit SCK =P15; sbit CE =P16; sbit CSN =P37; sbit IRQ =P12; sbit LED2 =P35; sbit LED1 =P34; sbit KEY1 =P30;sbit KEY2 =P31;/ SPI(nRF24L01)ds#define READ_REG 0 x00 / Define read#define WRITE_REG 0 x20 / Define writed

13、to registerd to register#define RD_RX_PLOAD 0 x61 / Define RX payload register address#define WR_TX_PLOAD 0 xA0 / Define TX payload register address:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術#define FLUSH_TX 0 xE1 / Define flush TX register#define FLUSH_RX 0 xE2 / Define f

14、lush RX registerdd#define REUSE_TX_PL 0 xE3 / Define reuse TX payload registerd#define NOP 0 xFF / Define No Operation, might be used to read sus register/*/ SPI(nRF24L01) registers(addresses)#define CONFIG 0 x00 / Config register address#define EN_AA 0 x01 / Enable Auto Acknowledgment register addr

15、ess #define EN_RXADDR 0 x02 / Enabled RX addresses register address#defi#defiTUP_AW0 x03 / Setup address width register addressTUP_RETR 0 x04 / Setup Auto. Retrans register address#define RF_CH 0 x05 / RF channel register address#define RF_SETUP 0 x06 / RF setup register address#define SUS 0 x07 / S

16、 us register address#define OBSERVE_TX 0 x08 / Observe TX register address #define CD 0 x09 / Carrier Detect register address#define RX_ADDR_P0 0 x0A / RX address pipe0 register address #define RX_ADDR_P1 0 x0B / RX address pipe1 register address #define RX_ADDR_P2 0 x0C / RX address pipe2 register

17、address #define RX_ADDR_P3 0 x0D / RX address pipe3 register address #define RX_ADDR_P4 0 x0E / RX address pipe4 register address #define RX_ADDR_P5 0 x0F / RX address pipe5 register address #define TX_ADDR 0 x10 / TX address register address#define RX_PW_P0 0 x11 / RX payload width, pipe0 register

18、address #define RX_PW_P1 0 x12 / RX payload width, pipe1 register address #define RX_PW_P2 0 x13 / RX payload width, pipe2 register address #define RX_PW_P3 0 x14 / RX payload width, pipe3 register address #define RX_PW_P4 0 x15 / RX payload width, pipe4 register address#define RX_PW_P5 0 x16 / RX p

19、ayload width, pipe5 register address#define FIFO_SUS 0 x17 / FIFO Sus Register register address/ 寫一個字節(jié)到24L01,同時讀出一個字節(jié)uchar SPI_RW(uchar byte)uchar bit_ctr;for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bitMOSI = (byte & 0 x80); / output byte, MSB to MOSIbyte = (byte 1); / shift next bitSCK = 1; / Set S

20、CK high.o MSB.byte |= MISO; / capture current MISO bit SCK = 0; / .then set SCK low again:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術return(byte); / return read byte/ 向寄存器reg寫一個字節(jié),同時返回狀態(tài)字節(jié)uchar SPI_RW_Reg(BYTE reg, BYTE value)uchar s us;CSN = 0; / CSN low, init SPI tranions

21、us = SPI_RW(reg); / select register SPI_RW(value); / .and write value to it.CSN = 1; / CSN high againreturn(s us); / return nRF24L01 sus byte/ 讀出bytes字節(jié)的數(shù)據(jù)uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)uchar s us,byte_ctr;CSN = 0; / Set CSN low, init SPI tranactionsus = SPI_RW(reg); / Select re

22、gister to write to and read s for(byte_ctr=0;byte_ctrbytes;byte_ctr+)pBufbyte_ctr = SPI_RW(0); / CSN = 1;return(s us); / return nRF24L01 sus byte/ 寫入bytes字節(jié)的數(shù)據(jù)uchar SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)uchar s us,byte_ctr; CSN = 0;sus = SPI_RW(reg);for(byte_ctr=0; byte_ctrbytes; byte_ctr+)

23、 / SPI_RW(*pBuf+);CSN = 1; / Set CSN high again return(s us); /us byte/ 接收函數(shù),返回1表示有數(shù)據(jù)收到,否則沒有數(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); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled.CE= 1; /

24、 Set Cn high to enable RX devicedalay130us();:http:/(1)81069762(滿)無線技術無線技術(2)65332649無線技術71693650(滿)(3)81070007無線技術sta=SPI_Read(SUS); / read register SUSs valueerruptif(RX_DR) / if receive data ready (RX_DR)CE= 0; / stand by modeSPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/ read receive payload

25、from RX_FIFO bufferrevale =1;SPI_RW_Reg(WRITE_REG+Sflagreturn revale;/ 發(fā)送函數(shù)US,sta);/ clear RX_DR or TX_DS or MAX_RTerruptvoid nRF24L01_TxPacket(unsigned char* tx_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

26、_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 TX payloadSPI_RW_Reg(WRITE_REG + CONFIG, 0 x0e); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.CE=1;dalay10us(); CE=0;/ 配置函數(shù)void nRF24L01_Config(void)/initial ioCE=0; / chip enableCSN=1; / SisableSC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論