精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

HPM6750 從 XPI0 CB 端口啟動

先楫半導體HPMicro ? 2023-10-21 08:18 ? 次閱讀

1

背 景

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

4b73a148-6fa7-11ee-9788-92fbcf53809c.png

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

4b80100e-6fa7-11ee-9788-92fbcf53809c.png

XPI 部分原理圖

2

問 題

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

4b9ba9fe-6fa7-11ee-9788-92fbcf53809c.png

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

3

OTP 燒寫

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

4ba4046e-6fa7-11ee-9788-92fbcf53809c.png4ba82878-6fa7-11ee-9788-92fbcf53809c.png

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

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

4bb032d4-6fa7-11ee-9788-92fbcf53809c.png

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

4bc0cea0-6fa7-11ee-9788-92fbcf53809c.png

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

4bc69fa6-6fa7-11ee-9788-92fbcf53809c.png

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

4bd19aaa-6fa7-11ee-9788-92fbcf53809c.png

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

4

修改 XPI NOR 配置選項

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

4bdc4bee-6fa7-11ee-9788-92fbcf53809c.png4be460f4-6fa7-11ee-9788-92fbcf53809c.png4bf5b69c-6fa7-11ee-9788-92fbcf53809c.png

當我們使用 CMake 配置項目,并設置 CMAKE_BUILD_TYPEflash_xip 時,生成的 SES(Segger Embedded Studio)工程會使用 flash_xip.icf 鏈接腳本,以將各個 section 鏈接至 Flash 中。可以在如下菜單中打開鏈接腳本。

4bfcaf60-6fa7-11ee-9788-92fbcf53809c.png

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

4c0157cc-6fa7-11ee-9788-92fbcf53809c.png4c0a9062-6fa7-11ee-9788-92fbcf53809c.png

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

4c2c182c-6fa7-11ee-9788-92fbcf53809c.png

為了避免修改 SDK 中的文件,我選擇在項目文件夾下新建一個 board文件夾,并復制 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 被添加到項目中。

4c30057c-6fa7-11ee-9788-92fbcf53809c.png

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

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

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

5

燒 錄

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

4c3d0678-6fa7-11ee-9788-92fbcf53809c.png4c462032-6fa7-11ee-9788-92fbcf53809c.png

Status Register 中的 QE 位

4c4e5bbc-6fa7-11ee-9788-92fbcf53809c.png

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

4c684342-6fa7-11ee-9788-92fbcf53809c.png

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

    關注

    450

    文章

    49636

    瀏覽量

    417195
  • 控制器
    +關注

    關注

    112

    文章

    15886

    瀏覽量

    175386
  • 評估板
    +關注

    關注

    1

    文章

    478

    瀏覽量

    29162
收藏 人收藏

    評論

    相關推薦

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時

    _manufacturing_tool_gui linux 版本 選擇 hidraw 連接 HPM6750 芯片,能識別到 hidraw 設備,單擊連接是提示重啟芯片這個時候會等待超時然后軟件報錯,此時查看 lsusb 設備是檢測不到 hpm6750
    發(fā)表于 08-07 16:43

    RTThread的定時器中斷時間不準確,會有us級的抖動的原因?

    我在用hpm6750定時器,通過定時器中斷周期處理函數(shù),周期1ms,但是定時器的每周期時間都會飄,會有us級的抖動,我的中斷回調(diào)函數(shù)如下: int us_temp[1000]; int us_idx
    發(fā)表于 02-23 07:09

    HPM6750體驗ADC

    1、新建RTT工程,工程中添加對ADC的驅(qū)動: 2、保存工程后,添加測試代碼。 3、我們根據(jù)原理圖上的J10接個,只有PE29是ADC3的輸出通道 4、先定義通道、任務 #define ADC_DEV_NAME\"adc3\"/* ADC 設備名稱 */ #define ADC_DEV_CHANNEL2/* ADC 通道 */ #define REFER_VOLTAGE 330/* 參考電壓 3.3V,數(shù)據(jù)精度乘以100保留2位小數(shù)*/ #define CONVERT_BITS(1 << 16)/* 轉(zhuǎn)換位數(shù)為16位 */ 5、添加任務: static void Adc_entry(void* paremeter) { rt_adc_device_t adc_dev; rt_uint32_t value,vol; rt_err_t ret = RT_EOK; adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf(\"adc sample run failed! can\'t find %s device!\\\\n\", ADC_DEV_NAME); } /* 使能設備 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); if(ret == RT_EOK) { rt_kprintf(\"adc sample run success!find %s device!\\\\n\", ADC_DEV_NAME); } while(1) { /* 讀取采樣值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf(\"the value is :%d \\\\n\", value); /* 轉(zhuǎn)換為對應電壓值 */ vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf(\"the voltage is :%d.%02d \\\\n\", vol / 100, vol % 100); rt_thread_delay(500); } } 7、在主函數(shù)里啟用任務 Adc_thread = rt_thread_create(\"adc1\", Adc_entry, RT_NULL, 512, 16, 20); if(Adc_thread != RT_NULL) rt_thread_startup(Adc_thread); else return -1;
    發(fā)表于 02-17 16:00

    解決HPM6750EVK2jlink下載

    Device \"HPM6750XVMX\" selected. Connecting to target via JTAG TotalIRLen = 5, IRPrint = 0
    發(fā)表于 02-16 10:30

    Embedded Studio 編譯器教程

    最近入手先輯的HPM6750,需要使用Embedded Studio 編譯器來做開發(fā),各位推薦一下學習資料。
    發(fā)表于 02-04 08:01

    【先楫HPM5361EVK開發(fā)板試用體驗】HPM5361程序下載

    ); 3)、在系統(tǒng)編程模式(UART0/USB0-HID/XPI0/OTP); 其啟動流程如下圖所示。 2、HPM5361
    發(fā)表于 12-21 14:59

    Linux 下編譯HPM_Math 工程報錯

    /hpm/hpm_sdk/soc/HPM6750/toolchains/gcc/flash_xip.ld -- Segger device name: HPM6750xVMx -- S
    發(fā)表于 12-20 12:54

    【先楫HPM5361EVK開發(fā)板試用體驗】02-HPM5361程序下載

    ); 3)、在系統(tǒng)編程模式(UART0/USB0-HID/XPI0/OTP); 其啟動流程如下圖所示。 2、HPM5361
    發(fā)表于 12-07 14:39

    RT_thread studio中如何配置先輯的hpm_math數(shù)學庫?

    hpm6750不知道如何在RTThread studio中使用hpm_math中的數(shù)學庫,想要使用libdspf.a,但是不知道如何配置
    發(fā)表于 12-06 18:32

    淺談HPM5300的端口驅(qū)動安裝

    淺談HPM5300的端口驅(qū)動安裝
    的頭像 發(fā)表于 11-30 20:05 ?477次閱讀
    淺談<b class='flag-5'>HPM</b>5300的<b class='flag-5'>端口</b>驅(qū)動安裝

    【先楫HPM5361EVK開發(fā)板試用體驗】-- HPM5361初體驗

    cortex-m7級別的芯片國產(chǎn)一直有傳說未見身影,奈何只能接受國外品牌漫長的交期和一次次的漲價。 有幸大概在2022年意外接觸到了先楫半導體的HPM6750,看到了價格和性能(高主頻,高DMIPS)著實
    發(fā)表于 11-29 11:26

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

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

    想找一個先楫半導體的HPM6750 使用linux剪裁操作系統(tǒng)的例程

    想找一個先楫半導體的HPM6750 使用linux剪裁操作系統(tǒng)的例程,SDK里給了FREERT的,沒有LINUX的。哪里可以下載的到?
    發(fā)表于 10-25 16:18

    HPM6750XPI0 CB端口啟動步驟

    引出 XPI0 CA 端口的引腳,如下圖所示。所以最后選擇了 XPI0CB 端口用于連接 NOR Flash。
    的頭像 發(fā)表于 10-20 14:42 ?872次閱讀
    <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>步驟

    HPM6750IVM2的xpi模式更改為標準spi模式

    現(xiàn)在板上Flash使用的是標準spi模式,xpi_DQ3腳沒有接到Flash上,所以燒錄不了程序,現(xiàn)在需要將6750xpi模式配置為標準spi,想請教一下各位大佬
    發(fā)表于 10-12 14:46