RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在MIMXRT1020CAG4B中設(shè)置BT_FUSE_SEL熔絲位

li1756686189 ? 來源:嵌入式 MCU ? 作者:嵌入式 MCU ? 2022-11-07 10:44 ? 次閱讀

從參考手冊中了解到,在軟件運行時才能設(shè)置eFuse。如何設(shè)置BT_FUSE_SEL,使用Keil MDK燒寫 eFuse進行批量生產(chǎn)呢?這樣保持每次固定只從外部的 QSPI Flash引導(dǎo),而不需要判斷外部BOOT GPIO引腳電平,可以減少外部下拉電阻的設(shè)置,對于原理圖設(shè)計會簡化許多。根據(jù)手冊,BT_FUSE_SEL位于熔絲地址 0x460的第四位。

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

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

當配置Boot_Mode在內(nèi)部引導(dǎo)(b10)時,BT_FUSE_SEL的狀態(tài)確定引導(dǎo)配置是否取自熔絲位或引腳狀態(tài)。如果BT_FUSE_SEL=0,boot_cfg是從GPIO獲取的。如果BT_FUSE_SEL=1,則從熔絲中獲取引導(dǎo)配置cfg。

當配置Boot_Mode為BOOT_MODE[1:0]=b00:

——BT_FUSE_SEL=0,引導(dǎo)器件中沒有應(yīng)用程序,BootROM進入串行下載模式

——BT_FUSE_SEL=1,引導(dǎo)器件中有應(yīng)用程序,BootROM從FUSE獲取所有引導(dǎo)設(shè)備信息

當配置Boot_Mode為BOOT_MODE[1:0]=b10:

——BT_FUSE_SEL=0,引導(dǎo)器件中的有效應(yīng)用程序,BootROM從boot_cfg引腳獲取引導(dǎo)設(shè)備信息

——BT_FUSE_SEL=1,引導(dǎo)器件中的有效應(yīng)用程序,BootROM從熔絲位獲取所有引導(dǎo)設(shè)備信息

即使配置了 BT_FUSE_SEL=1,當配置了 BOOT_MODE[1:0]=01b時,仍然可以進入串行下載器模式,這與BT_FUSE_SEL沒有關(guān)系,僅當配置BOOT_MODE[1:0]=00b時,ROM引導(dǎo)加載程序?qū)z查BT_FUSE_SEL。所以,如果有BOOT_MODE兩個引腳,仍然可以進入串行下載模式。

在MDK IDE環(huán)境下運行如下固件代碼,該代碼在固件首次啟動時燒寫B(tài)T_FUSE_SEL。在批量生產(chǎn)中,調(diào)試器對Flash進行編程并第一次調(diào)用啟動。所以不再需要引導(dǎo) 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)
}

那么如何在生產(chǎn)中做到這一點呢?使用MIMXRT1021CAG4B,之前BT_CFG_xx信號與GND相連,目前想利用這些GPIO 去連接外部的GPIO或者是LCD或者是ADC芯片,上面介紹的代碼可以做到這一點。注意,當編程到外部 Flash中時,如何讓MCU 執(zhí)行這些代碼?BT_CFG_xxx信號最初是否不需要正確設(shè)置才能執(zhí)行代碼,或者是否需要額外使用調(diào)試器工具進行了一些設(shè)置?在后臺啟動keil的批處理文件,也可以在下載到flash后開始代碼處執(zhí)行(參見如下μVision用戶指南:命令行)。因此,它在編程Flash 后第一次使用調(diào)試器啟動,屆時熔絲位將被寫入。

μ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位的數(shù)值0x00000008 寫入到 OTP 區(qū)0, 字6 (ADDR = 0x06)。在參考手冊中,生產(chǎn)配置OTP Bank0 Word6 (HW_OCOTP_CFG5)] ,表示熔絲位的偏置是 460h 。

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350978
  • 熔絲位
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    11228
  • Fuse
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    12296

原文標題:在MIMXRT1020CAG4B中設(shè)置BT_FUSE_SEL熔絲位

文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AVR 設(shè)置及拯救方法

    AVR 設(shè)置及拯救方法
    發(fā)表于 07-26 22:48

    atmel studio 7如何設(shè)置?

    如何設(shè)置atmel studio 7的界面
    發(fā)表于 05-11 11:48

    如何設(shè)置AVR單片機加密?

    什么是?如何設(shè)置AVR單片機加密?
    發(fā)表于 09-24 06:55

    SD SRD104模式不可用的原因?

    30390070”輸出,BT_FUSE_SEL 為 0,即 22000009。BT_FUSE_SEL 是該數(shù)字的第 4 ,確實為“0”。長話短說,我想在不向這些引腳施加邏輯電壓的情
    發(fā)表于 03-17 07:45

    BLHost從NOR執(zhí)行應(yīng)用程序無法正常啟動的原因?

    FLASH_AUTO_PROBE_EN=1 和 BT_FUSE_SEL=1。這使我們成功啟動了應(yīng)用程序,同時 BOOT_MODE[1:0] = 00(從啟動)和 BOOT_MODE[1:0] = 10(內(nèi)部 ROM
    發(fā)表于 03-23 07:37

    如果SJC被禁用,MCU i.MXRT 1051加密的XIP啟動軟件重置后失敗怎么解決?

    =0b10、DIR_BT_DIS、SEC_CONFIG[1]、BT_FUSE_SEL)。當設(shè)備通過所有測試時,我們會燒斷鎖定 SerialDownloader 和調(diào)試支持的保險(燒斷
    發(fā)表于 04-04 07:41

    MIMXRT1021CAG4A無法正常啟動是為什么?

    問題描述我們有一個硬件問題,MIMXRT1021CAG4A 無法正常啟動當BOOT_MODE寄存器設(shè)置為01(串口下載器)時,MCU不枚舉為HID而且我們無法使用 MCUXpresso Secure
    發(fā)表于 04-18 06:21

    如何使用SD卡啟動MIMXRT1024CAG4B?

    我們計劃使用 SD 卡啟動 MIMXRT1024CAG4B。 基于參考手冊 IMXRT1024RM chapter9.6.6.3,我們假設(shè)引導(dǎo)操作不支持 SDR50 和 SDR104。希望支持SDR50和SDR104的SD卡正常運行(數(shù)據(jù)傳輸率)。我的理解正確嗎?
    發(fā)表于 05-05 08:08

    的作用是什么?如何設(shè)置呢?

    的作用是什么?如何設(shè)置? 給個清晰明白的
    發(fā)表于 11-06 07:14

    (Fuse)快速入門

    AVR Studio STK500 處理有巨大的優(yōu)勢:它是以功能組合讓用戶配置。 這種方式與小馬(PnoyProg2000,SL-ISP)相比,具有以下的優(yōu)勢(優(yōu)勢是如此明顯
    發(fā)表于 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的設(shè)置

    電子設(shè)計研發(fā)部分的研發(fā)人員常用資料,mega的設(shè)置,感興趣的可以瞧一瞧。
    發(fā)表于 11-03 14:53 ?0次下載

    AVR單片機設(shè)置

    AVR單片機設(shè)置 可以控制avr單片機的
    發(fā)表于 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'>設(shè)置</b>

    關(guān)于AVR單片機設(shè)置和拯救方法大全 AVR單片機設(shè)置和詳細的拯救方法

    是ATMEL公司AVR單片機比較獨到的特征。每一種型號的AVR單片機內(nèi)部都有一些特定含義的
    發(fā)表于 11-15 09:06 ?44次下載
    關(guān)于AVR單片機<b class='flag-5'>熔</b><b class='flag-5'>絲</b><b class='flag-5'>位</b>的<b class='flag-5'>設(shè)置</b>和拯救方法大全 AVR單片機<b class='flag-5'>熔</b><b class='flag-5'>絲</b><b class='flag-5'>位</b>的<b class='flag-5'>設(shè)置</b>和詳細的拯救方法

    Atmega128 AVR Studio(Fuse)設(shè)置

    Atmega128 AVR Studio(Fuse)設(shè)置
    發(fā)表于 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'>設(shè)置</b>

    MIMXRT1021CAG4B GPIO口復(fù)位值詳解

    MIMXRT1021CAG4B使用,當系統(tǒng)上電后,發(fā)現(xiàn)不同的端口通電后具有不同的值。例如,現(xiàn)在使用GPIO_EMC_39和喚醒引腳,兩者結(jié)果是不同的。從GPIO數(shù)據(jù)手冊
    的頭像 發(fā)表于 01-09 11:01 ?1852次閱讀
    RM新时代网站-首页