SWCU185G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
The CMD_PROP_RX receives packets with the format from
Figure 1-1. The parameters are as given in Table 26-174.
The modem configures the receiver and starts listening for sync. The sync word to listen for is given in the syncWord field, in the LSBs if less than 32 bits are used. The word is in the bit order programmed in the radio.
If sync is found, the radio CPU starts receiving data. If pktConf.bVarLen is 1 and maxPktLen is nonzero, a length byte is assumed as the next byte. This length byte is compared to maxPktLen, and if it is greater, reception is stopped and synch search is restarted. Otherwise, this indicates the number of bytes after the length byte and before the CRC. If pktConf.bVarLen is 0, the length is fixed, and the receiver assumes maxPktLen bytes after the sync word and before the CRC. If maxPktLen is zero, the length is unlimited as described in the beginning of Section 26.10.5.4.
If pktConf.bChkAddress is 1, an address byte is checked next. The address byte is checked against the values of address0 and address1. If only one address is needed, these two fields must be set to the same value. If address1 is 0xFF, it is also checked against the value 0x00. To check for 0xFF without checking for 0x00, address0 must be the one set to 0xFF. If the address byte does not match the configured addresses, the further treatment depends on pktConf.filterOp. If this is 0, reception is stopped and synch search is restarted. If it is 1, the packet is received as if the address had matched, but it is marked as ignored.
If the packet is being received, the data is placed in the receive buffer. This receive buffer is found from the receive queue pointed to by pQueue. If pQueue is NULL, the packet is never stored.
If pktConf.bUseCrc is 1, a CRC is received and checked at the end. The number of CRC bits, polynomial, and initialization are as configured in the radio. The CRC is calculated over the length byte (if present), the optional address, and the payload. If pktConf.bUseCrc is 0, the treatment is as for CRC OK.
If whitening is enabled, the optional length byte, the payload including the optional address, and the received CRC are subject to dewhitening. The dewhitening is done before the CRC is evaluated.
If a status byte is appended (rxConf.bAppendStatus is 1) to the packet, it is formatted as follows (see Table 26-180). If pktConf.addressMode is nonzero, the addressInd field is 0 if the address matched address0, 1 if it matched address1, 2 if it matched 0x00 and this address was enabled, and 3 if it matched 0xFF and this address was enabled. Otherwise, addressInd is 0. The syncWordId field is always 0 for CMD_PROP_RX. The result field is written according to Table 26-186.