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] 选择想要的校准周期。

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