DW1000 to insert into the PHR, and thereafter the host microprocessor needs to have the individual octets
of data written into the TX_BUFFER before they are consumed by the DW1000 transmitter.
Clearly to do this care needs to be taken to have the frame length setup ready for inclusion in the PHR and to
have the data written into the TX_BUFFER before it is consumed, and, mechanisms are needed to ensure
that the wrong data cannot be sent as a good frame. The mechanisms to achieve this involves using SFCST
to suppress FCS transmission until all data is written to the TX_BUFFER and then CANSFCS to cancel this
suppression so that the FCS will be sent. (Both SFCST and CANSFCS are in Register file: 0x0D – System Control
Register).
While this technique is of use for fast responses, it could also be used for streaming in cases where the use
of the scheme described in section 3.5.1 – TX buffer offset index is not suitable, i.e. where the frame size is
between 513 and 1023 octets.
Similarly if DW1000 is actively receiving, data may be written to the TX_BUFFER while the receiver is active.
The following are the points of note for optimum throughput or fast response turnaround:
(a) The frame length should be set up as early as possible:
For streaming, TFLEN, TFLE, TXBOFFS, may be reprogrammed for the next frame as soon as the PHR
is sent, i.e. after the TXPHS (Transmit PHY Header Sent) event has been signalled.
For transmission of a response, depending on the application, the length of the response may be
known before the soliciting message has arrived. This is often true for example in two-way ranging.
(b) Initiate transmission as early as possible:
For streaming this is as soon as the previous transmission has finished or previous reception has
finished (RXDFR has been set). This is signalled by the activation of the TXFRS (Transmit Frame Sent)
event status bit is set in Register file: 0x0F – System Event Status Register, an event that would
generally be picked up by an interrupt handler in the host system.
For transmission of a response, the application may have to parse some of the message before
deciding whether a response is required. This parsing could perhaps be begun early but in any case
the initiation of transmission will in general be as soon as possible after the arrival of the message
soliciting the response. Message arrival is signalled by the RXDFR (Receiver Data Frame Ready) event
status bit in Register file: 0x0F – System Event Status Register, an event also generally picked up by
an interrupt handler in the host system.
Issue the TXSTRT with SFCST (Transmit Start with Suppress auto-FCS Transmission) instruction in
Register file: 0x0D – System Control Register to initiate the transmission. This will kick off preamble
transmission.
(c) Write the frame data to the TX_BUFFER as fast as possible.
This might be done in the interrupt handler or in a high priority task scheduled by it.
(d) Cancel the suppression of FCS as soon as possible thereafter.
This is done by issuing the CANSFCS (Cancel Suppression of auto-FCS transmission) instruction in
Register file: 0x0D – System Control Register. Assuming that the host has written every octet of data