|
CC1101寄存器比較多,配置起來相對復(fù)雜,而且應(yīng)用方面很靈活,要注意的點也不少,還需要一定的射頻知識,要不然一些專業(yè)術(shù)語看不懂。應(yīng)該說學(xué)習(xí)起來難度還是有的,把它當(dāng)做無線的入門來好好學(xué)習(xí)下也是非常有必要的。
借助SmartRF軟件,大大的簡化了寄存器配置的難度,使得上手方便了不少。以下引用一段介紹:
“CC1101是一種低成本真正單片的UHF收發(fā)器,為低功耗無線應(yīng)用而設(shè)計。電路主要設(shè)定為在315、433、868和915MHz的ISM(工業(yè),科學(xué)和醫(yī)學(xué))和SRD(短距離設(shè)備)頻率波段,也可以容易地設(shè)置為300-348MHz、400-464MHz和800-928MHz的其他頻率。RF收發(fā)器集成了一個高度可配置的調(diào)制解調(diào)器。這個調(diào)制解調(diào)器支持不同的調(diào)制格式,其數(shù)據(jù)傳輸率可達(dá)500kbps。通過開啟集成在調(diào)制解調(diào)器上的前向誤差校正選項,能使性能得到提升。CC1100為數(shù)據(jù)包處理、數(shù)據(jù)緩沖、突發(fā)數(shù)據(jù)傳輸、清晰信道評估、連接質(zhì)量指示和電磁波激發(fā)提供廣泛的硬件支持!
CC1101是通過SPI方式與MCU相連,可以通過MCU自帶的硬件SPI,3線模式,或者M(jìn)CU模擬SPI來驅(qū)動。
寄存器的配置:
CC1101寄存器地址是0~0x3F,配置的內(nèi)容在BIT0~BIT5中
讀寫控制是BIT7,BIT7為1時,為讀對應(yīng)的寄存器,BIT7為0時,為寫相應(yīng)的寄存器。
那么還剩下一個BIT6,BIT6是突發(fā)訪問控制為,BIT6為1為突發(fā)訪問,BIT6為0為單字節(jié)訪問。(突發(fā)訪問下面說)
這樣我們就可以很容易理解了,比如配置PKTCTRL0寄存器,其地址0x08,我們突發(fā)訪問寫的話寫先數(shù)據(jù)0x48,再連續(xù)寫數(shù)據(jù),這里明白了突發(fā)訪問后就很容易知道了,如果單字節(jié)讀這個寄存器,先寫數(shù)據(jù)0x88,讀一下就可以了。
命令濾波:
只要寫一下對應(yīng)的寄存器的地址,不用寫數(shù)據(jù),它就內(nèi)部自動執(zhí)行相應(yīng)的指令,比如重啟芯片,設(shè)置為發(fā)送模式,共有14個濾波指令,地址從0x30~0x3D。關(guān)于濾波指令的狀態(tài)寄存器其實是可讀不可寫的,也就是0x30~0x3D的地址加上0xC0,(BIT7和IBT6為1,前面說過了),比如寫數(shù)據(jù)0xF4,就可以讀到相應(yīng)RSSI狀態(tài)寄存器里面的值。一般所有的濾波命令會立即執(zhí)行,但是SPWD(休眠濾波命令)不會立即執(zhí)行,它會延遲到CSn為高時執(zhí)行。
數(shù)據(jù)包格式:
可以看出數(shù)據(jù)包由前導(dǎo)碼,同步字節(jié),可選的數(shù)據(jù)包長度,可選的目標(biāo)地址,真正數(shù)據(jù)區(qū),2字節(jié)的CRC校驗碼。
CC1101狀態(tài)字節(jié):
當(dāng)通過SPI接口,寄存器被寫入或者寫入濾波命令,狀態(tài)字節(jié)就會在SO管腳上輸出
接收模式下的數(shù)據(jù)包濾波,CC1101支持包括地址濾波和最大長度濾波兩種濾波方式。
地址濾波:設(shè)置PKTCTRL1.ADR_CHK大于0開啟數(shù)據(jù)包地址濾波,radio將數(shù)據(jù)包中的目標(biāo)地址字節(jié)的值同自己ADDR寄存器值和廣播地址(0x00,0xFF)進(jìn)行比較,如果匹配則數(shù)據(jù)包被寫到RXFIFO,否則數(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。
|
|