0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在MIMXRT1020CAG4B中设置BT_FUSE_SEL熔丝位

li1756686189 来源:嵌入式 MCU 作者:嵌入式 MCU 2022-11-07 10:44 次阅读

从参考手册中了解到,在软件运行时才能设置eFuse。如何设置BT_FUSE_SEL,使用Keil MDK烧写 eFuse进行批量生产呢?这样保持每次固定只从外部的 QSPI Flash引导,而不需要判断外部BOOT GPIO引脚电平,可以减少外部下拉电阻的设置,对于原理图设计会简化许多。根据手册,BT_FUSE_SEL位于熔丝地址 0x460的第四位。

882bfce2-5cd5-11ed-a3b6-dac502259ad0.png

88ae0db8-5cd5-11ed-a3b6-dac502259ad0.png

当配置Boot_Mode在内部引导(b10)时,BT_FUSE_SEL的状态确定引导配置是否取自熔丝位或引脚状态。如果BT_FUSE_SEL=0,boot_cfg是从GPIO获取的。如果BT_FUSE_SEL=1,则从熔丝中获取引导配置cfg。

当配置Boot_Mode为BOOT_MODE[1:0]=b00:

——BT_FUSE_SEL=0,引导器件中没有应用程序,BootROM进入串行下载模式

——BT_FUSE_SEL=1,引导器件中有应用程序,BootROM从FUSE获取所有引导设备信息

当配置Boot_Mode为BOOT_MODE[1:0]=b10:

——BT_FUSE_SEL=0,引导器件中的有效应用程序,BootROM从boot_cfg引脚获取引导设备信息

——BT_FUSE_SEL=1,引导器件中的有效应用程序,BootROM从熔丝位获取所有引导设备信息

即使配置了 BT_FUSE_SEL=1,当配置了 BOOT_MODE[1:0]=01b时,仍然可以进入串行下载器模式,这与BT_FUSE_SEL没有关系,仅当配置BOOT_MODE[1:0]=00b时,ROM引导加载程序将检查BT_FUSE_SEL。所以,如果有BOOT_MODE两个引脚,仍然可以进入串行下载模式。

在MDK IDE环境下运行如下固件代码,该代码在固件首次启动时烧写BT_FUSE_SEL。在批量生产中,调试器对Flash进行编程并第一次调用启动。所以不再需要引导 Boot引脚判断。

//写熔丝位
if (!(SRC->SBMR2 & SRC_SBMR2_BT_FUSE_SEL_MASK))
{
int timing = OCOTP_TIMING_STROBE_PROG(1325) | OCOTP_TIMING_RELAX(2) | OCOTP_TIMING_STROBE_READ(11) |OCOTP_TIMING_WAIT(24); //ipg_clk=132MHz
OCOTP->TIMING = timing;
while ((OCOTP->CTRL & (1<CTRL & (1< int ocotp_ctrl = OCOTP->CTRL;
ocotp_ctrl &= ~OCOTP_CTRL_ADDR_MASK;
ocotp_ctrl|= OCOTP_CTRL_ADDR(6);
ocotp_ctrl &= ~OCOTP_CTRL_WR_UNLOCK_MASK ;
ocotp_ctrl|= OCOTP_CTRL_WR_UNLOCK(0x3E77);
OCOTP->CTRL = ocotp_ctrl; //写地址,解锁
OCOTP->DATA = (long)((1<<4)|(1<<16));//写入 BT_FUSE_SEL (1<<4) 和FORCE_INTERNAL_BOOT (1<<16)
}

那么如何在生产中做到这一点呢?使用MIMXRT1021CAG4B,之前BT_CFG_xx信号与GND相连,目前想利用这些GPIO 去连接外部的GPIO或者是LCD或者是ADC芯片,上面介绍的代码可以做到这一点。注意,当编程到外部 Flash中时,如何让MCU 执行这些代码?BT_CFG_xxx信号最初是否不需要正确设置才能执行代码,或者是否需要额外使用调试器工具进行了一些设置?在后台启动keil的批处理文件,也可以在下载到flash后开始代码处执行(参见如下µVision用户指南:命令行)。因此,它在编程Flash 后第一次使用调试器启动,届时熔丝位将被写入。

µVision User's Guide (arm.com)

当然 MCU BootUtility或者MFG都是比较好的烧录Fuse的工具。

参考文档"i.MX MCU Manufacturing User's Guide.pdf"Rev. 1, 01/2018, 第8部分有 load fuse命令,例如load fuse 0x00000008 -> 0x06

意味着将32位的数值0x00000008 写入到 OTP 区0, 字6 (ADDR = 0x06)。在参考手册中,生产配置OTP Bank0 Word6 (HW_OCOTP_CFG5)] ,表示熔丝位的偏置是 460h 。

89156b66-5cd5-11ed-a3b6-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17370

    浏览量

    352982
  • 熔丝位
    +关注

    关注

    0

    文章

    19

    浏览量

    11276
  • Fuse
    +关注

    关注

    0

    文章

    11

    浏览量

    12313

原文标题:在MIMXRT1020CAG4B中设置BT_FUSE_SEL熔丝位

文章出处:【微信号:嵌入式 MCU,微信公众号:嵌入式 MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AVR 设置及拯救方法

    AVR 设置及拯救方法
    发表于 07-26 22:48

    atmel studio 7如何设置

    如何设置atmel studio 7的界面
    发表于 05-11 11:48

    如何设置AVR单片机加密

    什么是?如何设置AVR单片机加密
    发表于 09-24 06:55

    SD SRD104模式不可用的原因?

    30390070”输出,BT_FUSE_SEL 为 0,即 22000009。BT_FUSE_SEL 是该数字的第 4 ,确实为“0”。长话短说,我想在不向这些引脚施加逻辑电压的情
    发表于 03-17 07:45

    BLHost从NOR执行应用程序无法正常启动的原因?

    FLASH_AUTO_PROBE_EN=1 和 BT_FUSE_SEL=1。这使我们成功启动了应用程序,同时 BOOT_MODE[1:0] = 00(从启动)和 BOOT_MODE[1:0] = 10(内部 ROM
    发表于 03-23 07:37

    如果SJC被禁用,MCU i.MXRT 1051加密的XIP启动软件重置后失败怎么解决?

    =0b10、DIR_BT_DIS、SEC_CONFIG[1]、BT_FUSE_SEL)。当设备通过所有测试时,我们会烧断锁定 SerialDownloader 和调试支持的保险(烧断
    发表于 04-04 07:41

    MIMXRT1021CAG4A无法正常启动是为什么?

    问题描述我们有一个硬件问题,MIMXRT1021CAG4A 无法正常启动当BOOT_MODE寄存器设置为01(串口下载器)时,MCU不枚举为HID而且我们无法使用 MCUXpresso Secure
    发表于 04-18 06:21

    如何使用SD卡启动MIMXRT1024CAG4B

    我们计划使用 SD 卡启动 MIMXRT1024CAG4B。 基于参考手册 IMXRT1024RM chapter9.6.6.3,我们假设引导操作不支持 SDR50 和 SDR104。希望支持SDR50和SDR104的SD卡正常运行(数据传输率)。我的理解正确吗?
    发表于 05-05 08:08

    的作用是什么?如何设置呢?

    的作用是什么?如何设置? 给个清晰明白的
    发表于 11-06 07:14

    (Fuse)快速入门

    AVR Studio STK500 处理有巨大的优势:它是以功能组合让用户配置。 这种方式与小马(PnoyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显
    发表于 01-18 16:25 0次下载
    <b class='flag-5'>熔</b><b class='flag-5'>丝</b><b class='flag-5'>位</b>(<b class='flag-5'>Fuse</b>)快速入门

    mega的设置

    电子设计研发部分的研发人员常用资料,mega的设置,感兴趣的可以瞧一瞧。
    发表于 11-03 14:53 0次下载

    AVR单片机设置

    AVR单片机设置 可以控制avr单片机的
    发表于 11-14 20:21 12次下载
    AVR单片机<b class='flag-5'>熔</b><b class='flag-5'>丝</b><b class='flag-5'>位</b><b class='flag-5'>设置</b>

    关于AVR单片机设置和拯救方法大全 AVR单片机设置和详细的拯救方法

    是ATMEL公司AVR单片机比较独到的特征。每一种型号的AVR单片机内部都有一些特定含义的
    发表于 11-15 09:06 44次下载
    关于AVR单片机<b class='flag-5'>熔</b><b class='flag-5'>丝</b><b class='flag-5'>位</b>的<b class='flag-5'>设置</b>和拯救方法大全 AVR单片机<b class='flag-5'>熔</b><b class='flag-5'>丝</b><b class='flag-5'>位</b>的<b class='flag-5'>设置</b>和详细的拯救方法

    Atmega128 AVR Studio(Fuse)设置

    Atmega128 AVR Studio(Fuse)设置
    发表于 11-15 16:21 38次下载
    Atmega128  AVR Studio<b class='flag-5'>熔</b><b class='flag-5'>丝</b><b class='flag-5'>位</b>(<b class='flag-5'>Fuse</b>)<b class='flag-5'>设置</b>

    MIMXRT1021CAG4B GPIO口复位值详解

    MIMXRT1021CAG4B使用,当系统上电后,发现不同的端口通电后具有不同的值。例如,现在使用GPIO_EMC_39和唤醒引脚,两者结果是不同的。从GPIO数据手册
    的头像 发表于 01-09 11:01 1977次阅读