YTM32B1LE兼容性介绍

LEx系列产品和LDx系列产品在芯片功能上也有一定的差异,具体的对比如下:

项目YTM32B1LD0YTM32B1LE0
1.5V是否需要外接电容需要不需要(相应引脚兼容原数字功能)
Flash容量最高64K最高128K
RAM容量最高8K最高16K
外部32K晶振不支持支持
SRIC 频率128K2MHz
CMP内部DAC不支持支持
EMU(ECC错误注入)不支持支持
DMA channel16CH4CH
芯片内部温度传感器不支持支持
eTMR8+2+28+8+2(模块IP有更新)

硬件差异

YTM32B1LE0是和国际品牌对标产品引脚兼容的一颗芯片,相比于LDx,LEx系列芯片将VDD15的电容集成在芯片内部,硬件上不需要再额外增加电容。原有LDx电容位置恢复原有的GPIO和数字引脚功能。

另外LDx原有的SPI2的引脚因为无法在48/32封装上使用,我们在LEx系列上将SPI2的引脚做了一定的调整,确保新增加的SPI2在各种封装上都可以使用。

芯片引脚图

图示中绿色的是相比于对标产品新增加的功能引脚,黄色是是相对于LDx增加的功能引脚。

相比于对标产品系列,LEx系列芯片增加了更多的外设数量,但是LEx不支持FlexIO模块,所以原有的FlexIO引脚部分会替换为UART/I2C/SPI等硬件模块的Pin功能。

相比于对标产品串口,LEx芯片的UART不支持流控功能,所以也没有UART CTS/RTS引脚。

LEx系列芯片增加了对于32.768K时钟的支持,如果应用上需要使用这个时钟(比如使用RTC模块),则硬件上需要增加32.768KHz的低速晶振。

对于ADC模块,LEx修改了SE15 通道的位置,这样可以保持和对标产品系列的兼容,另外ADC的通道编号也和对标产品系列保持一致(和LDx有差异)。

时钟和低功耗模块差异

LEx系列MCU的时钟和低功耗管理用SCU和PCU取代了之前的CCM模块,SCU和PCU模块采用和M系列相同的系统架构,用户在软件上只需要在系统和外设的时钟初始化配置做一定的修改就可以适配新的LEx系列产品。另外LEx系列产品支持32.768KHz的低速时钟,该时钟可以作为RTC和WDG两个模块的功能时钟,如果客户需要使用该时钟,则需要在硬件上增加32.758KHz的晶振,然后在时钟初始化时候使能该时钟。

LE0x产品时钟框图

因为增加了32.768KHz的晶振,LDx系列RTC和WDG选择128K/4 的一路时钟源替换为新的32.768KHz时钟源,另外一路LPO时钟源保持不变。LEx系列内部SIRC频率从128K提升到2MHz。

LDx和LEx上的差异部分都在SDK驱动层面做了处理,用户应用中对于时钟的切换和低功耗模式的切换都只需要调用原有的API接口就可以,所以应用上并不需要做改动。

Flash和RAM的差异

LEx相比于LDx,Flash和RAM容量上都增加了一倍,最高支持到128K/16K的配置,应用上进行升级需要更新Link文件以确保可以使用所有的Flash和RAM资源。LEx系列的Memory Map如下:

ModuleStart AddressEnd AddressSize
PFlash0x0000_00000x0001_FFFF128K
DFlash0x1000_00000x1000_07FF2K
OPT_NVR0x1000_08000x1000_09FF512B
SRAM0x2000_00000x2000_3FFF16K
APB0x4000_00000x4007_FFFF512K

上述表格中各个Module含义如下:

  • PFlash:Program Flash,有ECC保护,用于保存用户代码和数据,PFlash不支持Read While Write(RWW),进行Program和Erase过程中需要关闭中断。
  • DFlash:Data Flash,有ECC保护,用于保存用户数据,这部分实际并不是单独的数据Flash,它实际也是Pflash的一部分,在对这部分Flash进行写操作的时候,系统不能访问PFlash和DFlash,所以和对PFlash一样,在对Dflash操作的时候也需要关闭系统中断,防止程序进入异常。
  • OPT_NVR:用户NVR区域,有ECC保护,该部分区域需要用KEY解锁,区域内部可以写入特定数据禁用SWD调试端口,并提供Flash的擦写保护,擦写保护的最小单元是2K,详细信息可以参考RM或者后期专门的应用笔记。
  • SRAM:SRAM部分相比LDx扩展到16K,同样支持ECC保护,SRAM内容在所有低功耗模式下数据都可以保持,因为有ECC保护,SRAM在上电之后的初始化过程中需要按照32bit写入固定值做初始化,否则直接读取或者Byte/half word写入会出发ECC错误产生Hardfault。
  • APB:外设地址空间

针对Flash部分,LEx使用了和M系列类似的控制器,所以对应的flash算法需要进行更新,不能直接将LDx的Flash算法用于LEx 系列MCU。具体的Flash下载算法和新的特性需要参考RM,这里不做展开。

模拟模块差异

ADC的差异

LEx的ADC通道编号兼容了对标产品的编号,通道号和LDx有差异,如果程序直接从LDx迁移过来需要对通道号做一定的修改,另外LEx内部增加了一个温度传感器模块,可以粗略的估算芯片的工作温度,温度传感器连接到ADC的16通道,可以直接用ADC读取结果并按照公式转换成温度,目前这个温度传感器误差在10摄氏度左右。

ACMP的差异

LEx中ACMP内部集成一个DAC模块,可以直接生成ACMP参考电压,比较器工作方式更为灵活,在LDx中ACMP的正端只能从4个输入选择,负端只能从另外4个输入中选择。而在LEx中ACMP的正端和负端都可以从8个输入中任意选择,也可以直接选择DAC的输出。

数字模块差异

EMU(ECC Management Unit)模块

为了更好的满足Function Safety的要求,LEx系列MCU中增加了EMU模块,可以实现SRAM ECC的错误注入,模拟ECC出现错误的场景,帮助用户测试ECC错误的处理流程。

EMU模块支持SRAM的特定地址和全部地址的任意bit数量的错误注入,另外EMU还可以检测SRAM的单比特和多比特ECC错误事件,记录出现ECC错误的地址和错误计数,并在出现ECC错误的时候触发中断。

DMA(Direct Memory Access)模块

DMA模块本身和LDx保持基本的兼容,但是LEx中DMA的通道数减少到4通道,DMA中断方面,每个DMA通道占用一个DMA通道,DMA错误占用一个单独的中断。

GPIO(General Purpose Input/Output)模块

因为不再需要VDD15引脚,LEx相较于LDx增加了一个GPIO。另外LEx中所有的GPIO引脚都支持高驱动模式,在高驱动模式下单个GPIO可以提供高达30mA的驱动1(输出电流)能力和50mA的驱动0(输入电流)能力。

在LEx中所有的GPIO共用一个中断号,软件中可以先分组对GPIO读取Flag,之后按照bit对各个PIN进行中断处理。所以应用移植上也需要对GPIO中断相关的处理做一定的改动。

另外GPIO的Filter时钟源选择从PCTRL模块改到IPC模块,这样GPIO可以选择任意的时钟源作为GPIO数字Filter的时钟。

FlexCAN模块

LEx中对于FlexCAN需要用到的Memory做了特殊的处理,不再支持ECC检测,所以FlexCAN的初始化代码需要更新成不带ECC处理的初始化代码,这部分已经集成到SDK中,用户只需要采用新的SDK进行编译就可以正常使用FlexCAN模块了,应用本身不需要做修改。

另外,LEx的低功耗模式(包含Sleep, DeepSleep和Standby)支持直接通过FlexCAN RX引脚唤醒,软件不需要再将RX引脚设置为GPIO进行CAN唤醒了。FlexCAN的低功耗模式唤醒和Error,warning共用一个中断号。

eTMR模块

eTMR模块进行了重构,LDx和LEx芯片中两个模块差异比较大,API上也有一定的改动,应用软件需要做针对性的适配工作,新的eTMR模块支持移相的PWM波形和更为灵活的PWM捕获,通道配置方面和LDx也有一定差异,但是兼容对标产品系列芯片,具体的eTMR功能和API差异需要参考芯片手册和SDK。

RTC WDG模块

RTC和WDG模块上的差异主要是两个模块的时钟源有变化,在LEx中引入了32.768K时钟,这个时钟取代了原有的SIRC/4的clock,所以应用中对于这两个模块的时钟要做一定的修改,如果需要使用32.768K的时钟,硬件上也需要增加32.768K的晶振。


本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

发表新评论