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

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

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

HPM6750從XPI0 CB端口啟動步驟

331062281 ? 來源:先楫半導(dǎo)體HPMicro ? 2023-10-20 14:42 ? 次閱讀

1背 景

在我的某個項目中由于希望把板子做的小一點,所以選擇了 BGA196 封裝的 HPM6750IAN2 芯片,在畫板子的過程中,注意到相比 BGA289 封裝的 HPM6750IVM2 芯片,其并沒有引出 XPI0 CA 端口的引腳,如下圖所示。所以最后選擇了 XPI0 的 CB 端口用于連接 NOR Flash。

28bc418a-6f13-11ee-939d-92fbcf53809c.png

部分引腳復(fù)用功能(來源:HPM6750數(shù)據(jù)手冊)

28c4abea-6f13-11ee-939d-92fbcf53809c.png

XPI 部分原理圖

2問 題

在 HPM6750EVKMINI 評估板中使用了 XPI0 CA 端口作為連接串行 NOR Flash 的引腳(芯片的默認(rèn)配置),在芯片上電啟動的過程中,芯片內(nèi)部的 BootROM 會根據(jù) OTP 配置初始化 XPI 控制器,從 Flash 0x400 的地址讀取 XPI NOR 配置選項,并按照讀取的配置選項將 XPI 配置為指定的工作模式,然后重新檢測 Flash 是否存在,從 Flash 中加載鏡像完成剩余啟動步驟。

28cfb8a0-6f13-11ee-939d-92fbcf53809c.png

因此為了實現(xiàn)從 XPI0 CB 端口啟動,我們需要修改 OTP 中的對應(yīng)字段和啟動鏡像中的 XPI NOR 配置選項。

3OTP 燒寫

通過查閱 HPM6750 的參考手冊,發(fā)現(xiàn)控制 BootROM 啟動時指定 Flash 連接方式的為以下幾個字段:

28df8bc2-6f13-11ee-939d-92fbcf53809c.png28ea7aa0-6f13-11ee-939d-92fbcf53809c.png

因此在本例中,需要僅需修改 XPI_PORT_SEL 字段為 1,讓 BootROM 從 CB_CS0 端口啟動即可。

將 BOOT 撥碼開關(guān)調(diào)至 BOOT_MODE[1:0]=0b10,以 ISP 模式啟動,將 USB0 連接至 PC,然后打開 HPMicro 量產(chǎn)工具,選擇對應(yīng)的 USB 設(shè)備點擊 連接,連接成功后如下圖所示。

28f5d6e8-6f13-11ee-939d-92fbcf53809c.png

注意:
OTP 操作需謹(jǐn)慎!?。?br /> OTP 操作需謹(jǐn)慎?。?!
OTP 操作需謹(jǐn)慎?。?!

OTP 操作 ??中,點擊 刷新 讀取當(dāng)前芯?中 OTP 的數(shù)據(jù),看到 Word 24 的值為0x00000000 ,也就是從 XPI0 CA 端?的第?組引腳啟動。

29076df4-6f13-11ee-939d-92fbcf53809c.png

切換至 寫視圖,點擊 添加 Words,在彈出的對話框中按照下圖輸入,即:將 Word 24 的 bit 6 置 1,從 CB_CS0 端口啟動。點擊確定后,再次確認(rèn)數(shù)據(jù)是否有誤,確認(rèn)無誤后點擊 寫入。

29171696-6f13-11ee-939d-92fbcf53809c.png

寫入完成后切換回 寫視圖,點擊 刷新,可以看到 Word 24 已經(jīng)變?yōu)槠谕怠?/p>

2921a93a-6f13-11ee-939d-92fbcf53809c.png

將撥碼開關(guān)撥回 XPI NOR 啟動后復(fù)位芯片,可使用邏輯分析儀觀察 XPI0_CB_SCLK 引腳在上電時的電平,如可以觀察到對應(yīng)的時鐘信號,證明 OTP 設(shè)置已經(jīng)生效。

4修改 XPI NOR 配置選項

在 BootROM 檢測到 Flash 后,會從 0x400 讀取 XPI NOR 配置選項重新配置 XPI,為了確保 XPI 重新配置后仍能檢測到 Flash,需要對默認(rèn)配置進(jìn)行修改。根據(jù)參考手冊,配置選項的定義如下:

2938b54e-6f13-11ee-939d-92fbcf53809c.png294e82ac-6f13-11ee-939d-92fbcf53809c.png2956cb7e-6f13-11ee-939d-92fbcf53809c.png

當(dāng)我們使用 CMake 配置項目,并設(shè)置 CMAKE_BUILD_TYPE為 flash_xip 時,生成的 SES(Segger Embedded Studio)工程會使用 flash_xip.icf 鏈接腳本,以將各個 section 鏈接至 Flash 中??梢栽谌缦虏藛沃写蜷_鏈接腳本。

2961a31e-6f13-11ee-939d-92fbcf53809c.png

在 flash_xip.icf中,可以看到在 XPI0 的基地址偏移 0x400 處定義了存放 NOR_CFG_OPTION 的區(qū)域,對應(yīng)的 section 為 .nor_cfg_option。

29707768-6f13-11ee-939d-92fbcf53809c.png297b6510-6f13-11ee-939d-92fbcf53809c.png

使用快捷鍵 Ctrl+Shift+F 全局搜索 .nor_cfg_option,可以在 board.c 中找到對應(yīng)的配置選項。

298375c0-6f13-11ee-939d-92fbcf53809c.png

為了避免修改 SDK 中的文件,我選擇在項目文件夾下新建一個 board文件夾,并復(fù)制 hpm6750evkmini 的板級文件,重新命名為 myboard,此時項目結(jié)構(gòu)如下:

├── src/

│ ├── board/

│ │ └── myboard/

│ │ ├── CMakeLists.txt

│ │ ├── board.c

│ │ ├── board.h

│ │ ├── myboard.yaml

│ │ ├── pinmux.c

│ │ └── pinmux.h

│ └── app.c

└── CMakeLists.txt

在 CMake 初始化時使用 BOARD_SEARCH_PATH 將 board 文件夾添加至搜索路徑中(需使用 SDK 1.2.0):

cmake -Bbuild -DBOARD=myboard -DBOARD_SEARCH_PATH=./src/board -GNinja -DCMAKE_BUILD_TY
PE=flash_xip

使用 SES 打開工程,可以看到 board.c 被添加到項目中。

299640ec-6f13-11ee-939d-92fbcf53809c.png

同樣的,在 XPI 配置選項中也要使用 XPI0 CB_CS0 端口,所以需要將 Header[3:0] 改為 2,Option[11:8]改為 1。即:

__attribute__ ((section(".nor_cfg_option"))) const uint32_t option[4] = {0xfcf90002, 0
x00000007, 0x00000100, 0x0};

修改完成后重新進(jìn)行編譯,得到生成的 .bin文件。

5燒 錄

使用 HPMicro Programmer 進(jìn)行燒錄前,需要將 Connection Selection改為 CB_CS0,同時為了確保后續(xù) Flash 能切換至四線模式(Quad SPI),還需要根據(jù)使用的 Flash 設(shè)置 Quad Enable Sequence,借助 BootROM 將 Flash 的 QE 標(biāo)志位置位。這里我使用的是 GD25Q40C 系列 Flash,查閱 datasheet 可知 QE 位于 Status Register 2 的 bit1,因此這里我選擇 At bit1 in Status Register2。由于 QE 是 非易失 的,掉電后數(shù)據(jù)不會丟失,因此我們僅需在燒錄時設(shè)置一次,在 XPI NOR 配置選項中可以不用設(shè)置 Quad Enable Sequence 字段。

29a13ee8-6f13-11ee-939d-92fbcf53809c.png29ac6af2-6f13-11ee-939d-92fbcf53809c.png

Status Register 中的 QE 位

29bbd8c0-6f13-11ee-939d-92fbcf53809c.png

選擇編譯生成的.bin 文件后,程序會自動設(shè)置燒寫地址,隨后點擊燒錄。燒錄成功后恢復(fù)啟動模式撥碼開關(guān),然后復(fù)位芯片,正常情況下程序就會運行了。

29c8f596-6f13-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

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

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419609
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1608

    瀏覽量

    147562
  • 封裝
    +關(guān)注

    關(guān)注

    126

    文章

    7647

    瀏覽量

    142458
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    934

    瀏覽量

    31945

原文標(biāo)題:開發(fā)者分享|HPM6750 從 XPI0 CB 端口啟動

文章出處:【微信號:HPMicro,微信公眾號:先楫半導(dǎo)體HPMicro】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何使用RT-Thread Studio創(chuàng)建支持HPM6750開發(fā)板的RT-Thread項目

    和RT-Thread代碼中的默認(rèn)配置一致)。點擊“確定”,將會啟動一個新的終端,并按照配置參數(shù)連接HPM6750開發(fā)板對應(yīng)的串口端口:此時,按下開發(fā)板的復(fù)位按鍵,將會看到終端輸出了RT-Thread的版本信息
    發(fā)表于 06-08 11:22

    關(guān)于先楫半導(dǎo)體hpm6750的上手體驗知識總結(jié)

    %AXI_SRAM_NONCACHEABLE: 0 GB 256 KB 0.00%debug 類型工程對應(yīng)的 gcc 工具鏈鏈接腳本為 ram.ld ,他在“hpm_sdk/soc/HPM6750/toolchains/gcc
    發(fā)表于 07-07 15:28

    如何使用CodeViser調(diào)試先楫HPM6750開發(fā)板?

    HPM6750EVK2是基于先楫半導(dǎo)體的HPM6750高性能SOC的開發(fā)板,HPM6750是基于RISC-V的雙核處理器,主頻高達(dá)816M。HPM6750EVK2提供豐富的外設(shè)接口,包
    發(fā)表于 03-21 16:35

    請問HPM6750芯片的濕度敏感等級,***,是多少?。?/a>

    請問HPM6750芯片的濕度敏感等級,***,是多少?。?在資料里面沒有找到相關(guān)的描述。 謝謝!
    發(fā)表于 05-26 06:23

    請問HPM6750兩核的配置是SMP嗎?

    0x90000000 0x9FEFFFFF 255 MBytes XPI1 串行總線控制器XPI1 存儲空間 再看linker script 的設(shè)置.
    發(fā)表于 05-26 08:05

    HPM6750EVK/HPM6750EVKMINI調(diào)試失敗的原因及其解決辦法

    。 2Bootpin配置 HPM6750的boot pin配置也有可能會影響到芯片調(diào)試。建議如果發(fā)生調(diào)試失敗,可以嘗試調(diào)整boot pin配置如下: BOOT0 = 0,BOOT1=1 避免
    發(fā)表于 05-26 06:06

    HPM6750HPM6450是PIN to PIN的嗎?

    相同的封裝,HPM6750HPM6450是PINto PIN的嗎?
    發(fā)表于 06-08 08:27

    HPM6750單片機(jī)AD的原理圖與PCB封裝庫

    HPM6750單片機(jī)AD的原理圖與PCB封裝庫
    發(fā)表于 10-21 15:12 ?0次下載

    HPM6750開發(fā)環(huán)境搭建及快速上手

    鑒于不少小伙伴已經(jīng)拿到了HPM6750的開發(fā)套件,本文將基于HPM6750 EVKMINI開發(fā)板,開發(fā)環(huán)境搭建開始,帶你快速上手體驗HPM6750的強(qiáng)大性能。
    的頭像 發(fā)表于 12-20 11:52 ?3598次閱讀

    HPM6750的這幾種調(diào)試方式展開介紹

    HPM6750支持jlink、dap和ft2232等多種調(diào)試方式,本文將對這幾種調(diào)試方式展開介紹,方便大家靈活選用不同的調(diào)試方式。
    的頭像 發(fā)表于 02-01 09:56 ?3433次閱讀

    干貨分享|基于HPM6750 CAN2.0 及 CAN- FD 操作指南

    簡介本文主要介紹了HPM6750的控制器局域網(wǎng)CAN(以下簡稱CAN控制器)的概述以及基于HPM-SDKCAN控制器的開發(fā)指導(dǎo)(包括實現(xiàn)CAN2.0、CAN-FD)。CAN控制器1.概述CAN
    的頭像 發(fā)表于 06-16 09:13 ?2399次閱讀
    干貨分享|基于<b class='flag-5'>HPM6750</b> CAN2.0 及 CAN- FD 操作指南

    測評分享 | HPM6750 能跑 openmv 啦!

    本文內(nèi)容來自先楫開發(fā)者@RCSN的測評@先楫HPM6750在Openmv跑起來了!趕緊來看看---------------以下為測評內(nèi)容---------------(本期測評開發(fā)板為
    的頭像 發(fā)表于 09-01 15:41 ?1854次閱讀
    測評分享 | <b class='flag-5'>HPM6750</b> 能跑 openmv 啦!

    【深度測評】HPM6750 MCU片內(nèi)16位ADC精度測試

    【深度測評】HPM6750 MCU片內(nèi)16位ADC精度測試
    的頭像 發(fā)表于 10-30 17:43 ?2565次閱讀
    【深度測評】<b class='flag-5'>HPM6750</b> MCU片內(nèi)16位ADC精度測試

    HPM6750 ADC EVK用戶使用手冊

    電子發(fā)燒友網(wǎng)站提供《HPM6750 ADC EVK用戶使用手冊.pdf》資料免費下載
    發(fā)表于 09-19 15:46 ?1次下載
    <b class='flag-5'>HPM6750</b> ADC EVK用戶使用手冊

    HPM6750 XPI0 CB 端口啟動

    XPI0CA端口的引腳,如下圖所示。所以最后選擇了XPI0CB端口用于連接NORFlash。部分引腳復(fù)用功能(來源:
    的頭像 發(fā)表于 10-21 08:18 ?898次閱讀
    <b class='flag-5'>HPM6750</b> <b class='flag-5'>從</b> <b class='flag-5'>XPI0</b> <b class='flag-5'>CB</b> <b class='flag-5'>端口</b><b class='flag-5'>啟動</b>