User manual

www.ti.com
RF Core HAL
When the system CPU prepares a command structure, the CPU must initialize the status field to Idle.
Commands may be set up in a loop. If so, the system CPU must not modify command structures until the
radio CPU becomes idle (the system CPU receives a LAST_COMMAND_DONE interrupt; see
Section 23.3.2.3, Interrupts), even if the status is Finished or Skipped.
23.3.2.3 Interrupts
The radio CPU has 32 software interrupt sources that generate the RFCPE0 and RFCPE1 interrupts in
the system CPU. An interrupt flag register can tell which software interrupt has been raised, and the
interrupts are enabled individually. In addition, the RFCMDACK interrupt is raised automatically when
[CMDSTA] is updated.
Some of the software defined interrupts have a common meaning across all commands; the details of
each of the other interrupts are defined for each protocol that uses a particular interrupt. Some interrupts
are only used in one protocol, while others are used in several protocols. A list of all the interrupts is found
in the description of the [RFCPEIFG] register (see Table 23-138, RFCPEISL Register Field Descriptions
table).
23.3.2.4 Passing Data
The two basic ways of passing data transmitted or received over the air are directly, or through a queue.
The most straight-forward way to pass data is to append it as part of the command parameters (directly or
through a pointer). The exact format depends on the command being run; normally there is a length field
and a data buffer for TX and a maximum length, received length (if variable length), and receive buffer for
RX.
For some operations, the number of packets received or transmitted (or which packet out of a few that will
actually be transmitted) cannot be known in advance. For such operations, use a concept of queues. An
operation can use one or more queues, for instance one RX and one TX queue for a combined RX/TX
operation, or several queues depending on information in the received packets. Any operation using
queues uses a common system for maintaining them, as explained in Section 23.3.2.7, Data Entry
Structures.
A radio operation command declares which data method is used.
23.3.2.5 Command Scheduling
The system CPU is responsible for scheduling the commands as required. When using low-power modes,
the system CPU must wake up a short time before the start of the next operation, using the real-time
clock.
A radio operation command can be scheduled with a delayed start (see Section 23.3.2.5.1, Triggers). If a
command is started with a delay, the radio CPU goes to idle mode until the command starts. The radio
operation command is considered to be running during this delay, and no other radio operation command
can be scheduled unless the pending command is aborted or stopped first.
The system CPU can schedule back-to-back radio operation commands by using the next operation
pointer in any radio operation command. This pointer can point to the next command to perform in the
chain, and by this method, complex operations can be made. Under some conditions (such as an error or
the expiration of a timer), the next command is not started. Instead, the operation will end or a number of
commands may be skipped (see Section 23.3.2.5.2, Conditional Execution). If a new command is
scheduled while another command is running, the system CPU must wait for the previous command or
chain of commands to finish. The IEEE 802.15.4 commands have exceptions for this rule.
When a radio operation command is finished, the radio CPU raises a Command_Done interrupt to the
system CPU. If a number of commands are chained as explained above, the Command_Done interrupt is
raised after each command, while the LAST_COMMAND_DONE interrupt is raised after the last command
in the chain. For one, non-chained command, the LAST_COMMAND_DONE interrupt is also raised after
the command. When LAST_COMMAND_DONE is raised, Command_Done is always raised at the same
time. Before raising the Command_Done interrupt, the radio CPU updates the status field of the command
structure to a status that indicates that the command is finished. The radio CPU does not access the
command structure after raising the Command_Done interrupt.
1461
SWCU117AFebruary 2015Revised March 2015 Radio
Submit Documentation Feedback
Copyright © 2015, Texas Instruments Incorporated