NXP Designs Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NXP Designs Knowledge Base

Discussions

Sort by:
                                     编写 K32L3A MCU 闪存 IFR 字段 简介 K32L3A60VPJ1AT MCU 是下一代 Kinetis 双核设备。该设备带来了传统 Kinetis 设备不支持 的处理和多任务处理功能。此外, K32L3A60VPJ1AT 还提供了改进的功耗和安全功能。这 些安全功能的一些重要方面在于非易失性信息寄存器(IFR)存储区域以及该区域的编程方 式。 IFR 存储器区域是与主阵列分离的具有受限访问的储器空间,并且由可擦除 IFR 区域和 不可擦除 IFR 区域组成。不可擦除的 IFR 区域包括程序的一种标识符和版本标识符。可擦 除的 IFR 区域具有闪存安全性,闪存选项,批量擦除启用以及控制设备行为的其他此类功 能。在旧版 Knietis 设备中,主闪存阵列的某些字段(闪存地址 0x400-0x40F)在引导时配 置了 IFR。但是,在 K32L3A60VPJ1AT 中,不再以这种方式控制 IFR 存储区。尝试配置这些 设置时,这会带来挑战。 本文档的目的是解释如何更改这些设置,并提供一些有关如何进 行这些更改的选项。 配置 IFR 字段的第一步是了解如何通过硬件对这些字段进行编程。使用称为“程序索引命令” 的特殊闪存命令对 IFR 字段进行编程。编程后,必须先擦除这些字段,才能重新编程闪存 配置值。擦除这些值的唯一方法是通过批量擦除。这提供了安全性,因为在不删除用户代 码的情况下也无法更改 IFR 值。此外,更改用户代码映像不会影响引导加载程序的操作, 从而确保可以执行安全的引导功能。此处描述了写入可擦除 IFR 值的过程: 1.使用程序索引命令(0x43)写入 FCCOB0。 2.用要编程的索引写入 FCCOB1.可能的索引列在“可擦除 IFR 映射”表中(K32L3A6 参考 手册中的表 16.4.1.2)。 3.将 FCCOB2 和 FCCOB3 写入 0x00,因为此命令不使用它们。 4.用所需的值写入 FCCOB4 - FCCOBB。(请注意, 并非所有索引都使用所有 FCCOB 字 段。请确保查阅 Erasable IFR Map 表,其中 FCCOB 字段用于您正在编程的索引。) 5.将 0x70 写入闪存状态寄存器(FSTAT),以清除上一个闪存命令中可能存在的任何错 误。(请注意,此命令必须是字节写操作。) 6.将 0x80 写入闪存状态寄存器(FSTAT)以启动已编程的闪存命令。 7.轮询 FSTAT 寄存器,直到 CCIF 位字段(位字段 7)为 1(‘1’)为止。(请注意, 用您 的脚本语言可能无法执行此操作,或者仅等待 flash 命令完成执行可能会更容易。在这 些情况下,等待时间比典型的 Program Index 命令完成时间 110us 长的多) 对 IFR 进行编程后,应回读 IFR 以验证其是否正确完成。其过程如下: 1.使用读取索引命令(0x41)写入 FCCOB0. 2.将 FCCOB1 写入要读取的索引。可能的索引列在“可擦写 IFR 映射“表中(K32L3A6 参 考手册中的表 16.4.1.2)。 3.用 0 写入 FCCOB2-FCCOBB。结果将存储在 FCCOB4-FCCOBB 中,因此,应清除这 些内容以确保收到正确的结果。 4.将 0x70 写入闪存状态寄存器(FSTAT),以清除上一个闪存命令中可能存在的任何 错误。注意,该命令必须是字节写入。 5.将 0x80 写入闪存状态寄存器(FSTAT)以启动已编程的闪存命令。 6.轮询 FSTAT 寄存器,直到 CCIF 位字段(位字段 7)为 1(‘1’)为止。(请注意,在您 的脚本语言中可能无法执行此操作,或者只是简单地等待 flash 命令完成执行可能会 更容易。在这些情况下,等待时间要比最长的读取索引命令完成时间 35us 长的多) 使用程序索引命令时,必须知道要修改哪个索引才能创建正确的 Flash 命令。索引列表可 以在 K32L3A60VPJ1AT 参考手册的 Flash 章节的 IFR 描述部分中找到。 有几种不同的选项可用于对 FORT 字段进行编程。这些选项是: 1.使用 Kinetis Flash 工具 2.使用 blhost 3.调试器脚本 4.用户软件中的子例程 选项#1: Kinetis Flash 工具 使用 Kinetis Flash Tool 可能是更改 IFR 值的·最方便的方法。 Kinetis 闪存工具使用 UART 或 USB 协议与 K32L3A6 引导加载程序接口并写入所需的 IFR 字段。 Kinetis Flash 工具的最大优 点之一是,它为用户提供了一个图形界面,可以轻松的对 IFR 字段进行编程。下图是 Kinetis Flash 工具的图片,并突出显示了对 IFR 字段进行编程时要使用的重要输入控件和选 项卡: 1.此字段是端口集框。他选择与引导加载程序通信时要使用的接口(UART 或 USB)。此 框还允许配置接口。有关默认配置,请查阅 K32L3A6 参考手册。 2.这是“Flash 实用工具”选项卡。选择此选项卡以查看此图像中显示的控件。 3.这是索引输入字段。应在此处输入要编程的 IFR 的索引。 4.这是十六进制数字字段。该值将在“索引”字段中指示的 IFR 索引处进行编程。此处的 值应为十六进制格式,而不能包含前面的“0x”。 5.这是字节计数字段。这告诉实用程序要编程多少个字节,并且必须是该 IFR 索引的值, 请参考参考手册中的“可擦除 IFR 映射表”。 6.这是程序按钮。填写完所有字段后,单击此按钮可以对所需的 IFR 位置进行编程。 选项#2: BLOHOST MCUBoot 软件包还包括一个命令行可执行文件,可与引导加载程序交互。该工具 blhost 还 可用于对 IFR 字段进行编程。“flash-program-once”命令应用与对所需的 IFR 位置进行编程。 该命令的语法如下: flash-program-once<index><byteCount><data> 因此,例如, 如果要使用 0xFFFFF3FF 编程 FOPT IFR 字段(记录索引 0x84),则使用此命令 的正确语法应为 flash-program-once 0x84 4 FFFFF3FF 编程后,“一次刷新读取”命令可用于回读并验证已编程的 IFR 字段。以下是使用以前的 IFR 位置的示例 flash-read-once 0x84 4 以下是使用 blhost 擦除设备,对 FOPT IFR 进行编程以及从命令行读回 FOPT IFR 的完整示 例。 选项#3:调试器脚本 简单的调试器脚本是写入 IFR 值的另一种便捷方式。调试器脚本在调试会话启动过程的后台 执行(因此是用户的隐藏操作),通常可以使用任何文本编辑器轻松地对其进行编辑。但是, 更改值可能更麻烦,因为这通常必须由用户在每次编程时手动完成。考虑到这一点,最好为 不同的配置使用不同的连接脚本 使用调试器脚本的第一步是编写调试器脚本。调试器脚本的功能和语法取决于您的工具链。 就本文档而言,我们将重点介绍 MCUXpresso IDE。 MCUXpresso IDE 使用与调试器无关的 PokeXX 和 PeekXX 命令(其中 XX 是 8、 16 或 32,具体取决于要对所需寄存器进行字节访 问,半字访问,还是字访问)。因此,无论您使用 JLink 或 CMSIS-DAP 进行调试,还是使用 任何其他调试器,在设备上运行的相同命令将继续起作用。下面是一个 MCUXpresso 连接脚 本示例,该脚本写入 FOPT 寄存器,然后将其读回以打印到调试日志。 5140 REM ====================Program FOPT=================================== 5150 poke32 this 0x40023004 0x43840000 5160 REM Stuff FCCOB registers with desired FOPT value 5170 Poke32 this 0x40023008 v% 5171 Print “New Val “;~s% 5180 Poke32 this 0x4002300c 0x00000000 5180 Poke8 this 0x40023000 0x70 5190 Poke8 this 0x40023000 0x80 5200 wait 1000 6000 REM ================== Read FOPT ===================================== 6001 REM Now read the FOPT back 6010 Poke32 this 0x40023004 0x41840000 6020 Poke32 this 0x40023008 0x00000000 6030 Poke32 this 0x4002300c 0x00000000 6040 Poke8 this 0x40023000 0x70 6050 Poke8 this 0x40023000 0x80 6060 wait 1000 6070 s% = Peek32 this 0x40023008 6080 Print "New FOPT Val ";~s% 请注意,在上面的脚本中, v%是所需的 FOPT 值,并且它已在未显示的脚本部分中定义 (第 164 行)。 162 REM This is the value to be written to the FOPT 164 v% = 0xfffff3ff 编写脚本后,必须告知 MCUXpresso 使用连接脚本。这是在“调试配置”窗口中完成的。假设 已创建调试配置,请单击绿色错误图标旁边的箭头,然后选择“调试配置”。   在出现的对话框中,选择要使用的调试配置,然后选择“Linkserver 调试”选项卡。在“连接脚 本”字段中,将 MCUXpresso 指向连接脚本的位置。 这就是在 IDE 中需要完成的所有工作。现在,所选的调试配置应使用编写的脚本。 一些调试器将允许脚本的独立命令行运行,例如 JLink 调试器。由于 JLink 是我们遇到的最 受欢迎的外部调试器之一,因此下面提供了使用此脚本进行编程的示例。 //现在对 FOPT 进行编程 w4 0x40023004, 0x43840000 //43 选择程序索引命令。 84 选择 FOPT IFR 字段。 //用我们要写入的 FOPT 值填充 FCCOB 寄存器(4-7)。 //**(启动设置) ** w4 0x40023008, 0xfffff3ff //写入 0xFFFF_1FFF 以从内部 Flash 引导 M4。声明 NMI 引 脚将强制从 ROM 引导。 //用伪值写入 FCCOB 寄存器 8-B。 w4 0x4002300c, 0x00000000 //写入 FSTAT 寄存器以清除可能存在的任何错误。 w1 0x40023000, 0x70 //启动 flash 命令。 w1 0x40023000, 0x80 //等待 flash 命令完成。 Sleep1 //现在读回 FOPT w4 0x40023004, 0x41840000 //43 选择程序索引命令。 84 选择 FOPT IFR 字段。 //用我们要写入的 FOPT 值填充 FCCOB 寄存器(4-7)。 //**(启动设置) ** w4 0x40023008, 0x00000000 //写入 0xFFFF_F1FF 以从内部 Flash 引导 M0+。声明 NMI 引脚将强制从 ROM 引导。 //用伪值写入 FCCOB 寄存器 8-B。 w4 0x4002300c, 0x00000000 //写入 FSTAT 寄存器以清除可能存在的任何错误。 w1 0x40023000, 0x70 //启动 flash 命令。 w1 0x40023000, 0x80 //等待 flash 命令完成。 Sleep1 //读回内存以验证重置后应该显示的 FOPT 设置。 mem32 40023000, 4 选项#4: 用户软件中的子例程 有时,系统的要求将阻止实施上述任何方法来对 IFR 值进行编程。在这种情况下,您可能需 要实现自己的子例程来对 IFR 进行编程。这样做的过程与调试器脚本方法基本相同,只是用 代码而不是外部脚本编写。要记住的一个关键是您可能需要擦除整个闪存。因此,此子例程 应放在 RAM 内存中。由于正在执行闪存操作,因此将其置于 RAM 中将防止发生某些闪存 错误。 结论 总之, IFR 寄存器是非易失性信息寄存器,用于控制 K32L3A MCU 的某些行为。 IFR 分为可 擦除 IFR 空间和不可擦除 IFR 空间,它们都不是主闪存阵列的一部分。对这些值进行编程需 要使用特殊的闪存命令,并且要求自上次批量擦除以来尚未写入这些值。通常,有四种不同 的编程 FOPT 寄存器设置的方法。四种方法是: 1.Kinetis Flash 工具 2.BLHost 命令行界面 3.调试器脚本 4.用户软件子程序 每种方法都有其优点,因此,您应该选择一种满足您需求并且最方便的方法。但是,无论选 择哪种方法,在写入可擦除 IFR 字段之前都不能对 IFR 值进行编程。在尝试对任何 IFR 字段 进行编辑之前,最好执行批量擦除(可以使用本文档中介绍的任何方法进行擦除)。
View full article
在KW3x蓝牙低功耗应用中集成 NFC读卡器库   URL:https://community.nxp.com/t5/Wireless-Connectivity-Knowledge/Integrating-NFC-Reader-Library-in-a-KW3x-Bluetooth-Low-Energy/ta-p/1121247 版本历史 修订编号:1(共1) 最后更新:10-01-2019 03:59 AM 更新:ovidiu_usturoi 1. 简介 1.1 文件目的 这篇文章提供了有关如何将 NFC读卡器库集成到KW3x蓝牙低功耗应用程序的详细说明。 1.2 受众 这篇文章的目的是为希望使用NFC Reader Library并将其集成到SDK无线连接示例中的软件开发人员提供指南。 1.3 参考资料和资源 NFC阅读器库:nxp.com/pages/:NFC-READER-LIBRARY -NCF3320:nxp.com/products/:NCx3320 -CLRC663 plus:nxp.com/products/:CLRC66303HN -FRDM-KW36板:nxp.com/demoboard/FRDM-KW36 -KW35 / KW36 SDK:https://mcuxpresso.nxp.com/en/select -MCUXpresso IDE:nxp.com/products/:MCUXpresso-IDE 2. NFC读卡库总览 恩智浦NFC读取器库是用C语言编写的模块化软件库,它提供了一套API,使客户能够为恩智浦非接触式读取器IC创建自己的软件栈和应用程序: - PN512; - CLRC633 家族; - PN7462 家族; - PN5180; 此API促进了NFC应用程序中所需的最常见操作,例如: -读取数据或将数据写入非接触式卡或标签; -与其他支持NFC的设备交换数据; - 允许NFC Reader IC实现卡模拟 NFC阅读器库的设计方式使其可以轻松移植到具有多层体系结构的许多不同微控制器中: (图片) 作为主模块,我们有: 应用层(AL)-实现命令集以与MIFARE卡和NFC标签进行交互。 -NFC活动-实施可配置的发现循环,以检测非接触式卡,NFC标签或其他NFC设备。 -HCE和P2P组件,分别用于仿真Type 4标签和P2P数据交换。 -协议抽象层(PAL)-包含ISO14443,Felica,近邻和NFC标准的RF协议实施。 -硬件抽象层(HAL)-实现用于控制NFC前端RF接口和功能的驱动程序。 -驱动程序抽象层(DAL)-在主机MCU和读卡器IC之间实现GPIO管脚配置, 定时器配置和物理接口(BAL)。 -OSAL模块,负责抽象OS或RTOS细节(任务事件,信号量和线程) 3. KW3x无线微控制器概述 KW3x无线微控制器(MCU)是高度集成的单芯片设备,可为汽车,工业和医疗/保健嵌入式系统提供低功耗蓝牙(Bluetooth LE)和通用FSK连接。 KW36 / 35无线MCU集成了Arm®Cortex®-M0+ CPU,最高有512 KB闪存和64 KB SRAM,以及2.4 GHz无线电,支持蓝牙LE 5.0和通用FSK调制。 蓝牙LE无线电在任何主/从组合中最多支持8个同时连接。 KW36A / 36Z包含一个集成的FlexCAN模块,该模块可以无缝集成到汽车或工业CAN通信网络中,从而可以通过Bluetooth LE与外部控制和传感器监视设备进行通信。 有关更多详细信息,请参阅恩智浦网站信息: https://www.nxp.com/products/wireless/bluetooth-low-energy:BLUETOOTH-LOW-ENERGY-BLE. 4. NFC阅读器库–与FRDM-KW36集成 当前的NFC阅读器库v5.21.01不包含对Kinetis KW3x MCU的支持。 我们将使用参考K82 NFC Reader Library软件包:www.nxp.com/pages/:NFC-READER-LIBRARY. 集成库所需的步骤是: -硬件准备(FRDM-KW36和NFC读卡器板之间的连接); -设置开发环境(SDK下载,工作空间); -为FRDM-KW3x板准备适配文件; -将NFC应用程序集成到Wireless_UART Bluetooth LE示例中; -运行演示; 4.1 硬件准备 所需硬件: -NCF3320天线v1.0板作为NFC收发器; -FRDM-KW36板作为主机MCU,用于加载和运行蓝牙低功耗协议栈和NFC应用逻辑; (图片) 板卡之间的通信将使用以下引脚配置通过SPI通信进行: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Master board (FRDM-KW36)         Connects to            Slave board (NCF3320 Antenna v1.0)           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PTB0  (J2-pin10)                                      -                   IRQ PTB1  (J2-pin9)                              -                    Reset PTA16 (J2-pin1 - SPI1_Sout)                    -                    MOSI PTA17 (J1-pin5 - SPI1_Sin)                      -                    MISO PTA18 (J1-pin7 - SPI1_SCK)                -                 SCK PTA19 (J2-pin3 - SPI1_CS)                 -                  CS GND   (J3-pin7)                           -                  GND ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4.3 搭建开发环境 安装MCUXpresso IDE(在本示例中,我们使用的是v10.2.0 build 759) -转到MCUXpresso-IDE网页并下载最新版本的IDE: www.nxp.com/products/:MCUXpresso-IDE. -安装IDE (图片) 获取最新的NFC Reader Library版本(在此示例中,我们使用的是v5.21.00) -转到NXP NFC Reader Library网页(www.nxp.com/pages/:NFC-READER-LIBRARY) -转到下载标签,然后点击下载按钮 -下载Kinetis K82F软件包的NFC阅读器库: (图片) 为FRDM-KW36板生成可下载的SDK软件包(SDK_2.2.1_FRDM-KW36) -导航至https://mcuxpresso.nxp.com/cn/select,然后选择FRDM-KW36板; -选择构建MCUXpresso SDK。 -作为工具链,请确保已选择MCUXpresso IDE。 -使用“下载SDK”按钮开始下载SDK软件包: (图片) 创建MCUXpresso工作区 -打开MCUXpresso IDE并创建一个工作区; -将SDK_2.2.1_FRDM-KW36拖放到MCUXpresso IDE的已安装SDK选项卡中; (图片) -将Wireless_Uart示例导入到当前工作空间: (图片) 4.3准备FRDM-KW3x板的适配文件 本章介绍FRDM-KW36所需的驱动程序抽象层(DAL)更改: -解压缩NFC Reader Library并导航到boards文件夹: (图片) -通过为GPIO和处理程序设置正确的配置,为FRDM-KW36创建等效文件(Board_FRDM_KW36FRc663.h); -与FRDM-K82F板相比,以下是FRDM-KW36板所需的差异: (图片) -将FRMD-KW36添加到…DAL \ cfg \ BoardSelection.h文件中: #ifdef PHDRIVER_FRDM_KW36FRC663_BOARD #include <Board_FRDM_KW36FRc663.h> #endif -在KinetisSDK文件夹中,更新以下依赖项: o PIT驱动程序IRQ名称: (图片) o打开漏极和引脚锁配置: - phDriver_KinetisSDK.c: (图片) - phbalReg_KinetisSpi.c: (图片) -将PHDRIVER_FRDM_KW36FRC663_BOARD定义添加到…\ NxpNfcRdLib \ types \ ph_NxpBuild_Platform.h文件中,以启用正确的NFC收发器: (图片) 4.4将NFC应用程序集成到Wireless_UART Bluetooth LE示例 在本章中,我们将把BasicDiscoveryLoop NFC示例集成到Wireless_UART Bluetooth LE应用程序中。 为此,需要执行以下步骤: -在wireless_uart项目位置上,创建一个“ nfc”文件夹: (图片) -从修改后的NFC阅读器库中复制DAL,NxpNfcRdLib和phOsal文件夹: (图片) -在wireless_uart项目位置的“源”文件夹中,创建一个新的“ nfc”子文件夹,以集成BasicDiscovery循环文件: (图片) -BasicDiscoveryLoop文件将需要进行一些更改: o将主函数重命名为NFC_BasicDiscoveryLoop_Start; o删除了驱动程序/操作系统初始化; (所有更改都可以在附件中看到) -通过按F5来更新最新的更改,以更新MCUXpresso工作区: (图片) -更新链接器信息(项目属性-> C / C ++构建->设置)和预处理器定义(项目属性-> C / C ++构建->预处理器): (图片) -添加依赖项: o PIT模块/ PIT模块初始化; o更新LED,SW配置; o增加堆大小(gTotalHeapSize_c); o在wireless_uart.c应用程序中为NFC添加功能; (所有更改都可以在附件中看到); 考虑到随附的ZIP归档文件,我们可以轻松地将frdmkw36_w_uart_ncf3320_basic_discovery.zip文件拖放到MCUXpresso工作区: (图片) (图片) 4.5运行演示 -根据第4.1章创建硬件连接; -在FRDM-KW36板的相应COM端口上打开一个串行端子。 使用的BaudRate是115200 -在FRDM-KW36上按SW2键开始advertising广播 -打开移动应用程序- IOT toolbox - Wireless UART 。 FDRM-KW36板将列为NXP_WU: (图片 ) -创建蓝牙LE连接。串行日志将包含蓝牙LE操作的日志: (图片) -使用靠近NCF3320 Antenna v1.0板的NFC卡来启动发现演示。 -一旦检测到卡片,便会将事件发送到移动应用程序,其中包括卡的技术和UUID: https://www.youtube.com/watch?v=wCCz5zDIwHE&feature=youtu.be) https://community.nxp.com/t5/video/gallerypage/video-id/8707 附件: https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/wireless-connectivity%40tkb/200/1/ble_nfc_demo.zip  
View full article
1. 引言 众所周知,我们一般使用调试器下载程序或调试设备。 FRDMK64在板上具有OpenSDA调试接口,因此不需要额外的调试器。但是如果我们要设计一个没有调试器但可以下载程序的电路板,则可以使用引导加载程序(Bootloader)。引导加载程序是一个小程序,目的是通过UART,I2C,SPI等接口更新MCU的应用程序。 本文将描述一个基于FRDMK64F的简单SD卡引导程序,使用SD卡更新MCU的应用程序。用户可以将二进制文件放入卡中。卡插入目标板后,板子将自动更新应用程序。本设计提供了对应的引导加载程序和应用程序代码,以便您可以在自己的板上进行测试。 2. Bootloader的实现 SD卡的示意图如下所示。该板使用SDHC模块与SD卡通信。 图1. SD卡示意图 我们使用FRDM-K64F的2.6.0版本的SDK。您可以在我们的网站上下载该SDK。 链接是“mcuxpresso.nxp.com”。 引导加载程序使用SDHC和fafts文件系统,因此我们应该添加文件来支持它。 图2.支持文件 在主代码中,程序将等待直到插入卡。然后它将在SD卡中找到名为“ a000.bin”的文件以更新应用程序。如果文件不存在,则开发板将直接执行该应用程序。如果没有应用程序,程序将结束。 以下代码显示了程序如何等待插入sd卡,此外它还将检查该地址是否包含应用程序的地址。 图3.代码-等待插入卡 以下代码显示了程序如何打开二进制文件,如果sd卡没有该文件,则程序将跳转到该应用程序开始执行。 图4.打开二进制文件 如果程序正常打开文件,则更新将开始,它将从0xa000擦除200k的空间,您可以根据自己的实际代码工程大小进行调整。 现在我将详细说明更新的方法。我们的数据被写入称为“ rBUff”的缓冲区,缓冲区大小为4K,在向其中写入数据之前,需要先将其擦除。 请注意,在擦除和编程闪存之前应该先禁用所有中断,当操作完成后再重新使能中断。 文件大小将决定将数据写入闪存的方式。 1.如果大小小于4k,我们只需读取文件数据进行缓冲,然后判断文件大小是否与8个字节对齐。如果不是,我们增加“readSize”的大小以读取称为“rBuffer”的数据缓冲区中的更多数据,这些多读出来的数据内容为0。 2.如果大小> 4K,我们使用“ remainSize”来记录剩余的数据量。每次读取4k直到其大小小于4k,然后重复步骤1。一次完成操作后,我们应清除缓冲区并增加扇区编号以准备下一次发送。   图5:写Flash操作代码 清除空间的方法如图所示。它将初始化闪存并从给定地址擦除给定大小。 “ SectorNum”用于显示要擦除的扇区。 图6.擦除操作代码 下图显示了如何将数据写入闪存。 图7.程序操作代码 在转到应用程序之前,我们应该修改在引导加载程序中所做的配置。 关闭Systick时钟并清掉其计数; 将VTOR中断向量寄存器恢复为之前的默认值; 我们的引导程序以PEE模式运行。因此,我们应该将其更改为FEI模式; 禁用所有引脚。 运行这些代码时,应禁用全局中断,并且不要忘记重新使能全局中断。 图8. 反初始化代码 然后我们可以转到应用程序。 图9.转到应用程序 3. 内存重定位 FRDMK64具有1M闪存,从0x00000000到0x00100000。如图10所示,我们使用0xa000作为应用程序的起始地址。 图10:内存映射 现在,我将向您展示如何在不同的IDE中为用户应用程序修改链接文件。 在IAR中: 图11:IAR的ICF 在MDK中: 图12.MDK的SCF 在MCUXpresso中: 图13. MCUXpresso的闪存配置 4. 运行演示 1)首先下载引导程序; 2)准备一个用户应用程序。 我们以“led blinky”为例; 3)修改链接文件; 4)用您的IDE生成二进制文件,请将其命名为“a000.bin”; 5)将其放入SD卡中,如图5所示。 图14:SD卡的内容 6)插入卡,并打开电源。请稍等片刻,该应用程序将自动执行。 5. 参考资料 1) Kinetis MCU的bootloader解决方案 2) KEA128_can_bootloader
View full article
引言 FRDM-KW36包含带有32 kHz晶体振荡器的RTC模块。此模块为以极低功耗模式运行的MCU生成32 kHz时钟源。该振荡器包括一组用作CLOAD的可编程电容器。改变这些电容器的值可以改变振荡器提供的频率。 此可配置电容的范围为0 pF(禁用电容器组)至30 pF,步长为2 pF。 这些值是通过组合启用的电容器获得的。可用值为2 pF,4 pF,8 pF和16 pF。可以完成这四个数值的任意组合。如果可以使用外部电容器,建议禁用这些内部电容器(清除RTC控制寄存器SFR中的SC2P,SC4P,SCS8和SC16位)。 要调整振荡器提供的频率,必须首先能够测量该频率。使用频率计数器将是非常好的,因为它提供了比示波器更精确的测量。您还需要输出振荡器频率。要输出振荡器频率,以任意一个蓝牙演示应用程序为例,您应该执行以下操作: 调整频率示例 本示例将利用Connectivity Software Stack中的心率传感器演示(freertos版本),并假定开发人员具有从SDK到IDE导入或打开项目的知识。 1.从SDK中打开或克隆“心率传感器”项目。 2.在工作区的board文件夹中找到board.c和board.h文件。 3.如下图所示在board.h文件中声明一个void函数。该函数将RTC管脚复用设置为输出到PTB3并能够测量频率。 4. 如下所示在board.c文件中开发BOARD_EnableRtcClkOut函数。 5. 代码如下: 6. 在BOARD_BootClockRUN(board.c文件)之后立即在hardware_init函数中调用BOARD_EnableRtcClkOut函数。 7. 在工作区的board文件夹中找到clock_config.c文件。 8. 在文件顶部添加以下定义。 9. 在BOARD_BootClockRUN函数内部(也在clock_config.c文件中)搜索对函数的CLOCK_CONFIG_EnableRtcOsc调用,然后通过上述任意定义来编辑变量。 10. 最后,在项目源文件夹中的“ preinclude.h”文件中禁用低功耗选项和LED支持: 此时,您可以在PTB3中进行测量,并使用频率计数器进行频率调整。每次对电路板进行编程时,都需要执行POR以获得正确的测量。下表是从FRDM-KW36板版本B获得的,可用作调整频率的参考。 请注意,电容不仅由启用的内部电容组成,还包括封装,内部走线,芯片焊盘和PCB走线中的寄生电容。因此,尽管下面给出的参考测量值应接近实际值,但您还应该在电路板上进行测量,以确保频率是专门针对您的电路板和布局进行调整的。 Labels:KW   KW35 | 36 kinetis kw36a
View full article
LPC55S6x系列最初的硅芯片版本为0A并且该硅芯片已在Revision A1 LPCXpresso55S69评估板上使用。版本1B的硅片已用于版本A2的评估板上。两种版本的芯片都支持新的更加稳定的调试会话请求方式,而1B芯片就需要使用该方式。如果未使用正确版本的IDE和/或调试探驱动程序,调试操作将受到影响或不能工作。 当使用revsion A2 芯片的板子时,需要当前软件版本为: MCUXpresso IDE版本11.0.1或更高版本(建议使用11.1或更高版本) [注意:也可以使用IDE 11.0.1,但在使用A1版本时,此版本需要补丁程序。请参阅https://community.nxp.com/migration-blogpost/11165] 请注意,如果从使用A1版本开发切换到A2版本时(或切换到使用1B版本芯片的任何目标系统),则需要从一个新的工作区(workspace)开始。 IAR Embedded Workbench版本8.40.2或更高版本 Keil uVISION LPC55S6x设备软件包(DFP)12.0.1或更高版本 SEGGER J-Link 应使用J-link 6.54c或更高版本(从SEGGER网站下载),建议使用V6.64或更高版本。将J-link与非SEGGER IDE(MCUXpresso,IAR,Keil)一起使用时,请确保您的IDE配置指向最新的J-Link驱动程序。 如果使用MCUXpresso IDE 11.0.1,则需要将其下安装的J-link驱动程序更新为最新版本,以支持A1版本。更多信息,请参见在Windows上更新SEGGER J-LINK安装包的方法。   有关芯片修订和工具的更多信息,请参考了解LPC55S6x版本和工具。 另请注意,有关电路板版本,芯片的版本和相应工具有中文版本描述,如下所示: http://www.nxpic.org/module/forum/thread-618614-1-1.html http://www.nxpic.org/module/forum/thread-619338-1-1.html
View full article
这篇文章通过覆盖与GFSK (通用频移键控)通信并行的 低功耗蓝牙 多节点连接,提供了混 合应用程序( W ireless UART + GFSK Advertising )的示例。这是 SDK 的另一个示例,其中我 们定义了 混合应用程序,用于与 GFSK 通信并行进行蓝牙 LE 广告和扫描。 Products Product Category NXP Part Number URL MCU KW36/35/34 https://www.nxp.com/products/wireless/bluetooth-low-energy/kw36-35-34-arm-cortex-m0-pluskinetis-kw36-35-34-bluetooth-low-energy-32-bit-mcus-nxp:KW36-35 MCU KW39/38/37 https://www.nxp.com/products/wireless/bluetooth-low-energy/kw39-38-37-32-bit-bluetooth-5-0-long-range-mcus-with-can-fd-and-lin-bus-options-arm-cortex-m0-plus-core:KW39-38-37   Tools NXP Development Board URL FRDM-KW36 Freedom Development Kit https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/frdm-kw36-freedom-development-kit-for-kinetis-kw36-35-34-mcus:FRDM-KW36 FRDM-KW38 Freedom Development Kit https://www.nxp.com/design/designs/freedom-development-kit-for-kw39-38-37-mcus:FRDM-KW38   SDK SDK Version URL MCUXpresso SDK Builder https://mcuxpresso.nxp.com/en/welcome
View full article
Most of the Ethernet PHY support multi-functions and provide much more flexible configure capability to fine tune timing or function enable by configure their registers. Ethernet PHY registers tool provide a simple way to read/write PHY registers by MDC/MDIO. This will help in development or issue debug. 
View full article
Linux kernel is not real time OS, while some applications is time sensitive tasks running in Linux environment, this request to extend the real time feature in common Linux kernel, and RT_PREEMPT is one of the methods to enable Linux kernel with real time processing requirement. But RT_PREEMPT is not accepted by kernel, so it needs extra effort to porting this patch-set to i.MX8M family products. This patch-set is based on L4.14.78 for i.MX8M products, customer need to apply patches based on this release.
View full article
  From GUI to prototype to Product - Fast The evolution of Embedded GUI Design   Products ARM Cortex-A9|i.MX 6 Multicore Processors   Links NXP Partner Program - Crank Software Partner Profile   Other Demo Videos Storyboard Demo Launcher on Freescale's iMX6 Sabre Lite From Photoshop to Crank Storyboard Suite to i.MX Series Hardware in Minutes
View full article
Overview With this application we create a proposal to automate the click and collect service in the wholesale warehouses, taking into account the operation as a large vending machine. Working as a vending machine, it has the characteristic of managing inventories, modules for secure connection to a server to receive orders and at the same time make re-stock orders, nfc reader modules to read wholesale customer cards. All this driven internally by a system of conveyor belts managed by motors. With current technologies we can present the evolution of wineries to Industry 4.0 powered by NXP.   We have a control by sections managed by a main controller, we have the following sections: Inventory reception: It consists of a reader of an NFC tag or a QR code to read the product and be able to move it to its corresponding storage section Inventory management: Connection to the cloud to be monitoring in real time to use algorithms handling orders, inputs and outputs Internal logistics: It consists of motor control by section for the mobility and arrangement of articles. It uses sensors for safety in mobility and accident prevention. Customer interface: NFC or QR code reader for package pickup reading indicator, touch screen to display data and customer confirmation. Block Diagram     Products MCU Link i.MX RT1060 i.MX RT1060 Crossover MCU with Arm® Cortex®-M7 Core   Wireless Link Wi-Fi 88W8801: 2.4 GHz Single-Band 1x1 Wi-Fi® 4 (802.11n) Solution NFC Reader PN7462: NFC Cortex®-M0 All-in-One Microcontroller with Optional Contact Interface for Access Control NFC Tag NTAG213F, NTAG216F: NFC Forum Type 2 Tag Compliant IC with 144/888 B User Memory and Field Detection   Secure Element Link EdgeLock™ SE051 EdgeLock™ SE051: Proven, Easy-to-Use IoT Security Solution with Support for Updatability and Custom Applets   Power Management Link PMIC PCA9420: PMIC for Low Power Applications AC-DC Controller TEA19161T: Resonant Power Supply Control IC   Sensors Link Accelerometer MMA8450Q: ±2g/±4g/±8g, Low g, Digital Accelerometer Temperature sensor PCT2075: I2C-Bus Fm+, 1 Degree C Accuracy, Digital Temperature Sensor And Thermal Watchdog   Motor Driver Link HB2001 HB2001: SPI Programmable 10 A H-Bridge Brushed DC Motor Driver   Demo Motor control: Download the software AN12214SW Unzip and install   Open MCUXpresso Import project   Look in the AN12214SW software installation folder   Click on finish Build project Open the freemaster folder in the software installation folder and open the pmsm_ref_sol   Change mode expert a basic   Click on app control and run   Extra links PN710 reader demo Getting Started with NXP Wi-Fi® modules using i.MX RT platform NXP Tech Session - Implementing Graphics in Real-time Industrial HMI Systems with NXP MCUs and Embedded Wizard
View full article
该Demo运行在MIMXRT1062-EVK上。MIMXRT1062跨界处理器 运行FreeRTOS操作系统,系统同时创建 88W8801 wifi stack 任务和 LVGL v7.3 GUI库任务,能够在LCD屏幕上实现GUI输入输出。用户可以通过LCD触摸操作,对WiFi的SSID和密码进行输入,从而完成设备入网Provision的功能。 Product Category NXP Part Number URL MCU   WiFi SoC MIMXRT1060   88W8801 https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-... 88W8801: 2.4 GHz Single-Band 1x1 Wi-Fi 4® (802.11n) Solution | NXP Semiconductors   SDK SDK Version URL MCUXpresso SDK mcuxpresso.nxp.com   Demo Video
View full article
About this demo This demo is based on the Wireless UART example from the SDK available on Welcome | MCUXpresso SDK Builder selecting the QN908X board.  The main idea of this demo is to be able to send commands from one device to another, it could be from a QN9080DK, a phone using our NXP application: IoT Toolbox or even an FRDM-KW41Z, this is possible because of the BLE protocol used in all our devices. The end-device used is a QN9080DK, this board receives the message, does parsing and triggers a PWM function using the values sent from another device. This signal can be used in different applications, typically controlling smart lighting brightness and color, speed of motor controls and audio or video amplifiers. The goal of this demo is to implement a task for our FreeRTOS scheduler in order to be able to control a PWM while the BLE connection is still running and receive new incoming messages.   Video Limitations We only interpret ON, OFF and a string of values for our 3 signal outputs. The string of values has to be in the following syntax: rXXX,gXXX,bXXX. An example of this could be r255,g130,b200. The max value should be 255 in order to achieve 100% of the duty cycle, for this example, we are using is at 100 Hz. The connection is not using pairing or bonding modes, so no device information is saved on the non-volatile memory due to this if the connection is lost we need to follow the initial connection procedure. The amount of bytes that can be sent is limited by the macro: #define gAttMaxMtu_c in the ble_constants.h file from the project, we recommend to leave it as it is.   Useful Links Useful documentation is available in the SDK previously downloaded: <SDK Installation folder>...\SDK_2.2.1_QN908XCDK\docs   Link Description https://www.nxp.com/webapp/Download?colCode=QN908x-DK  QN908xDK User’s Guide Welcome | MCUXpresso SDK Builder  SDK Builder site Wireless Connectivity  NXP Wireless Community Connectivity Software: Implement tickless mode in FreeRTOS  Document for implementing a new task using OSA Abstraction layer of FreeRTOS https://www.nxp.com/docs/en/nxp/data-sheets/QN908x.pdf QN908x Datasheet for pins functions   Required Items Link Description QN908x: Ultra-Low-Power Bluetooth Low Energy System on Chip (SoC) Solution | NXP  It is required at least one as an end-point. Oscilloscope  An Oscilloscope to visualize the PWM. Hardware Diagram Step-by-Step Guide Download de QN908x SDK Download the attached .zip file. Import it into MCUXpresso, for the end node you should only use the qn908xcdk_wireless_uart_peripheral project. If you want to use a second QN board to send the commands it is required to also import the qn908xcdk_wireless_uart_central project. Once the projects are imported, we need to flash each board with a project and connect the PA9, PA10, and PA18 pins to our oscilloscope in order to visualize the signal. Connect the USB cables to the computer and open Teraterm with the following values: 115200, 8 bits, none,1 bit, none. Press the RESET Button (SW3) of the Peripheral board Press the Button1 (SW1) after the message: "Wireless UART starting as GAP Peripheral, press the role switch to change it.", an "Advertising" should appear. If a second QN board is used (central), we need to open a second Teraterm session and set it to the same Serial configurations from point 5. If an Android phone is used we need to have the IoT Toolbox application installed and select the Wireless UART example and connect to the Peripheral board using the interface. To pair the Central board to the Peripheral it is required to press the RESET Button (SW3) of the Central board while the Peripheral board is advertising and then Push the Button1 (SW1). Once the boards are connected, we need to paste the message to our terminal in order to be sent as one message. The message should be seen in the other board terminal. Send "ON" to activate the PWM functionality. Send "r255,g128,b64" to set the PWM pins to 100%, 50%, 25%. This signal must be displayed at 100Hz on the oscilloscope. Send "OFF" to deactivate the PWM functionality.   Further Information The Demo is based on the Wireless UART example, The BleApp_ReceivedUartStream function is modified to compare de received strings. The getValuesRGB converts the string into integer values to be assigned to the global variables red, green, blue. Inside getValuesRGB we use the OSA abstraction layer for FreeRTOS to create the task using: OSA_TaskCreate and creating the task named: vfnTaskPWM. vfnTaskPWM configures the timer and initializes the PWM values using the CTimer driver functions and starts the CTimers.     Results 1. After the QN9080 is flashed and in Advertising mode, we have to connect our Central device, Which in this case is an Android phone. In or Teraterm we should be able to see this message: 2. Then, we get the Connected status from our devices and we should be able to send the ON command and the RGB values, Teraterm indicates the integer values and the string received.         3. When we send the OFF command the PWM signals should be 0 V.   4. Here is another example:    
View full article
Overview Bluetooth® and WiFi are popular technologies in wireless headphones and speakers. These technologies require the smartphone to be paired with the audio devices to enable the connection, and NFC is a simple and reliable solution for this. Tap your phone to a Bluetooth speaker or headphone, and the two are securely paired automatically, without searching for a connection or typing a code. NFC is also an excellent choice for easy pairing wireless speakers together and creating a multispeakers audio system.   Block Diagram     Product Description PN7150  High performance NFC controller with integrated firmware for smart devices PN7120  NFC controller with integrated firmware and NCI interface for Home appliances   Documents NXP-NCI MCUXpresso example   Bluetooth & Wi-Fi pairing with NFC  
View full article
Overview The S12ZVH-REF-V1 is a reference design engineered for being a design base for starting an instrument cluster project, also it helps to reducing Automotive Cluster development time and maximizing engineering resources. Based on the 16-bit S12 MagniV® S12ZVH mixed-signal microcontrollers, the S12ZVH-REF-V1 provides a production-looking design with impressive integration. The S12ZVH-REF-V1 reference design is not only provided as a hardware reference but also as a software and mechanical design. Block Diagram   Products Product Features S12ZVH MagniV Mixed-signal MCU  16-bit S12 MagniV® S12ZVH mixed-signal microcontrollers for instrument cluster.   Features Interfaces   LIN physical transceiver and connector CAN connector interfaced with MCUs CAN physical transceiver Components 1 x custom 160 segment LCD 1 x low-power piezoelectric speaker 4 x stepper motors 49 x LEDs used as telltales and backlights 6 x user buttons 2 x potentiometers S12ZVH The S12ZVH-REF-V1 does not include on-board programming/debugging circuitry; it requires an external programmer compatible with the BDM protocol. Files S12ZVH-REF-V1 Mechanical and Assembly files  S12ZVH-REF-V1 Reference Design Software (CW10.5) 
View full article
Overview   The RDS12VR is a solution engineered for window lift, power windows, and sun roof systems. Developed in partnership with Tongji University and based on the 16-bit S12 MagniV® S12VR mixed-signal microcontrollers, the RDS12VR offers control by multiple LIN salve nodes or LIN master node, through the easy-to-control Graphics User Interface (GUI). The RDS12VR reduces unnecessary external components, lowers the total bill of material (BoM), improves system quality, and saves space in automotive applications through a smaller PCB. The RDS12VR solution includes hardware for real door/window in-vehicle applications, as well as software including anti-pinch algorithms and low-level S12VR drivers for reducing time to market. Block Diagram   Products Product Features S12VR  16-bit S12 MagniV® S12VR mixed-signal microcontrollers, efficient and scalable relay driven DC motor control solution   Features Features   Window manual/automatic up/down, automatic up/down with stop function Anti-pinch in both manual/automatic mode, anti-pinch region and force can be adjusted Stuck detection out of anti-pinch region, motor overload protection Soft stop when window is close to the top/bottom Self learning, calibration by updating the window/motor parameters stored in EEPROM Use hall sensor as well as current sense to judge anti-pinch in algorithm Power   Fault diagnosis, indicating low voltage, over voltage/current/temperature etc. Low power mode (leveraging S12VR low power mode) to reduce power consumption GUI Easy-to-control GUI, set the parameters and get the status Window lift can be controlled either by multiple LIN salve nodes or LIN master node, through GUI Functional Safety Able to comply with relevant content in US Federal Motor Vehicle Safety FMVSS No. 118 standard Document DRM160, Window Lift and Relay Based DC Motor Control Reference Design Using the S12VR Microcontrollers     
View full article
About this demo This demo was created to give you a headstart for a UART - based GPRS module. The goal was to build the project on top of FreeRTOS ensuring a good implementation for task management and adaptability for any other project based on AT commands using a UART module.  According to the documentation of the module, the SIM800L from SIMCOM is controlled via AT commands. The advantage of using these commands is that, by tweaking some of the tasks, the application can be used for any other AT command based module. In this demo I'm going to walk you through the key elements that were used and give you a functional project that has the addition of working on a FreeRTOS environment. This offers great reliability for a fully working application that won't hang for an untested reason. Exploring this project should give you a good idea of how semaphores are implemented for various tasks management depending on each priority. Project Scope The project is intended to work with a SIM800L connected to a Freedom Development Platform for Kinetis® K64 through UART. Due to the high current consumption during some functions, the SIM800 module requieres a >1200mAh battery or a >2A buck converter. This GPRS module is a low-cost item but requires a 2G SIM card to work properly. This might be complicated to obtain in some countries. The project was built using the MCUXpresso SDK's FreeRTOS UART example. Useful Links Link Description https://mcuxpresso.nxp.com/en/builder SDK Builder for the Kinetis K64 https://www.simcom.com/product/SIM800.html SIMCOM SIM800 site documentation https://www.freertos.org/xSemaphoreCreateBinary.html FreeRTOS   Required Items Link Description https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F NXP's FRDMK64 Board https://simcom.ee/modules/gsm-gprs/sim800/ SIMCOM SIM800 GPRS Module Buck converter   Power supply to deliver up to 4.3 V and 2 Amps   Cellular antenna     Hardware Diagram Due to the SIM800 module's high current consumption, powering it requires a buck converter that is capable of delivering a current larger than 2 Amps while the module is sending a message. This is when the module consumes the highest current.    SIM 800L  ===>    FRDM K64         VCC    ===>    3V9 Buck Converter           RX     ===>    TX (PTC17/J1-4)           TX     ===>    RX (PTC16/J1-2)        GND    ===>    GND   Step-by-Step Guide for testing the Demo Get the K64 SDK from https://mcuxpresso.nxp.com/en/select   Get the latest version of MCUXpresso using this link: https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE Get the SIM800 AT commands documentation in this link: https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf Install the K64 SDK in MCUXpresso. Import the attached project in this document.  Attachments are found at the bottom of this document. Connect the K64 through the USB cable. Connect the SIM800L as indicated in the previous chapter: Diagram. Build and Debug the project using MCUXpresso. In the console, you should be able to see the flow of the Tasks that are being executed. Also, the commands that are being sent and received by the UART. Due to the TaskDelay from the send_task, the application will execute every 10,000 ticks. This depends entirely on the portTick_PERIOD_MS, in this case, which in this case is roughly every 25 seconds. Additional Demo Information These next steps are intended to guide the developer to an easier understanding of the modifications that were made from the base project. This additional information intends to give you a greater understanding of how the project was built and a further explanation of the different topics this application needs for its implementation. The usage of FreeRTOS wasn't mandatory, but the usage of an operative system gives the application an additional layer of reliability for safe deployment. In addition to the actual tasks, you could implement a new task for an OTA update for new drivers, a fully functional response parser, or any other addition depending on your project needs. The usage of a task-based project ensures flexibility of the project since many modifications will not require a complete rebuilding of the application. As mentioned before, the implementation of semaphores will provide reliable task management depending on the required function. The project started from the freertos_uart example and from there three additional tasks were built: a connect task, send task, and a check task. Here is a brief explanation of each task to provide a full understanding of the functionality.  uart_task() This task was only slightly modified. The UART was changed to the UART3 interface. The UART_RTOS_Send() and UART_RTOS_Receive() functions are in the loop because the semaphore implementation is doing the release of retainment of the different tasks based on their priority. Priority is very important for this project because based on its priority the application flow would be affected. uart_task() has the highest priority. This will ensure that every time a new command is required to be sent, the application will retain the actual task and release the uart task. At the end of this task, a new semaphore is called. This semaphore will call the check_task() whose functionality is to compare the received string to the expected one. check_task() This task is executed right after the buffer has received the number of bytes that were expected from the function parameters. The first step of this task is to eliminate the extra characters ´\n´ and ´\r´ that compose the SIM800 module answer message. Depending on the command sent, the task compares the response in order to look for an Error response or a positive one. This might be different than a simple OK, depending on the command. connect_task() This task is called when the SIM800 module is disconnected. This implementation is a simple string copy that use semaphores to call the task uart and then the check task compares the received string. After the module returns an IP address, the semaphore gives the order to call the send task to continue the application flow. send_task() This task has the least priority but is the first one created, it calls the sendRoutine() function which intends to gather the data to be sent. This connect task is triggered when a command that expects an IP address, returns an ERROR response. The command sent is AT+CIFSR plus the response comparison. The application flow enters to an if conditional that calls a semaphore for the connect_task() routine. Then, the frame to be sent through the TCP function of the SIM800 module is built. Due to the protocol chosen, the SIM800 module expects a response from the server, specifically a 200 HTTP code. Depending on your module, this is where the protocol modifications can be done. A point that is worth mentioning is that the module works in a 2G bandwidth. This can be a problem in some countries due to the SIM card version incompatibility between your area network and the module. If this is the case in your country, I strongly recommend looking for a 4G module like the SIM7080 or any other NB-IoT module. This might be more expensive but you are ensuring your project will work on top of the newest cellular bands.    
View full article
Overview   The PN7462 family consists of 32-bit Arm® Cortex®-M0-based NFC microcontrollers offering high performance and low power consumption. Because of the integrated NFC, many of the applications in which this product is used require interaction between some controllers, either to send data or instructions. In this case the board serves as a device for reading or writing NFC devices.   Required Material OM27462CDKP: NFC Controller development kit  MCUXpresso Software and Tools    Step-by-Step Download MCUXpresso Download and unzip attachment Open the Project in MCUXpresso Build it Connect LPC Link to PN7462 card Connect the two cards to the pc Debug the Project Use GPIO 4 and 5 for select interface Use GPIO 6, 7 and 8 for select operation mode
View full article
Demo Owner Clark Jarvis   The following demo will show a comprehensive enablement in software. Next-gen Kinetis K series MCUs, new FRDM-K64F development platform, software development kit* and Kinetis Design Studio IDE*, paired with Processor Expert software, MQX RTOS and PEG graphics studio to provide powerful and rapid prototyping. *In beta release now     Features Comprehensive, all in one development software Featured NXP Products Product Link Freedom Development Platform for Kinetis® K64, K63, and K24 MCUs FRDM-K64F Platform|Freedom Development Board|Kinetis MCUs | NXP  Supporting Hardware Dialog Auto Shield Arduino Display
View full article
L-Band transponder application demo     Features High Power (up to 300 W) 978 MHz - 1090 MHz Featured NXP Products AFIC10275N  
View full article
Demo Owner Juan Antonio Gutierrez Rosas   Watch as the 2D-ACE display controller allows responsive and eye-catching graphics and keeps the system costs, power consumption and board size low.   Features Display control unit - Hardware 2D animation and composition engine Rich set of capabilities that allow to build engaging graphical content with MINIMUM CPU intervention Featured NXP Products Vybrid QorIQ Links Introduction to the Vybrid Tower System  
View full article