|
近來一直在研究無線項(xiàng)目,其中的重點(diǎn)就是無線收發(fā)芯片,可以正常的發(fā)送接收數(shù)據(jù)了,無線項(xiàng)目的大難題也就解決了。于是開始收集各種無線收發(fā)芯片的資料,例如NRF24L01,CC1101,一些LoRa模塊還有一些超外差無線模塊等等,但是他們有著相同的問題,一是例如NRF24L01和CC1101之類的使用QFN封裝的模塊在自制上存在焊接困難度的問題,再就是這些模塊普遍都有著過于繁雜的外圍電路(一些電感電容),無法將其做到很小的體積。于是在查閱了很多資料后,有一款小巧的無線模塊進(jìn)入我的眼簾,就是LT8920。
先不談他的各項(xiàng)參數(shù)指標(biāo)相對(duì)其他模塊有什么優(yōu)劣,光是這個(gè)采用了SSOP16的引腳封裝就使得其焊接容易了許多。并且其簡潔的外圍電路著實(shí)易于制作,只需要一個(gè)晶振一個(gè)電容即可,這確實(shí)在焊接難度和外圍電路成本上秒殺其他芯片。于是我開始對(duì)這個(gè)芯片進(jìn)行了學(xué)習(xí),希望可以使用它做出一些項(xiàng)目。調(diào)試起來還是廢了一番周折,因?yàn)閺S家給出的數(shù)據(jù)手冊并不清楚,所以很多東西都是摸著石頭過河,在前前后后調(diào)試了大概3天左右,終于可以正常的收發(fā)數(shù)據(jù),下面我就分享一些學(xué)習(xí)的過程。
拿到一個(gè)新的芯片,想要了解他就一定要去下載數(shù)據(jù)手冊,一般在網(wǎng)上都可以找到,有中文的有英文的,遇到英文的數(shù)據(jù)手冊就需要具備一定的英語閱讀能力才可以理解清楚意思。這個(gè)芯片的數(shù)據(jù)手冊我也會(huì)放到文章的最后,大家可以下載來學(xué)習(xí)。
1.基本介紹
這款芯片使用的是2.4G頻段進(jìn)行通信,可以設(shè)置通信頻率,發(fā)射速率以及發(fā)射功率,電源使用2.2V到3.6V的電壓都可以,發(fā)射時(shí)電流在20毫安左右,接受電流在18毫安左右,可以說比較省電的一款芯片。芯片內(nèi)置倍頻電路,但是沒有內(nèi)置晶振,所以需要外接一顆12Mhz的晶振,晶振的補(bǔ)償電容芯片已經(jīng)內(nèi)置了,所以無需外接。對(duì)于芯片與MCU的通信方面,使用的是SPI總線協(xié)議,最高支持10Mhz的速度。為了更好的兼容一些低速的MCU,這款芯片內(nèi)置FIFO緩存器。
如下圖給出了典型應(yīng)用電路:
lt8920接線圖.png (24.86 KB, 下載次數(shù): 186)
下載附件
2019-4-14 16:35 上傳
2.通信代碼編寫
看完了這些參數(shù),我對(duì)這款芯片也有了一些了解,下面要做的就是編寫程序進(jìn)行通信了。我使用的是STC8單片機(jī)來對(duì)這個(gè)芯片進(jìn)行控制,由于模塊采用的是4線的SPI總線通信,盡管一些STC的單片機(jī)上帶有硬件的SPI總線接口,但是為了程序的可移植性,整個(gè)程序使用軟件模擬SPI總線協(xié)議來進(jìn)行與LT8920的通信。
既然是使用SPI通信,那么肯定數(shù)據(jù)手冊里面就有一些關(guān)于通信時(shí)序的說明,我在數(shù)據(jù)手冊里面找到如下:
lt8920時(shí)序.png (43.86 KB, 下載次數(shù): 124)
下載附件
2019-4-14 16:35 上傳
可以看到芯片是在時(shí)鐘的下降沿讀取MOSI線上的數(shù)據(jù)和在MISO線上發(fā)送數(shù)據(jù),并且先發(fā)送高位,再發(fā)送低位。并且可以看出一次需要讀取2字節(jié)(16位)的數(shù)據(jù),看完這個(gè)時(shí)序圖,我就很容易的寫出了SPI接口的寫入函數(shù)。
lt8920寫函數(shù).png (17.39 KB, 下載次數(shù): 134)
下載附件
2019-4-14 16:35 上傳
對(duì)于從LT8920上讀取寄存器數(shù)據(jù),需要注意的一點(diǎn)是每次SPI通信的地址最高位是讀寫標(biāo)志位,寫入的時(shí)候是0,讀取的時(shí)候是1,所以在SPI讀取函數(shù)中,所有的地址都需要加0x80,如圖:
lt8920讀函數(shù).png (19.77 KB, 下載次數(shù): 108)
下載附件
2019-4-14 16:35 上傳
寫完這兩個(gè)函數(shù)之后,寄存器的配置就可以使用這兩個(gè)函數(shù)了,但是我注意到手冊中說到,對(duì)于FIFO寄存器(就是存儲(chǔ)發(fā)射和接受數(shù)據(jù)的寄存器),可以采用單字節(jié)讀取或者寫入,那么我就又寫了兩個(gè)函數(shù),一次讀取和寫入分別都是單字節(jié)的,如圖:
lt8920單字節(jié)讀.png (15.55 KB, 下載次數(shù): 116)
下載附件
2019-4-14 16:35 上傳
lt8920單字節(jié)寫.png (13.96 KB, 下載次數(shù): 113)
下載附件
2019-4-14 16:35 上傳
寫完這兩個(gè)函數(shù),基本的SPI通信就沒問題了,下面我就開始對(duì)LT8920的寄存器進(jìn)行逐一的了解與設(shè)置,這耗費(fèi)了較多的時(shí)間。
3.寄存器設(shè)置與初始化
對(duì)于在LT8920中的寄存器,其地址和其寄存器的編號(hào)相同,這就給了編寫代碼時(shí)的便利性,需要操作那個(gè)寄存器只需要知道其的編號(hào)即可,在LT8920中,一共有近50多個(gè)寄存器,對(duì)這些寄存器的逐個(gè)配置,就可以使用LT8920來收發(fā)數(shù)據(jù)了。但是遺憾的是,手冊中并沒有逐個(gè)逐個(gè)說明寄存器的作用,而是只說明了幾個(gè)重要的寄存器的作用以及配置,但是在手冊最后給出了所有寄存器的推薦配置值,于是我參考了手冊最后的推薦值以及一些網(wǎng)絡(luò)上的調(diào)試經(jīng)驗(yàn),給出了每個(gè)寄存器的初值,如圖:
lt8920初始化.png (16.84 KB, 下載次數(shù): 127)
下載附件
2019-4-14 16:36 上傳
lt8920初始化1.png (32.6 KB, 下載次數(shù): 104)
下載附件
2019-4-14 16:36 上傳
可以看出,上電之后先給LT8920進(jìn)行復(fù)位,然后延時(shí)5ms,等待晶振輸出頻率穩(wěn)定之后就可以開始初始化端口了,我默認(rèn)使用的都是準(zhǔn)雙向口,所以將端口設(shè)置為1的時(shí)候也是作為輸入模式。下面是LT8920的初始化時(shí)序:
lt8920初始化時(shí)序.png (38.35 KB, 下載次數(shù): 117)
下載附件
2019-4-14 16:36 上傳
4.接受數(shù)據(jù)程序
初始化完畢之后就可以開始發(fā)送接收數(shù)據(jù)了,這個(gè)芯片有一個(gè)外置引腳PKT來指示芯片的FIFO緩存中是否有數(shù)據(jù),當(dāng)有數(shù)據(jù)的時(shí)候,整個(gè)外置引腳會(huì)被置1,沒有的時(shí)候則會(huì)被置0。所以在編寫接受數(shù)據(jù)的程序時(shí),我只需要不停地判斷這個(gè)引腳是不是高電平,如果是,那么就進(jìn)入處理函數(shù),不是就不進(jìn)入。
對(duì)于從LT8920的FIFO中讀取接受到的數(shù)據(jù),其第一字節(jié)表示的是整個(gè)數(shù)據(jù)的長度,單位是字節(jié),所以我在從LT8920的FIFO中讀取數(shù)據(jù)時(shí),先讀取一個(gè)字節(jié),那么這個(gè)字節(jié)表示的就是整個(gè)數(shù)據(jù)的長度。具體實(shí)現(xiàn)的程序如下:
lt8920接受端.png (14.57 KB, 下載次數(shù): 114)
下載附件
2019-4-14 16:36 上傳
5.發(fā)射數(shù)據(jù)程序
Lt8920的發(fā)射其實(shí)也比較簡單,向FIFO中寫入數(shù)據(jù),然后打開發(fā)射器等待發(fā)射完成(PKT置1),之后讀取自動(dòng)應(yīng)答寄存器,如果收到應(yīng)答的話,就代表一次通信成功,實(shí)現(xiàn)的代碼如下:
lt8920發(fā)射端.png (14.61 KB, 下載次數(shù): 118)
下載附件
2019-4-14 16:36 上傳
發(fā)射程序和接受程序都介紹完畢,如果您是使用的其他單片機(jī),如stm32或者arduino,應(yīng)該整體的配置思路我都講解的比較清晰,也比較容易就調(diào)試好這款模塊。所以大家如果有什么關(guān)于這個(gè)模塊的問題,歡迎來咨詢我,我的QQ:2877137721。在近期準(zhǔn)備使用這個(gè)模塊來做一些小巧的項(xiàng)目,請(qǐng)大家期待。
全部datasheet資料51hei下載地址:
C77997_LT8920編帶_2016-10-09.zip
(923.57 KB, 下載次數(shù): 443)
2019-4-14 16:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|