TI CC1101學習筆記(二)
『
文末說明
』
本文作者:小強子
知乎ID:小強子
微信公眾號:小強子
一個細膩不油膩,嗜好多能力小的普通人,專注於分享電子電氣相關知識的打雜碩士生
2 通訊方式以及配置方式---SPI
CC1101透過4線SPI相容介面(MOSI,MISO,SCLK和CSn)進行配置,
CC1101作為從裝置
。這個介面同時用作讀寫緩衝器資料。SPI介面上所有的資料傳送都是先傳送
MSB
相關知識:
MSB:
高位前導;
LSB:
低位前導;
big endian(大端):
是指低地址存放最高有效位元組(MSB);
little endian(小端):
則是低地址存放最低有效位元組(LSB);
MISO:
主裝置資料輸出,從裝置資料輸入
MOSI:
主裝置資料輸入,從裝置資料輸出
SCLK:
時鐘訊號,由主裝置產生
CSn:
從裝置使能訊號,由主裝置控制,低電平有效
2.1 SPI 讀寫注意事項
SPI介面上的所有傳送都是以一個頭位元組(header byte)開始包含以下:
一個
讀寫位(R/W):
在讀操作中該位置1,在寫操作中該位置0;
一個
(突發(burst access)訪問位(B)
6位地址位(A5~A0)
。
在SPI總線上傳輸資料時,CSn腳必須保持低電平。如果在傳送頭位元組或者讀寫暫存器時CSn拉高,傳送將被取消
當 CSn 變低,在開始轉換頭位元組之前,MCU必須等待,直到 MISO 腳變低。這表明電壓調製器已經穩定,晶體正在運作中。除非晶片處在 SLEEP 或 XOFF 狀態,MISO 腳在 CSn變低之後總會立即變低。
2.2晶片狀態位元組
當頭位元組在 SPI 介面上被寫入時,晶片狀態位元組在 MISO 腳上被 CC1100 寫入。狀態位元組包含關鍵狀態訊號,對 MCU 是有用的。
(7)位
是 CHIP_RDYn 訊號。在 SCLK 的在第一個正邊緣之前,這個訊號必須變低。CHIP_RDYn 訊號表明晶體正處於工作中,調節數字供給電壓是穩定的。
狀態位元組中的
(6:4 )
位由狀態值組成。這個值反映了晶片的狀態。當使 XOSC 空閒並使數字中心的能量開啟,所有其他模組處於功率降低狀態。只有晶片處於此狀態時,頻率和通道配置才能被更新。當晶片處於接收模式時,RX狀態是活動的。同樣地,當晶片處於傳輸模式時,TX 狀態是活動的。
狀態位元組中的後四位
(3:0)
包含FIFO_BYTES_AVAILABLE。為了進行讀操作,這個區域包含可從 RX FIFO 讀取的位元組數。為了進行寫操作,這個區域包含可寫入 TX FIFO的字當FIFO_BYTES_AVAILABLE=15,15 或者更多的位元組是可用/自由的。
cc1101狀態字概要
2.3暫存器訪問
CC1101 配置暫存器地址:0x00到0x2E
所有的配置暫存器均能讀和寫。讀/寫位控制暫存器是讀或者寫。當對暫存器寫時,每當一個待寫入的資料位元組傳輸到 SI腳時,狀態位元組將被送至 SO 腳。
透過在地址頭設定突發位,連續地址的暫存器能高效地被訪問。這個地址在內部計數器內設定起始地址。每增加一個新的位元組(每8 個時鐘脈衝),計數器值增加 1。突發訪問,不管是讀訪問還是寫訪問,必須透過設定CSn 為高來終止。
對 0x30-0x3D 間的地址來說,突發位用以在
狀態暫存器
和
命令選通
間選擇。狀態暫存器只讀。突發讀取對狀態暫存器是不可取的,故它們每次只能被讀一個。
burst位置1:
選擇狀態暫存器;
burst置0:
選擇命令選通。
2.4 命令選通
命令選通可以看做是CC1101的一個單位元組指令。
透過定址一個命令選通暫存器,將啟動內部序列。
這些命令用來
禁止晶振
,
使能接收
,
使能無線喚醒
等;
命令選通暫存器的訪問和一個暫存器的寫操作一樣,但沒有資料被傳輸。就是說,只有 R/W 位(置為 0)突發訪問(置為 0)和六個地址位(0x30 和 0x3D 之間)被寫。一個命令濾波可能在任何其他 SPI 訪問之後,而不需要將 CSn 拉至高電平。命令選通立即被執行,當 CSn 高時 SPWD 和 SXOFF 命令被執行是例外。
2.5 FIFO訪問
64 位元組 TX FIFO 和 64 位元組 RX FIFO 透過0x3F 被訪問。
讀/寫位為 0 時,TX FIFO被訪問。
讀/寫位為 1 時,RX FIFO 被訪問。
TX FIFO 是隻寫的,而 RX FIFO 是隻讀的。
突發位用來決定 FIFO 訪問是單位元組還是突發訪問。
單位元組訪問方式期望地址的突發位為 0 的頭位元組和一個數據位元組。在資料位元組之後跟隨一個新的頭位元組,因此,CSn 繼續保持低。
突發訪問方式允許一地址位元組,然後是連續的資料位元組,直到透過設定 CSn 為高來關斷訪問。
0x3F : 單位元組訪問 TX FIFO
0x7F : 突發訪問 TX FIFO
0xBF : 單位元組訪問 RX FIFO
0XFF : 突發訪問 RX FIFO
2.6 PATABLE 訪問
0x3E
地址用來訪問 PATABLE。PATABLE用來選擇 PA 能量控制設定。在接收此地址之後,SPI 等待至少 8 個位元組。透過控制PATABLE,能實現可控的 PA 能量上升和下降,減少的頻寬的 ASK 調製整型也如此。
PATABLE 是一個 8 位元組表,定義了 PA 控制設 置 , 為 8 個 PA 功 率 值 ( 由FRENDO。PA_POWER 的 3 個位的值所選擇)的每一個所使用。這個表從最低位(0)到最高位(7)可讀和寫,一次一位。一個索引計數器用來控制對這個表的訪問。每讀出或寫入表中的一個位元組,計數器就加 1。當 CSn 為高時,計數值置為最小值。當達到最大值時,計數器由零重新開始計數。
對 PATABLE 的訪問是單位元組或者突發訪問,由突發位決定。當使用突發訪問時,索引計數器的值增加;達到7時重新從0開始。讀/寫位控制訪問是寫訪問(R/W=0)或者讀訪問(R/W=1)。
如果一位元組被寫入 PATABLE,且這個值將要被讀出,那麼,為了設定索引計數器的值重為 0,CSn 必須在讀訪問之前置為高。注意,當 PATABLE 進入休眠狀態時,所儲存的內容會丟失,特別是第一個位元組(索引為 0)。
2.7 基本控制和狀態腳
CC1101有2個專用配置腳(GDO0和GDO2)和一個共用腳(GDO1)可以向控制軟體輸出有用的內部狀態資訊。這些腳可以用來向MCU產生中斷。
GDO1和SPI的SO引腳共用。
GDO1/SO的預設設定時3態輸出。透過選擇任何程式設計選項,GDO1/SO將變為普通引腳。當CSn拉低,該引腳將始終作為普通的SO功能引腳。
在同步和非同步序列模式,在傳送模式下,GDO0引腳將作為序列TX資料輸入引腳。
GDO0也可以用作片上模擬溫度感測器。透過外部ADC測量GDO0腳的電壓,可以計算出溫度。溫度感測器的詳細說明見18頁的Section 4。7。透過預設的PTEST暫存器設定(0x7F),如果頻率合成器被允許溫度感測器的的輸出時可用的。(例如:MANCAL,FSTXON,RX和 TX狀態)在IDLE狀態向PTEST暫存器寫入0xBF允許模擬溫度感測器是必要的。離開IDLE狀態之前,必須恢復PTEST暫存器為預設值(0x7F)。
2.8 資料包處理的硬體支援
2.8.1傳送模式下
據包的處理者可以配置增加下面的元素到TX FIFO中的資料包儲存
一個可程式設計數量的前導位元組;
兩位元組同步字,可複製為4位元組同步字。只插入前導位元組或者同步位元組是不可能的;
一個覆蓋資料區域的CRC校驗計算。
推薦設定4位元組前導和4位元組同步字,除了500k波特率時推薦使用8位元組前導。另外,在資料區域和附加的2位元組CRC校驗,以下可以被執行
使用PN9序列Whitening資料。
透過使用交叉和編碼資料(卷積編碼)前向糾錯。
2.8.2接收模式下
資料包處理支援將是解構資料包,(如使能)以下可以被執行
前導檢測
同步字檢測
CRC計算和CRC檢查
一個位元組地址檢測
包長度檢查(根據設定的最大長度檢查長度位元組)
反Whitening(如果使能)
反交叉和解碼( 如果使能 )另外,RSSI(接收訊號強度指示)、LQI(鏈路質量指示)和CRC狀態的兩個狀態位元組可以附加在RX FIFO
2.9資料包格式
資料包的格式可以配置為由以下部分組成:
前導 n 同步字
可選的長度位元組
可選的地址位元組
淨荷
可選的2位元組CRC
資料包格式
前導形式是一個互動的0 /1 序 列(01010101。。。)前導的最小長度是可程式設計控制的。當啟用 TX 時,調製器開始傳送前導。當控制數目的前導位元組被傳送完畢,調製器開始傳送同步詞彙,然後傳送來自 TX FIFO的可利用的資料。若 TX FIFO 為空,調製器將繼續傳送前導位元組,直到第一個位元組被寫入 TX FIFO。調製器將隨後傳送同步詞彙和資料位元組;前導位元組的長度由MDMCFG1。NU_PREAMBLE 值控制。
『
文末說明
』
本文作者:小強子
知乎ID:小強子
微信公眾號:小強子
一個細膩不油膩,嗜好多能力小的普通人,專注於分享電子電氣相關知識的打雜碩士生
上一篇:希望翻拍《花兒》
下一篇:崖柏到底該不該上油呢?