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