mc56f83789支持 256kb闪存,带 ecc。内置双闪存块支持实时更新,高达 64kb ram,以与内核相同的速度运行。增强型dma。增加了引导rom,以支持 uart、i2c和 can的代码更新。
高达16通道高分辨率pwm,分辨率为312ps。双路低功耗adc,每个高达3msps。集成事件发生器(evtg),集成usb 2.0 phy 全速模式 otg,can-fd外设,支持车规 aec q100 认证。
可用于电机控制、开电源应用场景,如 ev空调压缩机, 电动汽车充电器, 电源模块, 车载充电器,充电桩,太阳能离网逆变器, 家用储能等应用。
mc56f83xxx在片上 flash中运行代码,因此bootloader的主要任务是在制造生产期间或设备寿命期间的任何时间为内部 flash 提供嵌入式固件应用程序更新。
mc56f83xxx具有片上rom引导加载程序,这与 kinetis 和 lpc系列相同,因为引导加载程序代码保存在 rom中,引导加载程序无法修改。
它使用以下固定外设下载应用程序代码。bootloader 通过充当从设备并监听主设备可以启动通信的各种外围端口来进行配置。
内置 bootrom 支持通过 i2c, uart, can 总线接口进行在线升级,无需额外的仿真调试工具。
如果用户设计目标板,想使用片上引导加载,则必须使用以下引脚。
下面演示用 blhost.exe软件和 mc56f83xxx内置的boot进行通信。
bca和闪存配置字段配置,片上闪存中有一个特殊的空间,称为bca,位于 p:00x3c0,它提供了配置 bootloader操作所需的所有参数。
对于未初始化的闪存,bootloader使用预定义的默认配置。主机应用程序可以使用bootloader对bca进行编程,以便在引导加载器的后续初始化期间使用。
在p:0x400~0x40f处有一个名为flash配置字段的特殊空间,必须设置fopt(p:0x40d)的bit7和bit6,以便在复位启动时执行引导加载程序。
为了设置bca配置和flash配置字段,用户只需修改 flash_config.c,它由codewarrior ide软件为 mcu 工具自动创建。
基于codewarrior为 mcu v11.x版本软件生成 s-record 固件文件,引导加载程序可以下载应用程序代码以闪存 s-record格式文件。
如下图所示,s-record文件可以由 codewarrior为 mcu工具生成,以便 blhost可以将 s-record文件下载到 flash。
请注意,必须选中“生成s记录文件”/“按地址排序”/“生成字节地址”的选项。
最大s记录长度设置为128,必须选择dos模式,如下图所示。
请注意,由 blhost 工具下载的只能是*.elf.p.s文件而不是*.elf.s下载。限制:rom 引导加载程序将其全局变量从 x:0x0000放入ram,对它们没有保护。
如果使用“.s”或“.x.s”文件,可能会损坏rom引导加载程序的变量。因此,需要将“.p.s”文件与rom一起使用。
blhost -p com19 get property 1
blhost -p com19 flash erase all unsecure //mass erase and set the dsc in unsecure mode by setting the p:0x40c byte in byte address mode
blhost -p com19 flash image *.s19 erase
将应用程序代码和常量转储到文件中,以便用户比较应用程序代码和常量是否正确编写,或者当目标板从现场返回时,可以验证应用程序固件是否损坏。
打开 codewarrior 软件,创建新项目,通过点击 + 按钮添加任务及任务名。
选择项目,点击 run->debug 配置,调试配置菜单出现,选择 “attach”,同时点击 debug按钮,pc端将会连接目标板。
在点击 “suspend” 按钮后,pc端将会和 dsc板子通信,可以看到 p flash 的内容,点击 export 按钮,“export memory” 菜单将会出现。然后输入需要保存的文件名,保存 flash的内容到该文件中。
可以看到 2.txt文件将包含 s-record格式的文件数据。
备注:在安全模式下,jtag端口被阻止访问,用户无法使用jtag进行写入或读取。
但有一个后门,jtag在安全模式下只接受大规模擦除命令,这样可以在安全模式中擦除所有 flash 以保护代码,同时避免芯片 flash一旦处于安全模式就永远无法写入的现象。
cw工具可以生成以下数组,并在将代码下载到 flash时将其写入flash 中的配置字段。
#pragma define_section reserved_fcf reserved_fcf.text rx
#pragma section reserved_fcf begin
static const uint8_t _flash_config_field[] = {
/* nv_backkey3: key=0xff */
0xffu,
/* nv_backkey2: key=0xff */
0xffu,
/* nv_backkey1: key=0xff */
0xffu,
/* nv_backkey0: key=0xff */
0xffu,
/* nv_backkey7: key=0xff */
0xffu,
/* nv_backkey6: key=0xff */
0xffu,
/* nv_backkey5: key=0xff */
0xffu,
/* nv_backkey4: key=0xff */
0xffu,
/* nv_fprot3: prot=0xff */
0xffu,
/* nv_fprot2: prot=0xff */
0xffu,
/* nv_fprot1: prot=0xff */
0xffu,
/* nv_fprot0: prot=0xff */
0xffu,
/* nv_fsec: keyen=1,meen=3,fslacc=3,sec=2 */
0x7eu,
/* nv_fopt: fopt[7:6] = 11b 表示从 rom启动,其他数值表示从 flash启动 flash */
0xffu,
/* reserved */
0xffu,
/* reserved */
0xffu
};
#pragma section reserved_fcf end
基于人工智能的交易系统是怎样的
FAB工艺流程入门
小米触控音箱评测 到底怎么样
原生安卓,诺基亚9王者归来
AAIH联盟正式成立,推进人工智能在医疗领域的应用
MC56F83789数字信号控制器介绍
全国首例!301医院云HIS系统国产化上线
大功率可调开关电源关键设计
Linear LT3509双路36V降压开关稳压器应用方案
plc位逻辑指令的用法
养老院的老年人定位系统的应用
如何设计出一种可以从人脸图像上移除口罩的ML工具呢?
LSI推出基于ARM技术的全新通信处理器
圆柱电池分选机的技术参数
一种兼容110/220V输出的逆变器控制方法
六轴力/六维力传感器在工业、科研、医疗等领域的广泛应用
PCB版图布局的阻抗线宽的计算
电动牙刷怎么实现防水透气
ADC基础学习:学习A/D的几个重要指标
小蚁4K+运动相机售价公布:1999元,月底开售