找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3227|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于c8051f330單片機(jī)的nrf24l01使用文檔(共21頁(yè))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
個(gè)人感覺(jué)難以捉摸

芯片簡(jiǎn)介
NRF24L01 是 NORDIC 公司最近生產(chǎn)的一款無(wú)線通信通信芯片,采用 FSK 調(diào)制,內(nèi)部集成 NORDIC 自己的 Enhanced Short Burst  協(xié)議?梢詫(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或是 1對(duì) 6 的無(wú)線通信。無(wú)線通信速度可以達(dá)到 2M(bps) 。NORDIC 公司提供通信模塊的 GERBER 文件,可以直接加工生產(chǎn)。嵌入式工程師或是單片機(jī)愛(ài)好者只需要為單片機(jī)系統(tǒng)預(yù)留 5 個(gè) GPIO,1 個(gè)中斷輸入引腳,就可以很容易實(shí)現(xiàn)無(wú)線通信的功能,非常適合用來(lái)為 MCU系統(tǒng)構(gòu)建無(wú)線通信功能。


5  實(shí)際通信過(guò)程示波器圖
對(duì)于NRF24L01 的編程主要是通過(guò)命令(WRITE_REG,READ_REG等等) ,控制線CE、CSN)以及中斷信號(hào) IRQ共同完成的。 對(duì)于發(fā)射節(jié)點(diǎn),如果使能 ACK 與 IRQ 功能,則當(dāng)通信成功以后(也就是發(fā)射節(jié)點(diǎn)收到了接收節(jié)點(diǎn)送回的ACK信號(hào))IRQ線會(huì)置低。 對(duì)于接收節(jié)點(diǎn),如果使能ACK與IRQ功能,則當(dāng)通信成功以后(主要是根據(jù)Enhanced ShockBurst協(xié)議認(rèn)為成功收到了有效數(shù)據(jù)寬度的數(shù)據(jù)) IRQ線會(huì)置低。  根據(jù)以上兩種情況,用示波器抓了以下幾個(gè)圖形,分別介紹如下:

1)發(fā)射節(jié)點(diǎn) CE 與 IRQ 信號(hào)

黃色信號(hào)是 CE,綠色信號(hào)是IRQ,當(dāng)把節(jié)點(diǎn)配置為發(fā)射節(jié)點(diǎn)以后,將要傳送的數(shù)據(jù)通過(guò)  SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)函數(shù)送到發(fā)送 FIFO 緩沖區(qū)。CE 為高超過(guò) 10us,緩沖區(qū)中的數(shù)據(jù)通過(guò)無(wú)線向外發(fā)出。 如果使能 IQR 的全部功能(TX_DS,RX_DS,MAX_RT)當(dāng)發(fā)送節(jié)點(diǎn)收到接收節(jié)點(diǎn)發(fā)來(lái)的 ACK(表示接收節(jié)點(diǎn)成功收到信號(hào))或是達(dá)到最大發(fā)射次數(shù),IRQ 會(huì)變?yōu)榈碗娖,同時(shí) CONFIG 的相關(guān)標(biāo)志位()會(huì)置 1。清除標(biāo)志位(向 CONFIG 的標(biāo)志位寫(xiě)
1)以后,IRQ 又變?yōu)楦唠娖健?
從 FIG5.1 可以看出,CE 置高后將近 10msIRQ 才置低。IRQ 置低是由于達(dá)到最大發(fā)射次數(shù)(MAX_RT=1),出現(xiàn)該情況可能是由于接收節(jié)點(diǎn)的配置與發(fā)射節(jié)點(diǎn)不符(例如發(fā)射接收頻率不同,或者發(fā)射接收字節(jié)不等) ,或者根本就沒(méi)有接收節(jié)點(diǎn)(例如接收節(jié)點(diǎn)就根本沒(méi)上電) 。

2)SCK 與 IRQ 信號(hào)(發(fā)送成功)


Fig5.2 中綠色信號(hào)是 SCK,黃色信號(hào)是IRQ。第一批綠色信號(hào)表示節(jié)點(diǎn)的配置過(guò)程。 MOSI 信號(hào) (Fig5.2 中未顯示出) 在 SCK的下降延送入 24L01節(jié)點(diǎn)。 (配置一個(gè)寄存器需要兩組 SCK信號(hào),填充 N字節(jié)的 BUFFER需要 N+1 組SCK信號(hào)) 。
配置完信號(hào)以后,將 CE(Fig5.2 中未顯出)置高,則 24L01 開(kāi)始發(fā)送(或接收)數(shù)據(jù),當(dāng)發(fā)送(或接收)完成以后(或是達(dá)到最大發(fā)射次數(shù)) ,IRQ置低。單片機(jī)根據(jù)當(dāng)時(shí)的狀態(tài)進(jìn)行相應(yīng)的處理。
第二批綠色信號(hào)表示單片機(jī)在 IRQ 為低時(shí)對(duì) 24L01 的處理過(guò)程?梢允亲xFIFO(作為接收節(jié)點(diǎn)時(shí)) ,寫(xiě) FIFO(作為發(fā)射節(jié)點(diǎn)時(shí)) ,或是 Reset 24L01(達(dá)到最大發(fā)射次數(shù)時(shí)) 。
從Fig5.2可以看到, 從第一批SCK的最后一個(gè)信號(hào)到IRQ置低大概需要1ms(對(duì)比于 Fig5.1 的 12ms) ,說(shuō)明通信成功(說(shuō)明 IRQ不是 MAX_RT引起的) 。
3)SCK 與 IRQ 信號(hào)(發(fā)送不成功)


Fig5.3 與 Fig5.2 類似,只不過(guò)從第一批最后一個(gè) SCK 信號(hào)到 IRQ 置低的時(shí)間間隔變?yōu)閷⒔?0ms,表明通信部不成功,IRQ是由于達(dá)到最大發(fā)射次數(shù)引起的。

Fig5.4 中紫色信號(hào)是發(fā)射端 CE,綠色信號(hào)是接收端 IRQ,黃色信號(hào)是發(fā)射
端 IRQ。Fig5.4 表示如下邏輯:
發(fā)射節(jié)點(diǎn)在配置完成以后(配制過(guò)程 Fig5.2 未顯示) ,CE 置高,發(fā)射節(jié)點(diǎn) FIFO中的數(shù)據(jù)發(fā)出;接收節(jié)點(diǎn)成功接收到數(shù)據(jù),IRQ置低(從紫色信號(hào)與綠色信號(hào)之間的時(shí)間間隔可以判斷出通信成功) ;接收節(jié)點(diǎn)自動(dòng)發(fā)射 ACK(在發(fā)射和接收節(jié)點(diǎn)都使能 ACK) ,發(fā)射節(jié)點(diǎn)收到 ACK后 IRQ 置低,表示發(fā)送成功。 不同通信環(huán)境可能造成發(fā)射節(jié)點(diǎn)的IRQ與接收節(jié)點(diǎn)的IRQ產(chǎn)生將對(duì)的相位變化(表現(xiàn)在示波器上面就是黃色信號(hào)靠近綠色信號(hào)或者遠(yuǎn)離綠色信號(hào)) 。出現(xiàn)這種情況主要是由于不同的通信環(huán)境造成接收端發(fā)送的 ACK信號(hào)要重發(fā)幾次才能被發(fā)送端收到。

完整的pdf格式文檔51黑下載地址(共21頁(yè)):
NRF24L01功能使用文檔.pdf (650.05 KB, 下載次數(shù): 10)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表