ST意法半导体
直播中

小黑羊

13年用户 1151经验值
擅长:31274
私信 关注
[问答]

两个标签组合时出现ST25R3911B错误怎么解决?

我正在做的是在存在 1 或 2 个 NFCA 标签的情况下执行防碰撞。
当只用一个标签进行防碰撞时,该函数从不报错,总是正确地找到 1 个标签。
使用两个标签执行防碰撞时:
  • 有两个 NFCA 标签的组合,它们总是完美地工作 (ERR_NONE) 并找到所有标签。
  • 有两个 NFCA 标签的组合总是失败。
当组合总是失败时:
  • 如果我针对大小 (-Os) 进行了优化,错误总是 ERR_FRAMING(与 PDe 在同一位置),如果我再次调用防碰撞功能,它只会找到 1 个标签(但有两个!)。
  • 如果我优化了大多数(-O3)错误总是ERR_INCOMPLETE_BYTE,如果我再次调用防碰撞函数,错误是ERR_tiMEOUT,如果我再次调用它,ERR_INCOMPLETE_BYTE,......
  • 当只有一个标签存在时,所有标签都可以正常工作。
---------------------------------------------- ---------------------------------------------- ------------------------------
尤利西斯·赫尼奥索斯
打开 Ulysses HERNIOSUS 预览
(ST员工)
嗨 EBadi.2,
我建议您为这种行为创建一个单独的票证。我有一些想法,但还需要更多信息,您可以将这些信息张贴在这张单独的票证中:
  • 你用哪个参数调用哪个函数?
  • 你在哪些帧观察到这种行为?REQA/SENS_REQ 或防碰撞/SDD_REQ 或 SELECT/SEL_REQ?我们的冲突解决函数旨在处理多个标签。
---------------------------------------------- ---------------------------------------------- ------------------------------
err = rfalNfcaPollerInitialize(); /* 为 NFC-A 初始化 */
错误 = rfalFieldOnAndStartGT(); /* 如果还没有打开 Field 并启动 GT 定时器
err = rfalNfcaPollerTechnologyDetection(RFAL_COMPLIANCE_MODE_NFC, &sensRes);
err = rfalNfcaPollerInitialize();
错误 = rfalFieldOnAndStartGT(); /* 如果还没有打开 Field 并启动 GT
err = rfalNfcaPollerFullCollisionResolution( RFAL_COMPLIANCE_MODE_NFC, (MAX_TAGS_TO_READ), nfcaDevList, &totalTags );
我看到的错误是在最后一次通话中,这是您要问的吗?
在哪里可以找到这些:REQA/SENS_REQ 或 anticollision/SDD_REQ 或 SELECT/SEL_REQ?






回帖(1)

何丽

2023-1-9 11:08:30
我终于找到了问题所在。有几项需要修复,主要与配置 GPIO 和 SPI 相关:


  • SPI 设置为 80MHz/128,现在为 80MHz/16
  • SPI GPIO 设置为 FREQ_LOW,现在设置为 FREQ_VERY_HIGH
  • SPI 中断现在具有更高的优先级
  • RFID 中断 GPIO 没有任何下拉,现在在微控制器内部配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分