前段时间使用了某厂的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功能直接开箱即可,至于相关数据交互需要根据对应的协议进行编码。关于外设的使用,直接使用开发指南里面的代码即可上手开发

