Silicon Labs Wireless Transceiver SI446x Application Skills Tutorial

Silicon Labs' wireless Sub-G product Si446x is now used more and more for metering products such as gas meters and electricity meters. Due to the wide range of applications of TI's CC1101 series in the old products of metering, customers will encounter compatibility problems with CC1101 when using Si446x. This document will solve this problem.

The Si446x has hardware CRC, Whitening, and software CRC, Whitening. Because CRC, Whitening, and Manchester are not used, the Si446x and CC1101 communication configurations are relatively simple. Refer to the Si446x works with CC1101_v1.11.pdf document. This document only discusses CRC, Whitening, and Manchester is also enabled when configured.

The Si446x provides software CRC, Whitening algorithm support and CC1101 compatibility. The SW_WHT_CTRL and SW_CRC_CTRL bits of the register PKT_WHT_BIT_NUM 0x1205 need to be set to enable SW whitening and SW CRC. In order to ensure that the Si446x turns on the SW whitening feature to communicate with CC1101, the registers PKT_WHT_SEED_15_8 0x1203 and PKT_WHT_SEED_7_0 0x1204 need to be set to 0xFF.

When the Si446x is the most transmitting end, the packet format needs to be configured as follows:

Since SW CRC and SW Whitening have been turned on, the hardware CRC and Whitening must be turned off to avoid double counting CRC and Whitening. The PN_START and WHITEN bits of the PKT_FIELD_1_CONFIG register are cleared, and the register PKT_FIELD_1_CRC_CONFIG is also configured to 0x00. The hardware CRC is turned off. In order to send the value of the 2-byte CRC calculated by the software CRC, two bytes need to be sent to the TX FIFO as the CRC byte when transmitting data, and an additional increase is required when configuring the length of Field1. 2 bytes. For example, the transmitted data is 7 bytes, PKT_FIELD_1_LENGTH_12_8 and PKT_FIELD_1_LENGTH_7_0 are configured as 0x00, 0x09. The figure below is a diagram with a data length of 7, where the last two bytes can be any value.

When the Si446x is the most receiving end, the packet format needs to be configured as follows:

Silicon Labs Wireless Transceiver SI446x Application Skills Tutorial

Since SW CRC and SW Whitening have been turned on, the hardware CRC and Whitening must be turned off to avoid double counting CRC and Whitening. The PN_START and WHITEN bits of the PKT_FIELD_1_CONFIG register are cleared, and the register PKT_FIELD_1_CRC_CONFIG is also configured to 0x00. The hardware CRC is turned off. In order to send the value of the 2-byte CRC calculated by the software CRC, two bytes need to be sent to the TX FIFO as the CRC byte when transmitting data, and an additional increase is required when configuring the length of Field1. 2 bytes. For example, the transmitted data is 7 bytes, PKT_FIELD_1_LENGTH_12_8 and PKT_FIELD_1_LENGTH_7_0 are configured as 0x00, 0x09. The figure below is a diagram with a data length of 7, where the last two bytes can be any value.

Silicon Labs Wireless Transceiver SI446x Application Skills Tutorial

When the Si446x is the most receiving end, the packet format needs to be configured as follows:

Silicon Labs Wireless Transceiver SI446x Application Skills Tutorial

Also, since SW CRC and SW Whitening are enabled, the PN_START and WHITEN bits of the PKT_FIELD_1_CONFIG register need to be cleared. The register PKT_FIELD_1_CRC_CONFIG is also configured to 0x00, turning off the hardware CRC and Whitening. If the PH_FIELD_SPLIT bit of the register PKT_CONFIG1 0x1206 is configured, the TX and RX registers are configured separately. The PN_START and WHITEN bits of the register PKT_RX_FIELD_X_CONFIG (X = 1, 2) need to be cleared. The register PKT_RX_FIELD_X_CRC_CONFIG (X = 1, 2) is set to 0x00. . Since the hardware CRC is disabled, the CRC byte is not automatically received when receiving data, and the length of the received Field2 contains only Address and Data. In order to receive the CRC byte from the air, it is necessary to tell the IC to receive 2 more bytes. These 2 bytes are the CRC bytes. Therefore, it is necessary to adjust the length of the packet at the receiving end, which is configured in the following two cases.

1. The receiving end is configured as a fixed packet length mode (the ENDIAN bit of the register PKT_LEN is 0)

a. If the PH_FIELD_SPLIT bit is 0, the length of Feild1 is configured to 1, the registers PKT_FIELD_1_LENGTH_12_8 and PKT_FIELD_1_LENGTH_7_0 are configured to be 0x00, and the length of 0x01.Feild2 needs to be added by 2 bytes. For example, if 7 bytes are sent above, the registers PKT_RX_FIELD_2_LENGTH_12_8 and PKT_RX_FIELD_2_LENGTH_7_0 are configured as 0x00, 0x09.

b. The PH_FIELD_SPLIT bit is 1, and the above registers are the corresponding PKT_RX_FIELD_1_LENGTH and PKT_RX_FIELD_2_LENGTH.

2. The receiving end is configured as a variable packet length mode.

Then PKT_LEN needs to be configured as 0x21, PKT_LEN_FIELD_SOURCE is configured as 0x02, indicating that the variable packet length mode is enabled, Feild1 is an immutable area, and Feild2 is a variable packet length area. In this case, you can configure PKT_LEN_ADJUST to 0x02, and the receiver will automatically increment 2 bytes when receiving data. PKT_LEN_ADJUST is only for variable packet lengths. The following figure shows the configuration diagram of the corresponding transmission.

Silicon Labs Wireless Transceiver SI446x Application Skills Tutorial

Add Manchester on the above, the sender needs to set the MANCH bit of PKT_FIELD_1_CONFIG to 1; the receiver needs to set the MANCH bit of PKT_FIELD_1_CONFIG and PKT_FIELD_2_CONFIG at the same time, or the MANCH bit of PKT_RX_FIELD_1_CONFIG and PKT_RX_FIELD_2_CONFIG at the same time.

note:

1. Since SW CRC and SW Whitening are not set in the WDS, it is necessary to generate a project based on the WDS configuration, and modify the relevant registers in the project.

2. In the variable packet length mode, if PACKET_INFO is used to read the received packet length, the actual packet length is obtained, and the next state after the device receives the data successfully cannot be set to the RX state, which is read. The data length is the length of the last data received. If the data enters the next state after receiving the data successfully, the data obtained using the PACKET_INFO command will be 0. This is similar to reading the RSSI value.

Bluetooth speaker

Bluetooth Speakers,Bluetooth Speaker,Portable Speakers,Mini Speaker

Dongguan Guancheng Precision Plastic Manufacturing Co., Ltd. , https://www.dpowergo.com