笔者来介绍一下NXP 双core板子 ,新系列的mcxn94
1、MCX 新系列介绍
恩智浦 MCU 系列产品包括 Kinetis 、LPC 系列,以及 i.MX RT 系列,现在又推出新系列产品 MCX 产品,包括四个系列,目前已经发布产品的是 MCX N 系列。
-
MCX N 系列,高性能微控制器,面向边缘安全智能微控制器,主要应用在物联网以及工业应用产品。
- 主频 150MHz 至 250MHz 512KB-2MB
- 广泛的外设,包括神经处理单元 (NPU) 和 DSP
- EdgeLock® 安全子系统
- 智能外设
-
MCX A 系列,主要针对优化成本和上市时间为主要考虑因素的产品。
- 主频 48 MHz - 180 MHz ,32KB-1MB
- 内置定时器,引脚数低,单引脚电源
- 适用于成本受限的应用
-
MCX W 系列,低功耗无线连接产品,支持多协议。
- 32MHz - 96MHz
- 多协议无线设备
- 低功耗BLE、Thread和Zigbee射频器件,面向工业物联网与Matter应用
- 片上集成减少了外部 BOM
-
MCX L 系列,针对超低功耗应用产品。
- 50Mhz - 100 MHz,可选 50% 倍频
- 极低的功耗和漏电
- 适用于具有低功耗要求的应用
-
MCX C 系列,针对超低功耗应用产品。
- List item 48MHz,32KB–256KB
- 易于使用的外设
- 面向入门级应用的高性价比的设计
笔者来看一下MCXN947的框图,如下图所示,需要的组件直接看下图
- CPU0和CPU1 都是Cortexm33 内核,ARMv8-M架构,150MHZ,不过Core0的内核支持的外设组件更多,支持DSP、FPU、DSP、ETM和TrustZone, and coprocessor interface。
- 2MB的内部FLash 512KB的SRAM
- 支持系统组件、安全组件、Debug组件、通信组件、模拟组件和timers组件
2、MCXN94内存映射
MCXN994的内存如下图所述:
注意:上述空间安全和非安全的空间是重叠的。
-
0x0 - 0x001FFFFF:internal Flash 地址,2MB Size,分为两个bank,可配置,每个bank 是1MB,看上图可以看到,目前每个Program Flash均是1MB,N947是2MB,N946是1MB,可以看数据手册。
-
0x08000000 -0xFFFFFFF:FlexSPI 外设,可接Norflash,存放代码,最大128MB,与0x80000000 外设地址重叠
-
0x10000000 - 0x 101FFFFF:internal Flash 地址,2MB Size,分为两个bank,可配置,每个bank 是1MB,与上面0x0 重叠
-
0x13000000 - 1303FFFF: ROM Code的地址
-
0x14000000 - 0x14017FFF:RAMX,code bus总线上面,适合放code代码
-
0x18000000 - 0x1FFFFFFF:FlexSPI 外设,可接Norflash,存放代码,最大128MB,与0x90000000 外设地址重叠
-
0x20000000 0x20007FFF :RAMA - RAMH地址,RAM,可以用到存放core1的代码,以及一部分当中共享空间
- RAMA相对特殊,被分为4个bank,每个bank8K,可以在低功耗场景下作为retaintion for data,每个bank都是独立编程的电源控制 ,不支持ECC
- 其他bank都有独立的电源开关,可以根据需要进行开关,RAMG和RAMH作为ECC数据空间
下图为 RAM空间配置ECC的设置,
- 可以看到RAMX 和RAMB 使用RAMH进行ECC数据空间,默认这两块校验是开着的,所以RAMH无法作为数据访问
- RAMC、D、E、F使用RAMG作为ECC数据校验
- RAMA 没有ECC数据校验
下图分别为core0和core1的内存空间分布:
Flash:768KB的FLash
RAM0:304KB的RAM空间
RAM1:104KB的RAM空间,用来存放core1的代码
RAM3:共享空间代码
cache部分:
- 由memory map地址上面 可以看到地址的cache 部分,Flash部分才有Cache,RAM部分均不被cache
- 分为两种cache,一种是LPCAC,低功耗的cahce,针对所有的flash地址(包括内部flash + flex spi flash),大小为16KB,SYSCON LPCAC Control (LPCAC_CTRL) register可以配置本cache,如下图第一张图
- 一种是CACHE64,只针对FlexSPI的地址范围,大小为16KB, CACHE64_POLSE寄存器可以配置cache属性,如下图第二种图
CPU型号对应的外设资源如下图所示:
3、mcxn94 启动方式
启动方式就两种:内部Flash Boot,ISP Boot。通过ISPMODE(P06) 引脚决定。
- 从flash 启动会寻找有效Image,如果使能恢复Image Flash,会从恢复ImageFlash里面找,如果还找不到,就进入ISP 模式
- 从ISP Boot,可以UART/IIC/SPI/USB支持下载代码
ISP 下载时,配置引脚可以决定下载方式,也可以禁止ISP模式,
3.1 boot device
boot device:从内部flash boot,外部Flash FlexSPI NorFlash boot(偏移是0x1000),SPI Flash Nor Recovery Boot,第二个bootloader Boot。
基于BOOT SRC可以决定是从内部flash还是外部Flash boot。
3.2 Internal Flash Boot
内部Flash的boot流程如下图所示:
- 支持双ImageBoot,根据Image Header在0x24为处理版本来决定
3.3 external Flash Boot
外部Flash从FlexSPi Flashboot,需要在0x400 有FCB信息,512Byte。
boot流程如下:
4、mcxn94 代码下载
5、参考
1、恩智浦新系列产品 MCX系列产品
2、MCXNx4xRM-MCXN947 用户参考手册