找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 13286|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

與nRF24L01痛楚地纏綿-nRF24L01調(diào)試總結(jié)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-26 21:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
                                                                                                  搞nRF24L01已經(jīng)有三天了,前兩天感覺還好,看得特爾洗特,了解了工作模式,但是還是有好多細(xì)節(jié)忽略掉了,網(wǎng)上查才看到好多要注意的東西。
  然后就是看牛人寫的程序。比對著看,感覺有些地方有很多不解的地方,甚至覺得是錯的(以前用1-Wire讀ds1302時就是被書本上錯誤程序給搞怕了,虧那本書封面還做的那么好,叫人心生敬意:權(quán)威�。�。
  今天開始用結(jié)合硬件調(diào)程序,結(jié)果問題一大堆。因為是和51通信,需要5V和3.3轉(zhuǎn)換,用了TI的一個芯片,就是不知道硬件有沒設(shè)計好�?措娖狡ヅ湫酒臄�(shù)據(jù)手冊,發(fā)現(xiàn)自己電路的驅(qū)動能力不夠,但是加了上拉發(fā)現(xiàn)是一樣的,沒加也能通信,真是費解。
  現(xiàn)在有很多問題:
  復(fù)位幾次MCU后,nRF就不能正確配置了(直觀現(xiàn)象是配置寄存器的值讀出來有問題,也不知道是通信問題還是真的沒配置好),重新給nRF上電,就又能配置了。
  使能AutoAck后,試驗發(fā)射部分,MAX_RT能置位(把我高興了一下),然后打開接收,發(fā)現(xiàn)還是置位,說明沒收到ACK;于是關(guān)掉AutoAck,發(fā)現(xiàn)并不能置位TX_DS,郁悶。
  datasheet上說寫寄存器時必須置低CE,但是我試過置位CE再讀寄存器,嘿,一樣行,不知道為什么。


  不斷的實驗,發(fā)現(xiàn)使用了TxPacket函數(shù)后會造成復(fù)位不能配置的問題,原因不明。
  現(xiàn)在有些途徑可以嘗試:改進電源,現(xiàn)在電源是直接從MCU降壓過來的,不知道會不會影響,網(wǎng)上有說430與nRF共電結(jié)果工作不好的情況;嚴(yán)格操作CE端;另外就是電平芯片TXB0108了,如果真的是這個芯片在作怪,那么請蒼天原諒我,我的確無計可施了(當(dāng)然可以花半個月廢寢忘食來研究430,如果430驅(qū)動行了,也就證明它的確不行了)。
  昨晚郁悶到凌晨4點,還不知道今晚郁悶到什么時候,現(xiàn)在是23:49,just keep moving!

  解決一個問題。CE信號控制果然很重要,“上電怪題”就是它引起的。試驗的程序里用了TxPacket,而nRF的發(fā)送是用CE置位來啟動的。進入中斷服務(wù)程序后直接寫狀態(tài)寄存器,沒按通信協(xié)議進行,應(yīng)該先置低CE;但是讀寄存器似乎沒影響。oh yeah,現(xiàn)在0:15,有點困了。

  好消息,呵呵,TX_DS能置位了,估計發(fā)送端能工作了。還有個小問題,剛才讀發(fā)送端地址時有點無厘頭,但是是每次都一樣,可是又和定義的不一樣(條件是配置時沒寫地址,用的復(fù)位值E7E7E7E7E7,發(fā)送函數(shù)里寫了地址,再次復(fù)位后值就不對了)。現(xiàn)在是0:27,越來越困了。

  又回來了。這個問題還沒搞太明白。發(fā)現(xiàn)在發(fā)送時必須加一定的延時(不是CE啟動要求的130us,而是較長的一段時間,估計是用作數(shù)據(jù)包的發(fā)送的)。試驗程序里發(fā)送了之后直接進入中斷讀狀態(tài)寄存器,結(jié)果出來的又是每次都一樣的無厘頭數(shù)據(jù)。懷疑是發(fā)送時不應(yīng)該讀取寄存器(但記得datasheet說是可以的)。然后在進入中斷后馬上延時,發(fā)現(xiàn)還是有兩個數(shù)據(jù)錯了,這下就不懂了(懷疑和51寄存器組有關(guān)。有時間試驗一下,制定寄存器組試試)。北京時間0:44。

  不小心的發(fā)現(xiàn),恰好網(wǎng)上看見有人在問這個。STATUS和FIFO_STATUS兩個寄存器中都有TX_FIFO標(biāo)志位,其值與沖洗寄存器和發(fā)送狀況有關(guān),下面是實驗結(jié)果。(沒有接收端,則EN_AA數(shù)據(jù)沒發(fā)出)。都1:22了

EN_AA: (發(fā)送不成功,若不沖洗,數(shù)據(jù)保留,否則數(shù)據(jù)清除)
不BLUSH_TX  STATUS 中  TX_FULL 1       ,     FIFO_STATUS 中  TX_FULL     1;
    BLUSH_TX  STATUS 中 TX_FULL  0  ,      FIFO_STATUS 中 TX_EMPTY  1;

dis EN_AA: (發(fā)送成功,雖然收不到,數(shù)據(jù)都被清除了)
不BLUSH_TX  STATUS 中 TX_FULL 0      ,      FITO_STATUS 中 TX_EMPTY   1;
    BLUST_TX  STATUS 中   TX_FULL 0      ,      FIFO_STATUS 中 TX_EMPTY  1;




  LALALA,LALALA,LALALA,我是賣報的小行家。。。。呵呵,居然調(diào)通了,居然收到數(shù)據(jù)了。蒼天無眼啊,居然被我給調(diào)通了(只不過是部分)。但是使能AutoAck還有點問題。哎,太累了,休息下。明天再開始吧。幸福啊。北京時間2:32。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:71359 發(fā)表于 2014-12-30 12:43 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報

板凳
ID:72886 發(fā)表于 2015-1-27 20:55 | 只看該作者
還在設(shè)計硬件,來看看nrf24l01好調(diào)不,看你們都腦大了
回復(fù)

使用道具 舉報

地板
ID:72611 發(fā)表于 2015-4-4 17:48 | 只看該作者
學(xué)習(xí)了,謝謝分享
回復(fù)

使用道具 舉報

5#
ID:76226 發(fā)表于 2015-4-6 10:31 | 只看該作者
好經(jīng)驗
回復(fù)

使用道具 舉報

6#
ID:94896 發(fā)表于 2015-11-6 18:35 | 只看該作者
我都不知道怎么搞啊
回復(fù)

使用道具 舉報

7#
ID:58757 發(fā)表于 2015-11-6 21:34 | 只看該作者
感謝經(jīng)驗分享。學(xué)習(xí)了。
回復(fù)

使用道具 舉報

8#
ID:78930 發(fā)表于 2016-3-17 09:11 | 只看該作者
厲害~~~~~~~~
回復(fù)

使用道具 舉報

9#
ID:149737 發(fā)表于 2016-11-23 16:08 | 只看該作者
謝謝分享!�。。。。。。。。�!
回復(fù)

使用道具 舉報

10#
ID:150002 發(fā)表于 2016-11-24 19:59 | 只看該作者
我也被困擾了好久
回復(fù)

使用道具 舉報

11#
ID:222006 發(fā)表于 2017-8-12 00:08 | 只看該作者
謝謝師傅了,新手一個巡線做完了打算搞2401,在收集資料,謝謝前輩們。
回復(fù)

使用道具 舉報

12#
ID:258806 發(fā)表于 2018-1-20 00:56 | 只看該作者
這位前輩你的2014年的:nRF24L01單片機通信的總結(jié)--看了就會用了 的待續(xù)還沒更新啊~~~~~~~求更新~~~
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表