当LPD为高电平时在邮箱中发布消息时,GPO会中断
有两件事需要考虑:GPO配置和邮箱行为。 首先,关于GPO配置。 ST25DV有一个用于GPO的静态配置寄存器,称为“GPO”(参见数据表的表18)和动态寄存器“GPO_CTRL_Dyn”(参见数据表的表20)。 静态寄存器GPO是必须用于配置要在GPO引脚上看到哪个中断,以及在引导时(及之后)启用/禁用GPO引脚输出的寄存器。 动态寄存器GPO_CTRL_Dyn仅允许动态启用或禁用GPO引脚上的输出。此外,只能写入GPO_CTRL_Dyn寄存器的第7位,并且只能从I2C写入(数据表的表20中存在错误,RF无法对该寄存器进行写访问,如表9所示)。 0-6位只能从I2C和RF读取,只是GPO寄存器位0到6值的副本。 与GPO寄存器相反,GPO_CTRL_Dyn寄存器也是易失性寄存器。这意味着它的值在标签的每次断电时复位(意味着没有VCC(或LPD高电平)且没有RF场)。 总而言之,如果要配置GPO中断,则必须使用GPO寄存器。如果在VCC打开且LPD为低电平(标签由VCC供电)期间,I2C主机要暂时禁用中断,则可以使用GPO_CTRL_Dyn寄存器(将bit7设置为0)。 二,关于邮箱: 有一个重要的事情需要了解邮箱:必须存在VCC电源才能访问邮箱(数据表的图11中显示了这一点)。 如果LPD设置为高,则表示ST25DV没有电源,因此禁用了邮箱。在这种情况下,RF阅读器无法读取或写入邮箱内的数据。 所以正确的做法是: - 通过在MB寄存器中设置MB_MODE = 1来允许快速转移模式。 - 在GPO寄存器中启用FIELD_CHANGE_EN和RF_PUT_MSG_EN中断(加上GPO_EN = 1)=> GPO 0x98在全局= - 通过将LPD引脚设置为高电平并为VDCG引脚供电,将ST25DV设置为掉电模式。 - 当RF阅读器为标签提供RF场时,将触发FIELD_CHANGE中断并唤醒I2C主机。 - 然后,I2C主机应将LPD引脚连接至低电平,以便通过VCC为ST25DV供电。 - RF读卡器可以通过在开始写入邮箱之前轮询EH_CTRL_Dyn寄存器来检查ST25DV是否通过VCC供电。位3 VCC_ON将指示ST25DV是否通过VCC供电。 - 然后,RF阅读器可以使用MB_CTRL_Dyn寄存器位0启用邮箱,并开始写入邮箱。 - 当RF阅读器完成将信息写入邮箱时,将自动触发RF_PUT_MSG中断。 |