SWCU192 November 2021 CC1312R7 , CC1352P7 , CC2652P7 , CC2652R7
Proprietary mode supports an RX entry where the data can be read before the entire packet is received over the air, which can be used for the following purposes:
To support this, a special variant of the structure in Table 26-11 is used. Several entry elements may be contained in the same entry. Each entry element corresponds to one packet received over the air, or part of it. The element may also contain additional fields. This type is selected by setting config.type to 3. In the entry, the data field is composed as shown in Table 26-13 (the indexes are relative to the entire entry structure).
Byte Index | Byte Field Name | Bits | Bit Field Name | Type | Description |
---|---|---|---|---|---|
8–9 | pktStatus | 0–12 | numElements | R | Number of entry elements committed in the entry |
13 | bEntryOpen | R | The entry contains an element that is still open for appending data. | ||
14 | bFirstCont | R | The first element is a continuation of the last packet from the previous entry. | ||
15 | bLastCont | R | The packet in the last element continues in the next entry. | ||
10–11 | nextIndex | R | Index to the byte after the last byte of the last entry element committed by the radio CPU | ||
12–(7+n) | rxData | R | Data received. Exact format depends on operation being run. Each entry element may start with a length byte or word. |
The entry is updated as follows:
When an entry element is finished, either because the packet ended or because the element reached the end of the entry, pktStatus.bEntryOpen is set to 0 by the radio CPU, and pktStatus.numElements is incremented. If the packet continues in the next entry, pktStatus.bLastCont is set to 1 by the radio CPU. In this case, the pktStatus.bFirstCont bit of the next entry is also set to 1 by the radio CPU. If no next entry is available, the status is set to Unfinished, otherwise it is set to Finished.
The length field specified in the beginning of an entry element (depending on config.lenSz) gives the length of that entry element within the entry, not the entire packet. If the length is not known when the entry is opened, the length field is written to the remaining length of the entry and updated by the radio CPU before the entry is finished.
For a partial read RX entry, the radio CPU generates an Rx_Data_Written interrupt to the system CPU whenever one or more bytes are written to the entry. In addition, it generates an Rx_N_Data_Written interrupt when k bytes have been written since the last interrupt or the start of the entry element, where k is given by config.irqIntv.