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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 26407|回復: 32
收起左側

一款超小型的無線收發模塊LT8920配置思路+單片機發射接收程序

  [復制鏈接]
ID:241755 發表于 2019-4-14 16:37 | 顯示全部樓層 |閱讀模式
近來一直在研究無線項目,其中的重點就是無線收發芯片,可以正常的發送接收數據了,無線項目的大難題也就解決了。于是開始收集各種無線收發芯片的資料,例如NRF24L01,CC1101,一些LoRa模塊還有一些超外差無線模塊等等,但是他們有著相同的問題,一是例如NRF24L01和CC1101之類的使用QFN封裝的模塊在自制上存在焊接困難度的問題,再就是這些模塊普遍都有著過于繁雜的外圍電路(一些電感電容),無法將其做到很小的體積。于是在查閱了很多資料后,有一款小巧的無線模塊進入我的眼簾,就是LT8920。


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


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



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



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



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



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



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


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



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



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



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

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

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

使用道具 舉報

ID:544323 發表于 2019-5-22 00:39 | 顯示全部樓層
學習了!謝謝分享。。
回復

使用道具 舉報

ID:476527 發表于 2019-6-12 14:26 | 顯示全部樓層
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風險你沒注意到:
FIFO數據包的首位是表示剩余數據包大小的字節,如果這個字節在通信時受到干擾,使之變為很大,那你接下來要寫入的數組就會溢出邊界,直接導致你的單片機復位!
這個復位問題在我去測試的時候頻繁遇到,經過痛苦的排查之后,我才意識到,我沒有對這個關鍵的首字節進行檢查!
解決的辦法很簡單,在讀完FIFO的首字節之后,判斷一下它的大小是否正常即可。
  1. /*這段代碼有出現問題的可能*/
  2. j = OneByte;
  3. //請在此處對j的值經行檢查!
  4. while(i<j){
  5.     //讀出數據,放進數組里
  6. }
復制代碼

評分

參與人數 1黑幣 +15 收起 理由
IdeaMing + 15 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:560917 發表于 2019-6-12 14:58 | 顯示全部樓層
謝謝你的分享
回復

使用道具 舉報

ID:573382 發表于 2019-6-27 14:09 | 顯示全部樓層
收藏。
回復

使用道具 舉報

ID:168320 發表于 2019-7-6 10:05 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

ID:502376 發表于 2019-7-10 10:12 | 顯示全部樓層
學習了。
回復

使用道具 舉報

ID:486481 發表于 2019-7-24 08:44 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:605655 發表于 2019-8-31 10:20 | 顯示全部樓層
感謝分享,現在準備著手項目了
回復

使用道具 舉報

ID:633767 發表于 2019-11-1 11:48 | 顯示全部樓層
學習了,剛好有用到
回復

使用道具 舉報

ID:498530 發表于 2019-11-2 00:24 | 顯示全部樓層
Similarv 發表于 2019-6-12 14:26
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風險你沒注意到:
FIFO數據包的首 ...

你好,我想問下,我基本調試已經成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原始數據,所有初始化均參照手冊配置完成,但檢測不到RSSI
回復

使用道具 舉報

ID:655879 發表于 2019-12-4 13:26 | 顯示全部樓層
好象不錯
回復

使用道具 舉報

ID:669348 發表于 2019-12-21 10:21 | 顯示全部樓層
學習了,我的MSP430上面還沒初始化調通
回復

使用道具 舉報

ID:717680 發表于 2020-3-28 16:57 | 顯示全部樓層
謝謝分享,正好也在做類似的項目,學習了
回復

使用道具 舉報

ID:667303 發表于 2020-4-1 12:14 | 顯示全部樓層
謝謝老板,資料不錯。!
回復

使用道具 舉報

ID:728403 發表于 2020-4-13 17:31 | 顯示全部樓層
謝謝分享,正好也在做類似的項目,學習了
回復

使用道具 舉報

ID:299748 發表于 2020-4-29 11:13 | 顯示全部樓層
Similarv 發表于 2019-6-12 14:26
近期,我的某項目使用到了這款芯片,樓主你的配置沒啥問題,但有個致命的風險你沒注意到:
FIFO數據包的首 ...

我使用時也是經常復位
回復

使用道具 舉報

ID:81102 發表于 2020-5-5 22:11 | 顯示全部樓層
getwch 發表于 2019-11-2 00:24
你好,我想問下,我基本調試已經成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

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

使用道具 舉報

ID:81102 發表于 2020-5-5 22:50 | 顯示全部樓層
getwch 發表于 2019-11-2 00:24
你好,我想問下,我基本調試已經成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

我也遇到相同問題 你那解決了么 ?
回復

使用道具 舉報

ID:115836 發表于 2020-5-6 22:00 | 顯示全部樓層
樓主好,請問一下這個芯片能不能用于一對多或者多對多的通信?
回復

使用道具 舉報

ID:717680 發表于 2020-5-11 15:04 | 顯示全部樓層
謝謝分享,最近正在做類似的項目剛好用上!
回復

使用道具 舉報

ID:379432 發表于 2020-6-3 15:41 | 顯示全部樓層
lt8920很垃圾的芯片,datasheet太亂,還是用國外的好點
回復

使用道具 舉報

ID:282538 發表于 2020-6-15 16:21 | 顯示全部樓層
謝謝分享,學習了。
回復

使用道具 舉報

ID:282538 發表于 2020-6-16 08:29 | 顯示全部樓層
我以為是參考代碼,下載下來看才知道是規格書
回復

使用道具 舉報

ID:307544 發表于 2020-6-16 10:14 | 顯示全部樓層
設計思路清晰,謝謝分享!
回復

使用道具 舉報

ID:794759 發表于 2020-7-1 17:28 | 顯示全部樓層
請教一下,LT8920到天線之間的濾波電路需要嗎?
怎樣設計效果最好?
回復

使用道具 舉報

ID:282538 發表于 2020-7-28 13:39 | 顯示全部樓層
JJINGER 發表于 2020-7-1 17:28
請教一下,LT8920到天線之間的濾波電路需要嗎?
怎樣設計效果最好?

可以找FAE 問問看,我用LT8988,應該更便宜些,SOT-23-6的原廠FAE跟我講0.5RMB用的模擬I2C做的
回復

使用道具 舉報

ID:287770 發表于 2020-10-20 18:48 | 顯示全部樓層
289466080 發表于 2020-7-28 13:39
可以找FAE 問問看,我用LT8988,應該更便宜些,SOT-23-6的原廠FAE跟我講0.5RMB用的模擬I2C做的

你好,我最近也在弄這個芯片,LT8960,,也是IC的,你有代碼給我參考一下嘛?我看他們的都是SPI的。
回復

使用道具 舉報

ID:230926 發表于 2020-11-11 15:42 | 顯示全部樓層
@289466080 請教一下,LT8988的IIC代碼是否可以提供一下,多謝多謝!
回復

使用道具 舉報

ID:3666 發表于 2021-3-29 15:47 | 顯示全部樓層
樓主,如果我一個單片機上接三個TL8902應該如何做
回復

使用道具 舉報

ID:301968 發表于 2022-5-5 10:25 | 顯示全部樓層
4.接受數據程序
初始化完畢之后就可以開始發送接收數據了,這個芯片有一個外置引腳PKT來指示芯片的FIFO緩存中是否有數據,當有數據的時候,整個外置引腳會被置1,沒有的時候則會被置0。所以在編寫接受數據的程序時,我只需要不停地判斷這個引腳是不是高電平,如果是,那么就進入處理函數,不是就不進入。

PKT引腳作用解釋錯誤,請查看寄存器說明
回復

使用道具 舉報

ID:46971 發表于 2023-6-22 12:44 | 顯示全部樓層
學習了,謝謝樓主分享,十分感謝!
回復

使用道具 舉報

ID:1114440 發表于 2024-3-27 15:44 | 顯示全部樓層
getwch 發表于 2019-11-2 00:24
你好,我想問下,我基本調試已經成功了,但在讀取RSSI的時候遇到了些問題,手冊上說6寄存器,是RSSI的原 ...

您好請問您解決了嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清在线 | 免费h在线 | 久久久久久久电影 | 精品国产一区二区三区四区在线 | 国产精品国产三级国产aⅴ无密码 | 国产区在线观看 | 在线日韩中文字幕 | 三级在线免费 | 日韩精品免费播放 | 欧美国产视频一区二区 | 日韩精品一区二区三区中文字幕 | 三极网站 | 国产高清精品一区二区三区 | 国产精品日韩在线观看 | 精品中文字幕视频 | 久久中文字幕一区 | 国产精品美女久久久久久久网站 | 国产一区二区精品在线观看 | 精品久久亚洲 | 国产色99 | 伊伊综合网 | 中文字幕一区二区三区精彩视频 | 亚洲人精品午夜 | 综合久久av | 亚洲美女视频 | 中文字字幕一区二区三区四区五区 | 人人干在线 | 在线国产视频观看 | 欧美视频免费在线观看 | 视频二区 | 综合一区 | 日韩一区二区三区在线看 | 成人超碰在线 | 免费黄色录像视频 | 亚洲三区视频 | 国产一级片av | 高清一区二区三区 | 在线激情视频 | 国产视频1区 | 波波电影院一区二区三区 | 国产欧美一区二区三区国产幕精品 |