English
Language : 

BC9824 Datasheet, PDF (8/22 Pages) Holtek Semiconductor Inc – Low Power High Performance Low Power High Performance
BC9824
• Payload
The payload is the user defined content of the
packet. It can be 0 to 32 bytes wide, and it is
transmitted on-air as it is uploaded (unmodified) to
the device.
The BC9824 provides two alternatives for handling
payload lengths, static and dynamic payload length.
The static payload length of each of six data pipes
can be individually set.
The default alternative is static payload length.
With static payload length all packets between a
transmitter and a receiver have the same length.
Static payload length is set by the RX_PW_Px
registers. The payload length on the transmitter
side is set by the number of bytes clocked into the
TX_FIFO and must equal the value in the RX_
PW_Px register on the receiver side. Each pipe has
its own payload length.
Dynamic Payload Length (DPL) is an alternative to
static payload length. DPL enables the transmitter
to send packets with variable payload length to the
receiver. This means for a system with different
payload lengths it is not necessary to scale the
packet length to the longest payload.
With DPL feature the BC9824 can decode the pay-
load length of the received packet automatically
instead of using the RX_PW_Px registers. The
MCU can read the length of the received payload
by using the command: R_RX_PL_WID.
In order to enable DPL the EN_DPL bit in the
FEATURE register must be set. In RX mode the
DYNPD register has to be set. A PTX that transmits
to a PRX with DPL enabled must have the DPL_P0
bit in DYNPD set.
• CRC
The CRC is the error detection mechanism in the
packet. The number of bytes in the CRC is set
by the CRCO bit in the CONFIG register. It may
be either 1 or 2 bytes and is calculated over the
address, Packet Control Field, and Payload.
The polynomial for 1 byte CRC is X8 + X2 + X + 1.
Initial value is 0xFF.
The polynomial for 2 byte CRC is X16 + X12 + X5 +
1. Initial value is 0xFFFF.
No packet is accepted by receiver side if the CRC
fails.
Packet Handling
BC9824 uses burst mode for payload transmission
and receive.
The transmitter fetches payload from TX FIFO, au-
tomatically assembles it into packet and transmits
the packet in a very short burst period with 1Mbps or
2Mbps air data rate.
After transmission, if the PTX packet has the NO_
ACK flag set, BC9824 sets TX_DS and gives an active
low interrupt IRQ to MCU. If the PTX is ACK packet,
the PTX needs receive ACK from the PRX and then
asserts the TX_DS IRQ.
The receiver automatically validates and disassembles
received packet, if there is a valid packet within the
new payload, it will write the payload into RX FIFO,
set RX_DR and give an active low interrupt IRQ to
MCU.
When auto acknowledge is enabled (EN_AA=1), the
PTX device will automatically wait for acknowledge
packet after transmission, and re-transmit original
packet with the delay of ARD until an acknowledge
packet is received or the number of re-transmission
exceeds a threshold ARC. If the later one happens,
BC9824 will set MAX_RT and give an active low in-
terrupt IRQ to MCU. Two packet loss counters (ARC_
CNT and PLOS_CNT) are incremented each time
a packet is lost. The ARC_CNT counts the number
of retransmissions for the current transaction. The
PLOS_CNT counts the total number of retransmis-
sions since the last channel change. ARC_CNT is
reset by initiating a new transaction. PLOS_CNT is
reset by writing to the RF_CH register. It is possible
to use the information in the OBSERVE_TX register
to make an overall assessment of the channel quality.
The PTX device will retransmit if its RX FIFO is full
but received ACK frame has payload.
As an alternative for PTX device to auto retransmit it
is possible to manually set the BC9824 to retransmit
a packet a number of times. This is done by the
REUSE_TX_PL command.
When auto acknowledge is enabled, the PRX device
will automatically check the NO_ACK field in re-
ceived packet, and if NO_ACK=0, it will automati-
cally send an acknowledge packet to PTX device. If
EN_ACK_PAY is set, and the acknowledge packet
can also include pending payload in TX FIFO.
Rev. 1.00
8
October 20, 2015