nRF24L01芯片控制——邁向無線的第一步


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM