標(biāo)題: CC1101調(diào)試入門 [打印本頁]
作者: lanleo 時間: 2018-10-23 18:02
標(biāo)題: CC1101調(diào)試入門
1當(dāng)CSN引腳變低,MCU必須等待SO引腳電平變低,表明內(nèi)部穩(wěn)定,除非radio處于Sleep或者XOFF狀態(tài),或者CSN變低后SO會立即變低的。
2只有使radio處于XOSC空閑,并且數(shù)字中心的能量開啟,其他模塊處于功率降低狀態(tài),這時候頻率和信道配置才能被更新。
3狀態(tài)字的最后4個字節(jié)表示FIFO的可用字節(jié),其最大值是15,此時表示15或者更多字節(jié)是可以使用的。
4每當(dāng)一個字節(jié)通過SI引腳寫入到寄存器時,狀態(tài)字節(jié)將被送到SO引腳
5寄存器的連續(xù)字節(jié)訪問,就是內(nèi)部計數(shù)器會自動設(shè)置起始地址,每增加一個字節(jié),地址會自動加1,無論是讀還是寫,必須通過CSN拉高終止。
6關(guān)于命令濾波其實是radio的單字節(jié)指令,通過指令對寄存器的選址,內(nèi)部的功能做出相應(yīng)的啟動或者關(guān)閉,這里和TFT的液晶的寄存器出口指令一樣,只需要寫一個0x22,不像前面的對寄存器先寫地址后寫數(shù)據(jù)。
7關(guān)于FIFO的訪問,首先知道這個是64字節(jié),可以通過單字節(jié)訪問或者突發(fā)訪問(也就是連續(xù)訪問),他們的地址是0x3F,其實這些是這樣操作的。
FIFO分為TX FIFO和RX FIFO兩個單獨的64數(shù)據(jù)區(qū),當(dāng)我們給的地址BIT7不同時,也就是讀寫控制位是1還是0,BIT7是0時訪問的是TX FIFO,BIT7是1時RX FIFO被訪問。BIT6是突發(fā)訪問控制位,當(dāng)BIT6為1時,選擇的是突發(fā)訪問,BIT6為0是單字節(jié)訪問。這樣就可以得到
0x3F:單字節(jié)訪問TX FIFO
0xBF:單字節(jié)訪問RX FIFO
0x7F:突發(fā)訪問TX FIFO
0xFF:突發(fā)訪問RX FIFO
8當(dāng)radio進(jìn)入休眠狀態(tài)時,兩個FIFO都被刷新為空。
9PATABLE的訪問,用來設(shè)置發(fā)射功率的。地址是0x3E,里面有8個字節(jié)的表,接受地址SPI要等待8個字節(jié)。讀寫還是通過讀寫位控制,突發(fā)訪問還是單字節(jié)訪問還是通過突發(fā)位控制。這內(nèi)部有個計數(shù)器,當(dāng)計數(shù)到7時會自動下次為0。當(dāng)設(shè)置CSn為高時,內(nèi)部的計數(shù)器會變?yōu)?。
10一般所有的濾波命令會立即執(zhí)行,但是SPWD(休眠濾波命令)不會立即執(zhí)行,它會延遲到CSn為高時執(zhí)行。
11接收模式下的數(shù)據(jù)包濾波,CC1101支持包括地址濾波和最大長度濾波兩種濾波方式。
地址濾波:設(shè)置PKTCTRL1.ADR_CHK大于0開啟數(shù)據(jù)包地址濾波,radio將數(shù)據(jù)包中的目標(biāo)地址字節(jié)的值同自己ADDR寄存器值和廣播地址(0x00,0xFF)進(jìn)行比較,如果匹配則數(shù)據(jù)包被寫到RX FIFO,否則數(shù)據(jù)包被丟失。
最大長度濾波:在可變數(shù)據(jù)包長度模式下,PKTLEN.PACKET_LENGTH寄存器的值用來設(shè)置最大允許數(shù)據(jù)包長度,當(dāng)接收字節(jié)值比這個值大,則數(shù)據(jù)包被丟棄。
注:當(dāng)設(shè)置PKTCTTL1.ADRCHK=10時廣播地址為0x00,當(dāng)設(shè)置PKTCTTL1.ADRCHK=11時,廣播地址為0x00和0xFF。
作者: Robot-LY 時間: 2020-3-30 19:54
樓主,請教一個問題,我現(xiàn)在在調(diào)試CC1101,就是每次操作時,就是死在while(MISO),這個到底是什么原因造成的,請指教,謝謝。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |