文章

[開箱文] 帶有AI算力的正點原子 STM32N647 開發板

圖片
          STM32N647 晶片是單核 Cortex-M55 ,其內部工作頻率為 800MHz( 超頻 ) ,內建的記憶體大小約 4.2MB ,與其他 STM32Fx 系列的晶片不同,它沒有內建 Flash ,程式碼必須燒錄在外部的 Flash 。此外,晶片內建 NPU ,具備小量的 AI 加速算力,還有 JPEG/H.264 編碼器。順帶提一點,若有製作板卡的需求時,得由專業的PCB廠商來處理,推薦 JLCPCB  https://jlcpcb.com/hk 。 開發環境 過去習慣用 Keil IDE 開發 STM32 的板子,但是 N647 只能在 Keil 編譯,而無法進行燒錄與 debug ,因此只能用官方的 STM32Cube IDE 進行 step debug ,燒錄則用 STM32Cube Programmer 工具,將程式碼燒到外部的 Flash 記憶體。 影片連結【【正点原子】手把手教你学 STM32CubeIDE 开发【真人出镜】 STM32CubeIDE 开发视频教程 单片机 嵌入式】 https://www.bilibili.com/video/BV1Wp42127Cx/?p=3&share_source=copy_web&vd_source=c4accd27d29c32708912d15f0b5f15ce 開機模式 晶片的開機模式透過兩根 pin 腳切換,如下表,有三種模式:開發階段的開機 、 Flash 開機 、 序列方式開機。一般開發階段的開機就是透過 STM32Cube IDE 環境來運行程式碼,一旦 reset 後程式碼就消失了。 Flash 開機就是將程式碼燒錄到外部 Flash ,晶片透過 SPI 介面讀取程式碼運行。另一種是透過 USB 或 UART 序列方式讀取程式碼來運行。 在開發板的軟體包裡面,有個 External_Loader 目錄,裡面包含 MX25UM2565G 記憶體的下載程式碼的演算法 (MX25UM25645G_ATK-CNN647B_ExtMemLoader. stldr ) ,將這個檔案複製到 STM32Cube Programmer 工具的 bin 目錄底下。 外部擴展定址 底下...

[筆記] Dify 開源 AI 模板套件

圖片
安裝 Dify ( 開源 AI 模板套件 ) 硬體需求: CPU 至少雙核,超過 4GB 記憶體 軟體需求: Windows with WSL2 ,安裝 Docker Desktop 步驟: 1.        git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git 從網路下載 Dify ,過程如果需要安裝 jq 指令,請執行 sudo apt install jq –y 。 2.          進到 dify/docker 目錄,並複製 cp .env.example .env ,由於隱藏檔必須 ls –a 才看得到。 3.          執行 docker compose up –d ,便開始下載相關鏡像。 4.          五個核心服務 (api 、 worker 、 worker_beat 、 web 、 plugin_daemon) ,以及六個依賴的元件 (weaviate 、 db_postgres 、 redis 、 nginx 、 ssrf_proxy 、 sandbox) 被 docker 執行。下載的鏡像如下圖所示。   5.          開啟瀏覽器 http://localhost/install ,便開始安裝 Dify 應用程式,設定使用者與密碼。 6.     從 Ubuntu 本地進到 http://localhost/apps ,如...

開發 nRF54L15 低功耗藍芽模組,以 Zephyr 範例程式說明

圖片
前一文章講解 nRF54L15 模組在 VS Code 環境的開發,本文則說明藍芽程式的開發。在 SDK 中,與藍芽相關功能的範例放在 \ncs\v3.1.1\zephyr\samples\bluetooth 目錄,如下所示。我們選擇 peripheral 範例程式,並添加 build configuration 後,開啟 prj.conf 檔案,裡面定義了藍芽服務的參數,如下方圖所示。   BAS 是定義電池的服務, HRS 是定義心律的服務, IAS 是定義即時告警的服務, CTS 是定義目前時間的服務。編譯前,我們可以設 y 或 n 決定啟用或關閉服務,設定好之後,先重新生成 build config ( 最好執行 Clean Build Configuration ,再生成 ) ,然後再重新編譯所有的 code 。底下這個函數 API 是廣播設備的屬性,其中 ad 是屬性內容和 sd 是設備名稱。 bt_le_adv_start (BT_LE_ADV_CONN_FAST_1, ad , ARRAY_SIZE(ad), sd , ARRAY_SIZE(sd)); 在手機端,下載 nRF Connect for Mobile ,安裝後打開 APP 。先掃描藍芽設備,看到藍芽名為 Zephyr Peripheral… ,就是上圖程式中定義的名稱。連線後,如下圖,顯示這設備的屬性,包含 Heart Rate 的屬性 (Notify 、 Read 、 Write) 。 除了藍芽所定義的服務之外,下圖是這設備 GATT 的通用屬性 配置屬性的 API 函數,包含 vnd 變數與 uuid 。 bt_gatt_find_by_uuid ( vnd_svc .attrs,   vnd_svc .attr_count,   &vnd_enc_uuid.uuid); 範例中,開啟藍芽認證模式, API 函數如下,其中 GATT 的某些欄位需要認證才能進行讀與寫。 bt_conn_auth_cb_register ( &auth_cb_display ); 變更 BT 位址 在原始範例所生成的 prj.conf 檔案中,定義 CONFIG_BT_PRIVACY=y ,意思是隨...

開箱 NORA-B2 開發板 -- 核心是低功耗 nRF54L15 藍芽晶片

圖片
NORA-B2 開發板上面有一小塊由  u-blox  公司所製造的低功耗藍芽模組,該模組已經取得無線的認證,可提供給第三方整合使用。目前開發板上的模組型號為 NORA-B206 ,其內部核心為 Nordic 半導體的 nRF54L15 晶片,內建 256kB 記憶體, 1.5MB NVRAM 。此外,這個型號自帶有 PCB 的天線,無須外接天線。開發板的電路圖連結如下: https://github.com/u-blox/evk_designs_sho_altium/tree/main/EVK-NORA-B20/EVK-NORA-B2-C.3/Deliverables 。 開發軟體 VS Code : Nordic Semi 透過這套 IDE 進行開發 SEGGER J-Link/J-Trace Software :開發板上面已經自建 debugger ,但需要安裝這套軟體。                 韌體開發的環境推薦在 VS Code ,然後再安裝 nRF Connect 套件,透過套件才能安裝 SDK 與 toolchains 。安裝最新的 SDK 3.1.1 之後,這塊開發板尚未列入 SDK 裡面 ( 板子太新還來不及支援 ) ,不過我們可以暫時選用 nrf54l15dk 開發板的資料來編譯系統程式碼。所有支援的板卡資訊都存放在這個目錄底下, C:\ncs\v3.1.1\zephyr\boards ,能找到對應的板卡。此外,採用手動的方式來新增這塊開發板,先到 GitHub 網站,如下鏈結 https://github.com/u-blox/u-blox-sho-OpenCPU/tree/master/zephyr/boards/u-blox 。下載 ubx_evknorab2 的資料,放到上述的目錄底下,這樣在 VS Code 環境裡便能列出這開發板了。 需安裝 VS Code 的套件,如下:         nRF Connect for VS Code Extension Pack :這套件會自動安裝其他六個相關套件。  ...