久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 一款超小型的無線收發(fā)模塊LT8920配置思路+單片機發(fā)射接收程序 [打印本頁]

作者: lzy1999    時間: 2019-4-14 16:37
標(biāo)題: 一款超小型的無線收發(fā)模塊LT8920配置思路+單片機發(fā)射接收程序
近來一直在研究無線項目,其中的重點就是無線收發(fā)芯片,可以正常的發(fā)送接收數(shù)據(jù)了,無線項目的大難題也就解決了。于是開始收集各種無線收發(fā)芯片的資料,例如NRF24L01,CC1101,一些LoRa模塊還有一些超外差無線模塊等等,但是他們有著相同的問題,一是例如NRF24L01和CC1101之類的使用QFN封裝的模塊在自制上存在焊接困難度的問題,再就是這些模塊普遍都有著過于繁雜的外圍電路(一些電感電容),無法將其做到很小的體積。于是在查閱了很多資料后,有一款小巧的無線模塊進入我的眼簾,就是LT8920。


先不談他的各項參數(shù)指標(biāo)相對其他模塊有什么優(yōu)劣,光是這個采用了SSOP16的引腳封裝就使得其焊接容易了許多。并且其簡潔的外圍電路著實易于制作,只需要一個晶振一個電容即可,這確實在焊接難度和外圍電路成本上秒殺其他芯片。于是我開始對這個芯片進行了學(xué)習(xí),希望可以使用它做出一些項目。調(diào)試起來還是廢了一番周折,因為廠家給出的數(shù)據(jù)手冊并不清楚,所以很多東西都是摸著石頭過河,在前前后后調(diào)試了大概3天左右,終于可以正常的收發(fā)數(shù)據(jù),下面我就分享一些學(xué)習(xí)的過程。
                  
拿到一個新的芯片,想要了解他就一定要去下載數(shù)據(jù)手冊,一般在網(wǎng)上都可以找到,有中文的有英文的,遇到英文的數(shù)據(jù)手冊就需要具備一定的英語閱讀能力才可以理解清楚意思。這個芯片的數(shù)據(jù)手冊我也會放到文章的最后,大家可以下載來學(xué)習(xí)。


1.基本介紹
這款芯片使用的是2.4G頻段進行通信,可以設(shè)置通信頻率,發(fā)射速率以及發(fā)射功率,電源使用2.2V到3.6V的電壓都可以,發(fā)射時電流在20毫安左右,接受電流在18毫安左右,可以說比較省電的一款芯片。芯片內(nèi)置倍頻電路,但是沒有內(nèi)置晶振,所以需要外接一顆12Mhz的晶振,晶振的補償電容芯片已經(jīng)內(nèi)置了,所以無需外接。對于芯片與MCU的通信方面,使用的是SPI總線協(xié)議,最高支持10Mhz的速度。為了更好的兼容一些低速的MCU,這款芯片內(nèi)置FIFO緩存器。
如下圖給出了典型應(yīng)用電路:




2.通信代碼編寫
看完了這些參數(shù),我對這款芯片也有了一些了解,下面要做的就是編寫程序進行通信了。我使用的是STC8單片機來對這個芯片進行控制,由于模塊采用的是4線的SPI總線通信,盡管一些STC的單片機上帶有硬件的SPI總線接口,但是為了程序的可移植性,整個程序使用軟件模擬SPI總線協(xié)議來進行與LT8920的通信。
既然是使用SPI通信,那么肯定數(shù)據(jù)手冊里面就有一些關(guān)于通信時序的說明,我在數(shù)據(jù)手冊里面找到如下:




可以看到芯片是在時鐘的下降沿讀取MOSI線上的數(shù)據(jù)和在MISO線上發(fā)送數(shù)據(jù),并且先發(fā)送高位,再發(fā)送低位。并且可以看出一次需要讀取2字節(jié)(16位)的數(shù)據(jù),看完這個時序圖,我就很容易的寫出了SPI接口的寫入函數(shù)。




對于從LT8920上讀取寄存器數(shù)據(jù),需要注意的一點是每次SPI通信的地址最高位是讀寫標(biāo)志位,寫入的時候是0,讀取的時候是1,所以在SPI讀取函數(shù)中,所有的地址都需要加0x80,如圖:




寫完這兩個函數(shù)之后,寄存器的配置就可以使用這兩個函數(shù)了,但是我注意到手冊中說到,對于FIFO寄存器(就是存儲發(fā)射和接受數(shù)據(jù)的寄存器),可以采用單字節(jié)讀取或者寫入,那么我就又寫了兩個函數(shù),一次讀取和寫入分別都是單字節(jié)的,如圖:




寫完這兩個函數(shù),基本的SPI通信就沒問題了,下面我就開始對LT8920的寄存器進行逐一的了解與設(shè)置,這耗費了較多的時間。


3.寄存器設(shè)置與初始化
對于在LT8920中的寄存器,其地址和其寄存器的編號相同,這就給了編寫代碼時的便利性,需要操作那個寄存器只需要知道其的編號即可,在LT8920中,一共有近50多個寄存器,對這些寄存器的逐個配置,就可以使用LT8920來收發(fā)數(shù)據(jù)了。但是遺憾的是,手冊中并沒有逐個逐個說明寄存器的作用,而是只說明了幾個重要的寄存器的作用以及配置,但是在手冊最后給出了所有寄存器的推薦配置值,于是我參考了手冊最后的推薦值以及一些網(wǎng)絡(luò)上的調(diào)試經(jīng)驗,給出了每個寄存器的初值,如圖:




可以看出,上電之后先給LT8920進行復(fù)位,然后延時5ms,等待晶振輸出頻率穩(wěn)定之后就可以開始初始化端口了,我默認(rèn)使用的都是準(zhǔn)雙向口,所以將端口設(shè)置為1的時候也是作為輸入模式。下面是LT8920的初始化時序:




4.接受數(shù)據(jù)程序
初始化完畢之后就可以開始發(fā)送接收數(shù)據(jù)了,這個芯片有一個外置引腳PKT來指示芯片的FIFO緩存中是否有數(shù)據(jù),當(dāng)有數(shù)據(jù)的時候,整個外置引腳會被置1,沒有的時候則會被置0。所以在編寫接受數(shù)據(jù)的程序時,我只需要不停地判斷這個引腳是不是高電平,如果是,那么就進入處理函數(shù),不是就不進入。
對于從LT8920的FIFO中讀取接受到的數(shù)據(jù),其第一字節(jié)表示的是整個數(shù)據(jù)的長度,單位是字節(jié),所以我在從LT8920的FIFO中讀取數(shù)據(jù)時,先讀取一個字節(jié),那么這個字節(jié)表示的就是整個數(shù)據(jù)的長度。具體實現(xiàn)的程序如下:




5.發(fā)射數(shù)據(jù)程序
Lt8920的發(fā)射其實也比較簡單,向FIFO中寫入數(shù)據(jù),然后打開發(fā)射器等待發(fā)射完成(PKT置1),之后讀取自動應(yīng)答寄存器,如果收到應(yīng)答的話,就代表一次通信成功,實現(xiàn)的代碼如下:


                          
發(fā)射程序和接受程序都介紹完畢,如果您是使用的其他單片機,如stm32或者arduino,應(yīng)該整體的配置思路我都講解的比較清晰,也比較容易就調(diào)試好這款模塊。所以大家如果有什么關(guān)于這個模塊的問題,歡迎來咨詢我,我的QQ:2877137721。在近期準(zhǔn)備使用這個模塊來做一些小巧的項目,請大家期待。

全部datasheet資料51hei下載地址:
C77997_LT8920編帶_2016-10-09.zip (923.57 KB, 下載次數(shù): 443)

作者: YOUTHFUL    時間: 2019-5-22 00:39
學(xué)習(xí)了!謝謝分享。!
作者: Similarv    時間: 2019-6-12 14:26
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風(fēng)險你沒注意到:
FIFO數(shù)據(jù)包的首位是表示剩余數(shù)據(jù)包大小的字節(jié),如果這個字節(jié)在通信時受到干擾,使之變?yōu)楹艽螅悄憬酉聛硪獙懭氲臄?shù)組就會溢出邊界,直接導(dǎo)致你的單片機復(fù)位!
這個復(fù)位問題在我去測試的時候頻繁遇到,經(jīng)過痛苦的排查之后,我才意識到,我沒有對這個關(guān)鍵的首字節(jié)進行檢查!
解決的辦法很簡單,在讀完FIFO的首字節(jié)之后,判斷一下它的大小是否正常即可。
  1. /*這段代碼有出現(xiàn)問題的可能*/
  2. j = OneByte;
  3. //請在此處對j的值經(jīng)行檢查!
  4. while(i<j){
  5.     //讀出數(shù)據(jù),放進數(shù)組里
  6. }
復(fù)制代碼

作者: HearingWings    時間: 2019-6-12 14:58
謝謝你的分享
作者: iekkei    時間: 2019-6-27 14:09
收藏!
作者: dabing01    時間: 2019-7-6 10:05
多謝分享
作者: kkstun    時間: 2019-7-10 10:12
學(xué)習(xí)了。
作者: xyqkos    時間: 2019-7-24 08:44
謝謝分享
作者: p7869390    時間: 2019-8-31 10:20
感謝分享,現(xiàn)在準(zhǔn)備著手項目了
作者: 小柿子    時間: 2019-11-1 11:48
學(xué)習(xí)了,剛好有用到
作者: getwch    時間: 2019-11-2 00:24
Similarv 發(fā)表于 2019-6-12 14:26
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風(fēng)險你沒注意到:
FIFO數(shù)據(jù)包的首 ...

你好,我想問下,我基本調(diào)試已經(jīng)成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原始數(shù)據(jù),所有初始化均參照手冊配置完成,但檢測不到RSSI
作者: 2714144993    時間: 2019-12-4 13:26
好象不錯
作者: sammy_chen    時間: 2019-12-21 10:21
學(xué)習(xí)了,我的MSP430上面還沒初始化調(diào)通
作者: xuthus    時間: 2020-3-28 16:57
謝謝分享,正好也在做類似的項目,學(xué)習(xí)了
作者: 15717737432    時間: 2020-4-1 12:14
謝謝老板,資料不錯。!
作者: jansliu    時間: 2020-4-13 17:31
謝謝分享,正好也在做類似的項目,學(xué)習(xí)了
作者: jonah    時間: 2020-4-29 11:13
Similarv 發(fā)表于 2019-6-12 14:26
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風(fēng)險你沒注意到:
FIFO數(shù)據(jù)包的首 ...

我使用時也是經(jīng)常復(fù)位
作者: xhc890704    時間: 2020-5-5 22:11
getwch 發(fā)表于 2019-11-2 00:24
你好,我想問下,我基本調(diào)試已經(jīng)成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

你問題解決了么 我也跟你遇到同樣的問題 RSSI有問題 前輩請指教下

作者: xhc890704    時間: 2020-5-5 22:50
getwch 發(fā)表于 2019-11-2 00:24
你好,我想問下,我基本調(diào)試已經(jīng)成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

我也遇到相同問題 你那解決了么 ?
作者: ifree64    時間: 2020-5-6 22:00
樓主好,請問一下這個芯片能不能用于一對多或者多對多的通信?
作者: xuthus    時間: 2020-5-11 15:04
謝謝分享,最近正在做類似的項目剛好用上!
作者: guozhaowen    時間: 2020-6-3 15:41
lt8920很垃圾的芯片,datasheet太亂,還是用國外的好點
作者: 289466080    時間: 2020-6-15 16:21
謝謝分享,學(xué)習(xí)了。
作者: 289466080    時間: 2020-6-16 08:29
我以為是參考代碼,下載下來看才知道是規(guī)格書
作者: hzd530    時間: 2020-6-16 10:14
設(shè)計思路清晰,謝謝分享!
作者: JJINGER    時間: 2020-7-1 17:28
請教一下,LT8920到天線之間的濾波電路需要嗎?
怎樣設(shè)計效果最好?

作者: 289466080    時間: 2020-7-28 13:39
JJINGER 發(fā)表于 2020-7-1 17:28
請教一下,LT8920到天線之間的濾波電路需要嗎?
怎樣設(shè)計效果最好?

可以找FAE 問問看,我用LT8988,應(yīng)該更便宜些,SOT-23-6的原廠FAE跟我講0.5RMB用的模擬I2C做的
作者: DYQ_DYQ    時間: 2020-10-20 18:48
289466080 發(fā)表于 2020-7-28 13:39
可以找FAE 問問看,我用LT8988,應(yīng)該更便宜些,SOT-23-6的原廠FAE跟我講0.5RMB用的模擬I2C做的

你好,我最近也在弄這個芯片,LT8960,,也是IC的,你有代碼給我參考一下嘛?我看他們的都是SPI的。
作者: xujg74    時間: 2020-11-11 15:42
@289466080 請教一下,LT8988的IIC代碼是否可以提供一下,多謝多謝!
作者: liushiming82    時間: 2021-3-29 15:47
樓主,如果我一個單片機上接三個TL8902應(yīng)該如何做
作者: 鄧文雄ABC    時間: 2022-5-5 10:25
4.接受數(shù)據(jù)程序
初始化完畢之后就可以開始發(fā)送接收數(shù)據(jù)了,這個芯片有一個外置引腳PKT來指示芯片的FIFO緩存中是否有數(shù)據(jù),當(dāng)有數(shù)據(jù)的時候,整個外置引腳會被置1,沒有的時候則會被置0。所以在編寫接受數(shù)據(jù)的程序時,我只需要不停地判斷這個引腳是不是高電平,如果是,那么就進入處理函數(shù),不是就不進入。

PKT引腳作用解釋錯誤,請查看寄存器說明
作者: yjr12925    時間: 2023-6-22 12:44
學(xué)習(xí)了,謝謝樓主分享,十分感謝!
作者: hnb2312    時間: 2024-3-27 15:44
getwch 發(fā)表于 2019-11-2 00:24
你好,我想問下,我基本調(diào)試已經(jīng)成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

您好請問您解決了嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人毛片网站 | 成人精品视频在线 | 日韩中文电影 | 日本一区精品 | 午夜免费福利影院 | 欧美aaa级 | 成人久久18免费网站麻豆 | 综合久久亚洲 | 一级毛片视频在线 | 欧美精品一区久久 | 一区二区在线免费观看视频 | 99资源站 | 黄色在线观看网站 | 日韩免费网站 | 国产欧美一级 | 91精品在线播放 | 一区二区蜜桃 | 欧美日韩福利视频 | 国产精品高清在线 | 黄色在线免费观看 | 国产免费一区 | 国产高清在线观看 | 日韩av成人在线 | 欧美成人a∨高清免费观看 欧美日韩中 | 91看国产 | 午夜免费视频观看 | 免费观看黄a一级视频 | 国产精品一区二区不卡 | 日本午夜一区二区三区 | 国产美女黄色 | 欧美激情第一区 | 亚洲一区二区在线播放 | 国产在线小视频 | 夜夜夜操 | 澳门永久av免费网站 | 91不卡 | 亚洲成人网在线 | 久久国产精品免费一区二区三区 | 亚洲一区日韩 | 国产精品久久久久久影视 | 99热在线观看精品 |