nRF24L01芯片是一款專供單片機的射頻收發芯片。工作于2.4GHz~2.5GHz ISM頻段。融合了shockburst技術。
我先列出該芯片的硬件參數資料:
至于每個引腳的具體用途,可以參見技術手冊。
nrf24l01p.png (115.05 KB, 下載次數: 63)
下載附件
2018-9-6 11:05 上傳
一個nRF24L01簡易發射系統應該具有以電路:最小系統電路,供電系統,下載程序接口,5v轉3.3v電路,nRF24L01模塊接口等等
24L01.png (446.5 KB, 下載次數: 62)
下載附件
2018-9-6 11:06 上傳
上面是nRF24L01模塊的電路原理圖,實話說我現在的能力不足,還無法指出各部分電路的作用,因此在這里就不多做解釋了。不過我還是盡可能的給出芯片的一些參數,電路設計的時候不要違背這些參數。
最小系統加載芯片后的電路圖
nrf24l01p11.png (83.22 KB, 下載次數: 54)
下載附件
2018-9-6 11:08 上傳
OK硬件的知識我們說到這里,下面來看一看軟件的實現。我已經在截圖中解釋的很清楚了,但是仍然有必有對于一些新手做一些拓展性的指導,因為這將可能使你進一步了解通信這個行業。在我看來,使用一個芯片是一件十分容易的事情,并且當你使用芯片越來越多的時候你就會覺得越來越輕松。我們正在寫的這個無線通信協議,在我看來一共只有兩個問題在困擾我們:1配置,2數據傳輸。當我們配置好模式之后,我們只需要給芯片我們要傳輸的數據即可。那么我們該如何配置芯片的參數呢?先來想一想無線發射的一些基本問題(這里加入了一些安全性的保證): 1我需要知道發射和接受端的地址,2我需要有一個應答機制,這樣會保證我的數據傳輸的準確性,那么我怎么實現這個機制呢?通信原理中要求我先配置應答模式,其次我需要配置未產生應答是的工作方式。3這個是關于24L01的自身設定了,該芯片具有六個通信信道,我要設置具體哪個信道在工作。4關于傳輸的問題,我應該要求一次性傳輸幾個字節。這些都是必須要規定的,當然在下面我的代碼中也確確實實的配置了這幾個方面的東西。
下面是關于24L01的模式配置過程:
另外關于通信的一個最簡單問題就是SPI通信協議,這個相信學習通信的小伙伴們應該不會不知道才對,這里我只提供了用單片機模擬SPI通信的一段代碼,至于想深入了解SPI的請出門右轉。大家都看到了,我在配置這個芯片的同時需要一個寫入狀態的函數,那么這個函數是什么樣子的呢?
這里有些命令我寫在宏定義中,可能你看不到了,不過沒關系,這種東西網上多的是嘛,度年會很親切的。
配置模式已經完畢了,下面來看一下數據的發送和接受:
nrf24l01p12.png (115.12 KB, 下載次數: 58)
下載附件
2018-9-6 11:09 上傳
從這里我可以看出,其實當擁有了裝載數據的函數之后,發射都是十分簡單的事情,主要我們把數據裝載到芯片中就可以了,那么這個裝載的SPI函數是什么呢?
技術支持:13682455391
|