ST25DV NFC调试记录

news/2024/10/22 5:02:23/

        1、硬件层适配,主要是iic驱动的适配

只要按如下的进行适配相应实现即可

  IO.Init         = NFCMEM_IO_Init;//iic相关初始化
  IO.DeInit       = NFCMEM_IO_DeInit;
  IO.IsReady      = NFCMEM_IO_IsDeviceReady;//iic设备是否ready
  IO.Read         = NFCMEM_IO_MemRead;//iic read
  IO.Write        = (ST25DV_Write_Func)NFCMEM_IO_MemWrite;//iic write
  IO.GetTick      = NFCMEM_IO_Tick;
 st有提供了完善的nfc驱动参考,提供的iic实现是基于硬件iic的,要在非st mcu上实现的话需要自行移植实现iic时序

iic 写时序

iic 读时序

iic ready判断

      模拟iic通信时io设置为PP输出时可通信,但逻辑分析仪解包异常,修改为OD输出可通信同时逻辑分析仪解包正常。

 2、适配iic硬件驱动后按nfc的标准规定NDEF写nfc

 NDEF其实是按一定格式组织tlv二进制数据写到eeprom,因此iic驱动没问题后可尝试写入读取验证nfc的eeprom可读可写。


  /* Check if no NDEF detected, init mem in Tag Type 5 */
  if( NfcType5_NDEFDetection( ) != NDEF_OK )
  {
    CCFileStruct.MagicNumber = NFCT5_MAGICNUMBER_E1_CCFILE;
    CCFileStruct.Version = NFCT5_VERSION_V1_0;
    CCFileStruct.MemorySize = ( ST25DVXXKC_MAX_SIZE / 8 ) & 0xFF;
    CCFileStruct.TT5Tag = 0x05;
    /* Init of the Type Tag 5 component (M24LR) */
    while( NfcType5_TT5Init( ) != NFCTAG_OK );
  }
没用到extmemeorysize,因此ST25DVXXKC_MAX_SIZE取值最大0x200,取值更大的话会导致后续NDEF_Write一直失败

3、FTM模式,该模式可以方便直接让mcu和手机等直接相互通信,可以用来传输文件如epaper更新图片显示或者固件升级等作用

   st有专门为ftm写了一个ftm协议库,只需移植ftm库后就可以方便的通过手机app和mcu相关通信,ftm移植需要注意crc的实现,同时iic的速率大于200Khz。

 4、 st的st25dv库的bug

int32_t ST25DVxxKC_ReadMemSize(const ST25DVxxKC_Object_t *const pObj, ST25DVxxKC_MEM_SIZE_t *const pSizeInfo)
{
  uint8_t memsize_msb;
  uint8_t memsize_lsb;
  int32_t status;
  
  /* Read actual value of MEM_SIZE register */
  status = ST25DVxxKC_GetMEM_SIZE_LSB(&(pObj->Ctx), &memsize_lsb);
  if(status == NFCTAG_OK)
  {
    status = ST25DVxxKC_GetMEM_SIZE_MSB(&(pObj->Ctx), &memsize_msb);
    if(status == NFCTAG_OK)
    {
      status = ST25DVxxKC_GetBLK_SIZE(&(pObj->Ctx), &(pSizeInfo->BlockSize));
      if(status != NFCTAG_OK)//!=要改为== 
      {
        /* Extract Memory information */
        pSizeInfo->Mem_Size = memsize_msb;
        pSizeInfo->Mem_Size = (pSizeInfo->Mem_Size << 8) |memsize_lsb;
      }
    }
  }
  return status;
}
 


http://www.ppmy.cn/news/253537.html

相关文章

dvhop三边测量法MATLAB,基于非测距的DV-Hop定位算法改进

无线传感器网络是由大量随机分布的传感器节点组成,是一种分布式的、自组织的网络。其关键技术包括:网络拓扑控制、节点定位、时钟同步、数据融合、路由协议等。而节点定位问题则是无线传感器网络中的一个最为基本和重要的问题。目前,无线传感器网络定位算法可以分为基于测距…

dv路由算法c语言实现,路由协议之DV算法

#include #define ROUTER_OF_NUMBER 100 //网络中路由的最大数目 #define MaxExp 10000 //假设为此路由费用为无穷大 int RouterNum; //网络中路由的个数 //定义一个路由的信息 struct Router { int exp; //每条链路的费用 int neighbor; //相邻节点的信息,若两节点相邻设置为1…

MOSFET的dV/dt失效

MOSFET的失效机理 本文的关键要点 ・dV/dt失效是MOSFET关断时流经寄生电容Cds的充电电流流过基极电阻RB&#xff0c;使寄生双极晶体管导通而引起短路从而造成失效的现象。 ・dV/dt是单位时间内的电压变化量&#xff0c;VDS的上升坡度越陡&#xff0c;越容易发生MOSFET的dV/d…

产品生产的各个阶段:DV,EV,PV ········是什么意思

ES指:engineering sample 工程样板 EP是指工程设计阶段样板 FEP是指确认阶段样板 CS&#xff1a;comercial sample 商品试样 PP:pre-production or pilot production 预生产或 试生产 MP:mass production 批量生产 ---- DV design verification 设计验证 ---- EV engineering…

一篇文章看明白什么是DV、OV、EV证书

目录 一、序言 二、DV/OV/EV证书说明 三、DV/OV/EV证书区别 WIN系统 OV型和EV型证书在浏览器显示效果 WIN系统 DV证书显示效果​ MAC Firefox火狐浏览器DV证书显示效果 MAC Safari浏览器DV证书显示效果 四、单域名和泛域名证书 五、小结 一、序言 由于近期单位上线缴…

KVO实现原理

概览 本文分为两个大的方面。一、kvo的简单使用场景。二、kvo的来龙去脉&#xff0c;讲讲苹果的实现。 KVO 使用方法&#xff0c;和常用场景。 Key-value observing is a mechanism that allows objects to be notified of changes to specified properties of other objects…

2022-2028全球与中国近场扫描光学显微镜(NSOM)市场现状及未来发展趋势

【报告篇幅】&#xff1a;89 【报告图表数】&#xff1a;127 【报告出版时间】&#xff1a;2021年12月 报告摘要 根据简乐尚博&#xff09;的统计及预测&#xff0c;2021年全球近场扫描光学显微镜&#xff08;NSOM&#xff09;市场销售额达到了0.6亿美元&#xff0c;预计2028…

投影仪-相机标定

1. 单目相机标定 引言 相机标定已经研究多年&#xff0c;标定的算法可以分为基于摄影测量的标定和自标定。其中&#xff0c;应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统&#xff0c…