我正在尝试使用 X-NUCLEO-
NFC06A1 扩展板与 ISO14443-A 智能卡进行
通信。根据收到的 ATS,智能卡支持以下比特率:106、212、424 和 848 kbit/s。如果我在传输和接收中与智能卡协商 848 kbit/s 比特率,并且我尝试发送 APDU,rfal 库在接收中返回 ERROR FRAMING。特别是错误是由 rfal_rfst25r3911.c 文件中实现的 rfalTransceiveRx() 方法返回的:
- case RFAL_TXRX_STATE_RX_WAIT_RXE:
- irqs = st25r3911Getinterrupt( (ST25R3911_IRQ_MASK_RXE | ST25R3911_IRQ_MASK_FWL | ST25R3911_IRQ_MASK_EOF) );
- if( irqs == ST25R3911_IRQ_MASK_NONE )
- {
- /*******************************************************************************/
- /* REMARK: Silicon workaround ST25R3911B Errata #1.1 */
- /* ST25R3911 may indicate RXS without RXE afterwards, this happens rarely on */
- /* corrupted frames. */
- /* SW timer is used to timeout upon a missing RXE */
- if( rfalTimerisExpired( gRFAL.tmr.RXE ) )
- {
- gRFAL.TxRx.status = ERR_FRAMING;
- gRFAL.TxRx.state = RFAL_TXRX_STATE_RX_FAIL;
- }
- /*******************************************************************************/
- break; /* No interrupt to process */
- }
好像是芯片没有收到帧结束,出现定时器中断。相反,如果将比特率设置为 424 kbit/s,则不会出现任何问题。有没有人可以解释我为什么会这样?此外,我在哪里可以找到 ST25R3911B 勘误表 #1.1?