ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
发出命令后,无线电 CPU 会更新 CMDSTA 寄存器,从而将 RFCMDACK 中断发送回系统 CPU。此更新在命令完成立即命令和直接命令之后以及在命令针对无线电操作命令进行调度之后发生。在接收到该中断之前,不能发出新命令。CMDSTA 寄存器由 32 位组成;8 个 LSB 提供结果,而高 24 位可用于每条命令中的特定信令。图 8-2显示了此格式。
图 26-5 CMDSTA 寄存器的格式在结果字节中,第 7 位指示是否发生了错误。0x00 的结果字节(表示挂起)在发出命令时由无线电门铃硬件自动生成,CMDSTA 寄存器中的其他位也变为 0,这是 RF_CMD_ACK 中断发出之前 CMDSTA 的值。
表 26-2 列出了 CMDSTA 寄存器中的结果字节的值。
| 值 | 名称 | 说明 |
|---|---|---|
| 无错误 | ||
| 0x00 | 待定 | 命令尚未解析。 |
| 0x01 | 完成 | 立即命令:命令成功完成。 无线电操作命令:已成功提交命令以供执行。 |
| 误差 | ||
| 0x81 | IllegalPointer | CMDR 中发出信号的指针无效。 |
| 0x82 | UnknownCommand | 命令结构中的命令 ID 号未知。 |
| 0x83 | UnknownDirCommand | 直接命令的命令编号未知,或者该命令不是直接命令。 |
| 0x85 | ContextError | 立即或直接命令在不受支持的上下文中发出。 |
| 0x86 | SchedulingError | 在 RF 内核中已运行另一项操作时,尝试调度无线电操作命令。新命令会被拒绝,而已运行的命令不受影响。 |
| 0x87 | ParError | 提交时解析的命令参数中存在错误。对于无线电操作命令,命令启动后解析的参数中的错误通过命令结束来指示,并在该命令结构的状态字段中指示错误。 |
| 0x88 | QueueError | 已尝试对数据条目队列执行操作,但在当前状态下队列不支持该操作。 |
| 0x89 | QueueBusy | 在数据项繁忙时尝试了对该项的操作。 |
除命令状态寄存器外,每个无线电操作命令还包含一个状态字段(请参阅表 26-9)。此字段可能具有以下类别中的值。
表 26-3 列出了常用命令以及在开始之前解析任何命令时的状态代码。
| 编号 | 名称 | 说明 |
|---|---|---|
| 操作未完成 | ||
| 0x0000 | IDLE | 操作尚未开始。 |
| 0x0001 | PENDING | 等待启动触发。 |
| 0x0002 | ACTIVE | 运行操作。 |
| 0x0003 | SKIPPED | 由于另一条命令中的条件而跳过操作。 |
| 操作正常完成 | ||
| 0x0400 | DONE_OK | 操作正常结束。 |
| 0x0401 | DONE_COUNTDOWN | 计数器达到零。 |
| 0x0402 | DONE_RXERR | 操作因 CRC 错误而结束。 |
| 0x0403 | DONE_TIMEOUT | 操作以超时结束。 |
| 0x0404 | DONE_STOPPED | 在收到 CMD_STOP 命令后停止操作。 |
| 0x0405 | DONE_ABORT | 由 CMD_ABORT 命令中止操作。 |
| 操作完成。存在错误 | ||
| 0x0800 | ERROR_PAST_START | 过去发生了启动触发。 |
| 0x0801 | ERROR_START_TRIG | 非法的启动触发参数。 |
| 0x0802 | ERROR_CONDITION | 下一个操作的条件非法。 |
| 0x0803 | ERROR_PAR | 命令特定参数中出现错误。 |
| 0x0804 | ERROR_POINTER | 指向下一个操作的指针无效。 |
| 0x0805 | ERROR_CMDID | 下一个操作的命令 ID 未定义或者不是无线电操作命令。 |
| 0x0807 | ERROR_NO_SETUP | 在没有 CMD_RADIO_SETUP 的情况下尝试使用 RX、TX 或者合成器的操作。 |
| 0x0808 | ERROR_NO_FS | 在没有对合成器进行编程或通电的情况下尝试使用 RX 或者 TX 的运行。 |
| 0x0809 | ERROR_SYNTH_PROG | 合成器编程失败。 |
| 0x080A | ERROR_TXUNF | 观察到调制解调器 TX 下溢。 |
| 0x080B | ERROR_RXOVF | 观察到调制解调器 RX 上溢。 |
| 0x080C | ERROR_NO_RX | 不存在此类数据时从最后一个 RX 请求的数据。 |
当系统 CPU 准备命令结构时,CPU 应将状态字段初始化为 IDLE。可以循环设置命令。如果是这样,在无线电 CPU 空闲之前,系统 CPU 不得修改命令结构,即使状态已完成或跳过,系统 CPU 也会收到 LAST_COMMAND_DONE 中断(请参阅节 26.11.2)。