【应用场景】
原本TOOL的1拖4是用于同时烧录相同程序给目标板,但有时候一个板子上有多个不同的MCU,
客户希望仅通过一个TOOL就可以完成对板子上多个MCU的烧录,也就是1拖4不同的通道烧录不同的程序,此贴为此制作。
【实验目标】
由于这个属于定制需求,需要简单修下目标文件,后面升级也将做到TOOL的一键生成按钮中。
我们本次的实验通过1拖4转接板,依次接STM32F070,AT32F435,CH32F203,SAMD21。
【操作步骤】
1、先单路,不使用转接板,接目标进行测试,主要是方便验证制作的文件是否有问题,推荐这里单独在User文件夹下新建个文件,方便管理。
2、依次生成STM32F070,AT32F435,CH32F203,SAMD21的工程配置到TOOL里面。
注意加载的固件名要不同,输出文件名也要不同:
3、修改4个lua配置文件
操作TOOL进入eMMC磁盘
进入路径:
(1)4个LUA文件,AT32F435.lua,CH32F203.lua,SAMD21.lua,STM32F070.lua,后缀全部修改为 .luax ,目的是脱机浏览时会隐藏
(2)4个LUA文件,AT32F435.luax,CH32F203.luax,SAMD21.luax,STM32F070.luax都打开,将其中3行代码注释掉(dofile),并保存,两个横杠就是注释掉,或者干脆删掉也可以的。操作完毕后记得保存
--dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
--dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
--dofile("0:/H7-TOOL/Programmer/LuaLib/machine_if.lua")
(3)操作完毕后,在eMMC磁盘的这个文件夹下创建两个文件,一个1拖4顺序烧录不同文件.lua,一个1拖4顺序烧录不同文件.ini
一个1拖4顺序烧录不同文件.lua的内容如下:
特别注意,我们这里编辑的顺序是AT32F435, CH32F203, SAMD21, STM32F070,大家在1拖4转接板上的器件顺序也应该是这个:
cs
--以下快捷方式将显示在PC软件界面-------------
--下面的注释将显示在H7-TOOL液晶屏
Note01 = "AT32F435, CH32F203, SAMD21, STM32F070"
TVCC_VOLT = 3.3
--UID加密和产品序号处理文件
dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
--公共lua子程序
dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
--烧录机台接口程序
dofile("0:/H7-TOOL/Programmer/LuaLib/machine_if.lua")
function start_prog(board_type, ch_num)
local re
pg_write_c_var("MultiProgMode", 1) -- 1拖4转接板,烧录其中1路
pg_write_c_var("MultiProgSwitchPin", 0) -- 烧录第1路
pg_write_c_var("MulSwdActive", 1)
dofile(f_getdir("proglua").."/AT32F435.luax")
re = start_prog_0(board_type, ch_num, 1) --烧录第1个芯片,统计次数
if (re ~= "OK") then
return re
end
pg_write_c_var("MultiProgSwitchPin", 1) -- 烧录第2路
pg_write_c_var("MulSwdActive", 1)
dofile(f_getdir("proglua").."/CH32F203.luax")
re = start_prog_0(board_type, ch_num, 0) --成功后烧录第2个芯片,不统计次数
if (re ~= "OK") then
return re
end
pg_write_c_var("MultiProgSwitchPin", 2) -- 烧录第3路
pg_write_c_var("MulSwdActive", 1)
dofile(f_getdir("proglua").."/SAMD21.luax")
re = start_prog_0(board_type, ch_num, 0) --成功后烧录第3个芯片,不统计次数
if (re ~= "OK") then
return re
end
pg_write_c_var("MultiProgSwitchPin", 3) -- 烧录第4路
pg_write_c_var("MulSwdActive", 1)
dofile(f_getdir("proglua").."/STM32F070.luax")
re = start_prog_0(board_type, ch_num, 0) --成功后烧录第4个芯片,不统计次数
return re
end
一个1拖4顺序烧录不同文件.ini的内容如下:
cs
Locked = 0
ProgramLimit = 0
ProgrammedCount = 1
ProductSN = 0
将这两个文件保存到eMMC此路径后,退出eMMC磁盘
(4)TOOL重新上电,操作显示屏,注意选项1拖第1路
选择我们创建的这个文件一个1拖4顺序烧录不同文件.lua,然后就可以操作TOOL的实体按键执行脱机烧录
4路全部烧录成功
【完整配置,方便参考】
分享下Multi文件夹完整文件,方便大家参考
Multi.7z (14.17KB)