RF射頻技術-si4438C芯片介紹

1.芯片圖

2.Frequency range = 425–525 MHz

可覆蓋425-525MHz頻段

3.The Si4438 operates as a time division duplexing (TDD) transceiver where the device alternately transmits and receives data packets

雙工收發,交替發送和接收數據包。

4.receiver do not operate at the same time

發送和收不能同時工作。

5.The demodulated signal is output to the system MCU through a programmable GPIO or via the standard SPI bus by reading the 64-byte RX FIFO

通過可編程的 GPIO 或通過解讀 64 字節 RXFIFO 的標準 SPI 總線,已調製的信號可被輸出到 MCU 系統。

如圖所示4438與主機MCU通信方式

6.The Si4438 family supports TX/RX switch control, and antenna diversity switch control to extend the link range and improve performance

支持 TX/RX 開關控制和天線分集開關控制以擴展鏈路範圍和提高性能。

7.SPI接口

4線與主機MCU通訊:SCLK、SDI、SDO、nSEL

8.SPI寫過程

1)The nSEL pin should go low to initiate the SPI command。

拉低nSEL啓動SPI命令

2)The first byte of SDI data will be one of the firmware commands followed by n bytes of parameter data
which will be variable depending on the specific command

which will be variable depending on the specific command

SDI的第一個數據爲命令,後面緊接着n個爲數據

3)The rising edges of SCLK should be aligned with the center of the SDI data.

SCLK上升沿數據對準數據中心,即上升沿有效。

9.SPI讀過程

1)The Si4438 contains an internal MCU which controls all the internal functions of the radio

1.si4438有一個內部MCU,可控制無線內部所有功能

2)For SPI read commands a typical MCU flow of checking clear-to-send (CTS) is used to make sure the internal MCU has executed the
command and prepared the data to be output over the SDO pin

command and prepared the data to be output over the SDO pin

SPI讀命令,有一個清除發送檢測流(CTS),確保內部MCU已經執行命令並且已經準備好數據通過SDO引腳輸出

後一旦CTS 值顯示 FF 那麼讀出的數據將會通過時鐘輸出到主機 MCU

3)Figure 3 demonstrates the remaining read cycle after CTS is set to FFh. The internal MCU will clock out the SDO data on the negative edge so the host MCU should process the SDO data on the rising edge of SCLK

當CTS值爲FF時,內部MCU會在SDO的下降沿輸出數據,以便主機MCU通過SCLK上升沿處理數據

10.快速響應寄存器

快速響應寄存器:無需監控和檢測 CTS 就可立即被讀取的寄存器

1)共4個,0x50 代表快速響應 A,0x51 代表快速響應 B,0x53 代表快速響應C,0x57 代表快速響應 D

2)通過FRR_CTL_X_MODE”屬性進行配置

11.工作狀態

API commands START_RX, START_TX, and CHANGE_STATE control the operating state with the exception of shutdown which is controlled
by SDN

除了關機由SDN引腳控制外,其他狀態都可由API命令控制。

1)關機狀態

The shutdown state may be entered by driving the SDN pin (Pin 1) high. The SDN pin should be held low in all states except the shutdown state.

拉高SDN引腳進入關機狀態,除關機狀態外,其他所有狀態要保持SDN引腳低電平。

2)待機狀態

a、除關機外待機狀態電流消耗最低,且對RX/TX較快反應。關機雖然功耗最低,但寄存器的只會丟失,所以大部分待機狀態應該作爲低功耗使用。

b、待機狀態下SPI可接入,但任何SPI事件包括FIFO R/W,會啓動內部振盪器,並自動將該部件移至SPI活動狀態。

所以SPI事件之後,主機需通過API命令,使設備回到待機狀態,以降低功耗。

c、如發生中斷,則中斷寄存器必須被讀取已達到該模式下的最低功耗。

3)睡眠狀態

與待機狀態相同,但是喚醒定時器和32KHz時鐘源(內部RC振盪器/外部XTAL振盪器)會被啓用。

4)SPI活動狀態

此狀態下SPI和啓動振盪器會被啓用,也需要使用相關API回到待機狀態。

12.中斷

芯片通過將nIRQ輸出引腳設置爲LOW=0通知MCU中斷事件已經發生。在MCU清除所有中斷之前,nIRQ引腳會一直處於低位。

中斷源分爲三組(packet handler, chip status, and modem),必須啓用中斷才能在nIRQ上引發事件,所有中斷都可在“GET_INT_STATUS”API命令中讀取和清除。默認情況中斷一旦讀取就被清除。

若想以最快的速度讀取特定中斷,可通過“GET_MODEM_STATUS”、“GET_PH_STATUS”、“GET_CHIP_STATUS”API命令讀取和清除。無論中斷啓用與否,狀態位會提供功能顯示當前的狀態。

快速響應寄存器也可提供中斷組的信息,但讀取快速響應寄存器不會清除中斷和使 nIRQ 引腳復位。

13.GPIO

有4個一般用途的IO引腳,通過0x13地址中的GPIO_PIN_CFG命令進行配置。

GPIO引腳0和1應用於數據或時鐘等有效信號。GPIO的驅動強度可通過GPIO_PIN_CFG命令中的GEN_CONFIG參數進行調整。默認是最小值。

14.調製類型選擇

si4438支持三種不同的調製選項用於不同的配置中以適應不同的應用。通過MODEM_MOD_TYPE中設置。

調製類型:高斯頻移鍵控 (GFSK)、頻移鍵控 (FSK)、開關鍵控 (OOK)

GFSK 爲推薦使用的調製類型,因其可提供最佳性能和最潔淨的調製頻譜,過“MODEM_MOD_TYPE”API 屬性中的“MOD_TYPE[2:0]”寄存器設置調製類型

15.FIFO模式

FIFO模式中,傳輸和接收數據存儲在集成的FIFO寄存器存儲器中。

寫命令66h並在其後緊跟主機想要寫進TX FIFO的數據/時鐘以訪問TX FIFI

寫77h並在其後緊跟主機想要從RX FIFO讀取的時鐘週期數,以訪問RX FIFO。RX數據會被時鐘輸出到SDO

1)TX FIFO模式中,儲存在 FIFO 存儲器中的數據字節會和其他字段和字節信息一同被“打包”以構建最終的傳輸數據包結構。這些其他潛在的字段包括前導碼、同步字、和 CRC 校驗和。在 TX 模式中,可通過啓用或禁用單獨的字段以高度定製數據包結構;例如,可通過禁用前導和同步字字段以將整個數據包結構導入 FIFO 存儲器。

2)在 RX 模式下,必須啓用分組處理程序,方可使存儲的已接收數據字節傳輸至 RX FIFO 存儲器。分組處理程序需要檢測同步字,需要恰當的同步字檢測來確定有效荷載的開始。除 CRC 校驗和(可選)可變數據包長度字節外,在同步字後的所有字節都會存儲到 RX FIFO 存儲器中。

16.數據處理

si4438集成了兩個64字節的FIFO,分別用於RX、TX。

當寫入0x66進寄存器,數據導入TX FIFO,寫入0x77,從RX FIFO中讀取數據。

1)當FIFO幾乎清空時,TX FIFO會出現閾值,該閾值可通過“TX_FIFO_EMPTY”屬性設置。當數據幾乎達到空域值時,會發生中斷事件。

如果沒有更多數據導入FIFO,在PACKET_SEND中斷髮生後芯片會自動退出TX狀態。

2)RX FIFO有一個通過“RX_FIFO_FULL“屬性可編程閾值,當收到RX數據幾乎滿閾值時,會通過nIRQ引腳對MCU產生中斷。MCU從RX FIFO讀取數據。

通過FIFO_RESET命令可清除或重置TX和RX FIFO。

17.喚醒定時器

作用:用於定期從睡眠模式中喚醒芯片。可從內部32KHz RC振盪器或外部32KHZ XTAL進行。

定時器配置:GLOBAL_WUT_CONFIG屬性中的WUT_EN=1,喚醒定時器會按照GLOBAL_WUT_R和GLOBAL_WUT_M屬性中定義的時間進行計數。

如果該中斷在INT_CTL_CHIP_ENABLE屬性中被啓用,在這個週期結束時,會在nIRQ引腳產生中斷。

微控制器會通過GET_INT_STATUS或快速響應寄存器讀取中斷狀態來確認中斷。喚醒週期公式如下:

RC振盪器頻率會隨溫度變化,要定期校準。須在 GLOBAL_WUT_CONFIG 屬性中設置 CAL_EN,並且通過相同 API 屬性中的 WUT_CAL_PERIOD[2:0] 選擇想要的校準週期。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章