请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2650 主题中讨论的其他器件:TRF7960A、
团队、
我有一位客户正在根据 SLOC297握手 CC2650和 TRF7960A。 我从 NFC 团队开始、但他们现在将我推到了您的身边、以解决以下问题。 最初的论坛帖子从 这里开始。
-
客户已从端口进行以下重新实现:
他们现在正在成功获得 SLOC297固件以完全初始化 TRF7960A 并针对 ISO15693标签首次调用 NFC_findTag()。 这在发送的逻辑分析仪迹线中很明显。
2、在防碰撞序列被发送(0x8F、0x91、0x3D、0x00、0x30、 0x26、0x01、0x00)、IRQ 线路变为高电平、但代码从不处理 IRQ。
3.在将代码移植到 CC2650的过程中,他们使用以下代码片段设置 IRQ 处理,如下所示。 本质上、它们将 Board_NFC_IRQ 引脚设置为输入、我为引脚驱动的中断(即 IRQ 变为高电平)注册回调函数、被调用的函数应该是从高电平清除 IRQ 的内容。
PIN_Config BoardNFCPinTable[]=
{
Board_NFC_EN | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、/* NFC 最初关闭*/
Board_SPI_NFC_CS | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MAX、
Board_NFC_IRQ | PIN_INPUT_EN | PIN_PULLUGDOWN | PIN_IRQ_DIS | PIN_迟滞、/* NFC_IRQ 为高电平有效*/
PIN_TERMINATE
};
//此函数设置 TRF7960A 引脚
void TRF79xxA_communicationSetup (void)
{
hNFCPin = PIN_OPEN (&pinNFCState、BoardNFCPinTable);
PIN_registerIntCb (hNFCPin、TRF796x_Callback);
MCU_initCounter();
}
//#pragma vector = port2_vector
//__interrupt void
//TRF79xxA_irqHandler (void)//中断处理程序
void TRF796x_Callback (PIN_Handle handle、PIN_ID pinId)
{
uint8_t ui8IrqStatus;
STOP_COUNTER;//停止计时器模式
G_ui8IrqFlag = 0x01;
操作
{
IRQ_CLR;//端口2中断标志清零
//必须读取 IRQ 状态寄存器
ui8IrqStatus = TRF79xxA_readIrqStatus ();
if (ui8IrqStatus = 0xA0)// TX 有效且 FIFO 中只剩下3个字节
{
G_sTrfStatus = TX_WAIT;
中断;
}
其他
{
TRF79xxA_processIRQ (&ui8IrqStatus);
}
} while (IRQ_PIN_STATUS);//(IRQ_PORT & IRQ_PIN)== IRQ_PIN);
//_BIC_SR_REGISTER_ON_EXIT (LPM0_Bits);
}
您能看一下并提出任何想法吗? 客户在请求中包含了逻辑分析仪跟踪、如果有任何帮助。 如果需要、我可以通过电子邮件将其发送给您。