极易上手的NFC标签芯片—NGC1081

前段时间使用了某厂的NFC芯片,使用起来需要移植相应的库,并且还需要使用相关函数配置。而最近看上了英飞凌 NGC1081 这款NFC芯片,主要是因为它在芯片内部已经初始化了NFC相关的配置以及初始化了与串口交互的协议,并且它还是一款MCU,这简直不要太香,又能做NFC,又集成了MCU控制。现在来详细探究一下NGC1081这款芯片。

一、NGC1081是一款什么芯片

支持通过NFC供电以及外部电源供电

1、NFC标签

支持ISO/IEC 14443-3A协议

无需配置,开箱即用

2、标签侧控制器

1)内核为Cortex-M0,时钟频率高达28Mhz;

2)集成系统定时器和支持18种NVIC;

3)60K ROM和16K RAM

4)16个GPIO、6个独立系统定时器、1个看门狗定时器、1个串口、1个SPI接口,1个RTC、4通道12位ADC、1个10位DAC、1个比较器、一个电流电压转换器,另外还支持AES加解密,不得不说,作为一颗M0功能还是很强大的。

二、NFC1081使用实操

1、下载源码
NGC1081的SDK与NGC1080的SDK一样,因此直接在官网下载NFC1080SDK即可
2、下载好之后,运行编译脚本,编译成功,通过JLINK下载。

参考NAC1080软件开发指南文档添加JLINK设备以及下载算法,注意别添加错了。在JLINK的安装目录的JLinkDevices.xml文件中加入下面英飞凌设备支持,我的代码如下:

<!--                 -->
  <!-- Infineon Smack  -->
  <!--                 -->
  <!--                 -->
  <Device>
    <ChipInfo Vendor="Infineon" Name="NAC1080" Core="JLINK_CORE_CORTEX_M0" WorkRAMAddr="0x00020800" WorkRAMSize="0x0800"/>
    <FlashBankInfo Name="NVM CODE"   BaseAddr="0x00010000" MaxSize="0xf000" Loader="Devices/Infineon/NAC108x/NAC108x.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  </Device>
  <Device>
    <ChipInfo Vendor="Infineon" Name="NAC1081" Core="JLINK_CORE_CORTEX_M0" WorkRAMAddr="0x00020800" WorkRAMSize="0x0800"/>
    <FlashBankInfo Name="NVM CODE"   BaseAddr="0x00010000" MaxSize="0xf000" Loader="Devices/Infineon/NAC108x/NAC108x.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  </Device>
  <Device>
    <ChipInfo Vendor="Infineon" Name="NGC1081" Core="JLINK_CORE_CORTEX_M0" WorkRAMAddr="0x00020800" WorkRAMSize="0x0800"/>
    <FlashBankInfo Name="NVM CODE"   BaseAddr="0x00010000" MaxSize="0xf000" Loader="Devices/Infineon/NAC108x/NAC108x.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  </Device>
  <Device>
    <ChipInfo Vendor="Infineon" Name="Smack" Core="JLINK_CORE_CORTEX_M0" WorkRAMAddr="0x00020800" WorkRAMSize="0x0800"/>
    <FlashBankInfo Name="NVM CODE"   BaseAddr="0x00010000" MaxSize="0xf000" Loader="Devices/Infineon/NAC108x/NAC108x.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  </Device>

在下载的SDK中F:\smack\tool_config\jlink\JLinkDevices\Infineon路径中复制NAC108x文件夹到D:\SEGGER\JLink\Devices\Infineon\即可。

3、实际操作如下

1)NFC标签助手可以读到它的信息

无论是使用官方到NFC的APP还是NFC标签助手都可以正常识别到该NFC标签,如图所示,可以看到标签信息,支持的类型以及NDFF的数据


2)PWM测试

在官方源码中添加产生PWM代码

代码:

set_singlegpio_alt(GPIO_PWM, 0, 3); // set GPIO1 to normal mode 
single_gpio_iocfg( true, false, true, false, false, GPIO_PWM); 
sys_tim_pwm_config(PWM_PERIOD_TICKS,PWM_DUTY_TICKS); 
sys_tim_pwm_start();

编译下载后,波形如图

总结:整体上NFC功能直接开箱即可,至于相关数据交互需要根据对应的协议进行编码。关于外设的使用,直接使用开发指南里面的代码即可上手开发