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

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

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

藍牙開發(fā)零門檻之十四-Cube

海闊天空的專欄 ? 來源:桃芯科技 ? 作者:桃芯科技 ? 2023-11-07 18:28 ? 次閱讀

SDK 新工具 Cube 是一個圖形化的初始化代碼生成器,可為桃芯各種芯片型號生成 C 代碼。

關鍵特性

這是一個交互式工具,輔助開發(fā)者正確配置芯片。各種特性總結如下:

  • 支持各種芯片型號
  • 以最直觀的方式完成外設和時鐘樹配置
  • 豐富、易用的圖形界面
    • 啟發(fā)式、交互式設計
    • 無需文檔,使用方法一目了然
  • 自動檢查,減少錯誤
  • 管腳沖突
  • 參數(shù)范圍
  • 低調(diào)
  • 生成的代碼匯總于一個文件
  • 由開發(fā)者決定是否使用它生成的代碼
  • 不會搞亂開發(fā)者的工程設置
  • 極快的運行速度
  • 所有的檢查都是實時進行
  • 對于運行環(huán)境要求低
  • 與其它基于 Eclipse 的工具相比,效率不可同日而語
  • 生成的代碼更高效
  • 對于某些外設直接輸出“計算”后的代碼
  • 比調(diào)用驅動程序代碼更短、速度更快

在 Wizard 里右鍵單擊一個項目,從快捷菜單中選擇“Edit with Cube…”即可打開 Cube。Cube 生成的代碼保存在項目里的 /data/setup_soc.cgen 文件內(nèi),Cube 本身的數(shù)據(jù)保存在 /data/cube_SERIES.dat 文件內(nèi),這里 SERIES 為芯片系列。

要使用 Cube 生成的代碼,只需 3 步:

  1. main.c 里包含 ../data/setup_soc.cgen
    這行代碼需要在 #include "ingsoc.h" 之后。
  2. setup_peripheral 函數(shù)里調(diào)用 cube_setup_peripherals()
  3. app_main 函數(shù)的開頭調(diào)用 cube_soc_init()

下面通過幾個具體的場景介紹 Cube 的使用:

使用場景 1. 硬件工程師設計天線陣

比如現(xiàn)在要用 ING91880C 設計一塊天線陣,天線開關連哪個 IO 腳?新建一個 ING9188xx 的工程,打開 Cube,將型號選為 ING91880C,點擊 Antenna,再點擊菜單 Configure,彈出天線開關編輯窗口。點擊 Enable All,可以用做天線開關的 IO 腳一目了然:

圖片

使用場景 2. 硬件工程師設計LED指示燈

比如現(xiàn)在要用 ING91680A 設計一個產(chǎn)品,其中用到 LED 指示燈,打算使用 PWM 控制閃爍??梢允褂媚膫€ IO 腳?新建一個 ING9168xx 的工程,打開 Cube,將型號選為 ING91680A,點擊 PWM,再點擊菜單 Configure,彈出 PWM 編輯窗口。馬上就可以直觀檢查哪些管腳可用作PWM 輸出:

圖片

假設硬件工程師選定使用 IO 16 控制 LED 燈,通知軟件工程師。

使用場景 3.軟件工程師實現(xiàn) LED 燈的 PWM 控制

軟件工程師繼續(xù)使用 Cube 編輯 PWM。假設軟件工程師要使 LED 的初始狀態(tài)為 1 秒閃爍一次,占用比 50%。在 Easy 標簽下,分別輸入頻率 1Hz,占空比 50%,—— 輸入數(shù)據(jù)時回車生效。這時,從驗證窗口內(nèi)馬上可以看到存在兩處錯誤:PWM 的 PERA、HIGH 兩個數(shù)據(jù)都超出范圍了, 它們最多支持 20 個比特,即最大為 0xfffff。

圖片

由于 PWM 分頻比例有限,如果降低 PWM 的工作頻率,就能獲得更低頻的輸出。切換到時鐘樹頁面,我們發(fā)現(xiàn) PWM 有兩種時鐘可選:一為從 Slow Clk 分頻,一為使用 CLK 32k。讓我們直接使用 CLK 32k。

圖片

回到 PWM 編輯窗口 Channel 0 的 Easy 標簽,這時,驗證窗口提示一切正常:

圖片

編譯下載程序,連接必要的硬件,即可看到 LED 燈在按要求閃爍。

打開 setup_soc.cgen 文件,可看到最末尾幾行的內(nèi)容為:

// dump PINCTRL registers
APB_PINCTRL- >OUT_CTRL[4] = 0x00001522; // 0x00001547

這是 Cube 對 PINCTRL_SetPadMux(16, IO_SOURCE_PWM0_A) 做了“計算”后得出的結果, 顯然比在芯片里執(zhí)行 PINCTRL_SetPadMux(16, IO_SOURCE_PWM0_A) 效率更高。這對于 ING916XX 系列為重要:因為 PINCTRL 配置需要查一張復雜的表格,(https://github.com/ingchips/ING918XX_SDK_SOURCE/blob/07ffc140a28b86dfeda95cc9ea1f560e2b5adeae/src/FWlib/peripheral_pinctrl.c#L265)每次睡眠醒來都需要重新配置, 所以使用 Cube 既可以減小程序體積,對于降低功耗也有一定好處。

使用場景 4.軟件工程師借助 TIMER 實現(xiàn) LED 燈的 PWM 控制

由于某些原因,PWM 模塊另有它用,軟件工程師決定改用硬件定時器輸出 PWM 波形控制 LED 燈。查閱 PinCtrl 模塊的文檔可知, 萬幸 ,IO 16 可用于硬件定時器 PWM 波形的 A 路輸出。

選用 TIMER2 的 Channel 0 輸出 PWM 信號,從編輯窗口發(fā)現(xiàn)計數(shù)器長度僅用 16 比特,切換到時鐘樹窗口, 將 TIMER2 的時鐘切換為 32k。這樣,兩個計數(shù)數(shù)各配為 16000 就可以輸出 1 秒為周期,占空比 50% 的 PWM 波形了:

圖片

這個編輯窗口還出現(xiàn)了一個“陌生”的 “Park Value”,將鼠標移動到 “?” 上可以了解其功能。編譯下載程序,即可看到 LED 燈在按要求閃爍。

文章來源 桃芯科技

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

    關注

    242

    文章

    23320

    瀏覽量

    661863
  • 芯片
    +關注

    關注

    456

    文章

    51011

    瀏覽量

    425283
  • 藍牙
    +關注

    關注

    114

    文章

    5840

    瀏覽量

    170769
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5194

    瀏覽量

    214347
收藏 人收藏

    評論

    相關推薦

    門檻阻礙“寬帶中國” 潛力有效釋放

    信息消費雖然前景光明,但要想成功實施“寬帶中國”戰(zhàn)略,必須邁過三道門檻。
    發(fā)表于 07-15 11:22 ?1066次閱讀

    門檻踏入以太網(wǎng)的世界,行走物聯(lián)網(wǎng)江湖

    了解以太網(wǎng)協(xié)議,使用MCU的一個三線串口即可與通訊,大大降低了以太網(wǎng)的門檻,無需牛B的程序員也能玩轉以太網(wǎng),節(jié)省了企業(yè)研發(fā)投入。
    發(fā)表于 03-05 17:21 ?4051次閱讀

    每個人都可以有個收音機 0門檻搞定收音機電路

    ` 本帖最后由 eehome 于 2013-1-5 09:47 編輯 每個人都可以有個收音機0門檻搞定收音機電路 強大的收音機電路及其資料基于小51DIY樂在其中收音機樂趣無窮`
    發(fā)表于 08-18 09:49

    Android系統(tǒng)開發(fā)藍牙開發(fā)案例分析

    主題:Android系統(tǒng)開發(fā)藍牙設備訪問技術要點分析及經(jīng)典案例課程內(nèi)容:本專題圍繞Android中藍牙技術及設備訪問要點進行介紹,為您解決藍牙
    發(fā)表于 07-24 16:32

    干貨!Android藍牙驅動開發(fā)經(jīng)驗

    干貨!Android藍牙驅動開發(fā)經(jīng)驗目錄一 Bluetooth基本概念1二 Android Bluetooth架構12.1 Bluetooth架構圖12.2 Bluetooth代碼層次結構3三
    發(fā)表于 02-29 15:53

    在FireFly RK3288開發(fā)板上運行Flint OS是怎樣的體驗?

    Flint OS是一款更快速,更簡單,更高效的云驅動操作系統(tǒng),從主流x86平臺電腦設備到超輕量單板機物聯(lián)網(wǎng)設備均可完美適配,是一款可塑性極強的“門檻”操作系統(tǒng)。而FireFly RK3288開發(fā)
    發(fā)表于 03-08 17:55

    Android藍牙驅動開發(fā)總結

    Android藍牙驅動開發(fā)總結
    發(fā)表于 07-15 16:44

    STM32H7打破CoreMark2000分門檻,喜歡STM32的嵌友可以上手了

    STM32H7打破CoreMark 2000分門檻,喜歡STM32的嵌友可以上手了!意法半導體發(fā)布全新微控制器STM32H7。該新產(chǎn)品是業(yè)界性能最高的Arm Cortex-M通用MCU,集強勁的雙
    發(fā)表于 04-23 15:22

    ShineBlink是什么?有何作用

    ShineBlink是一款門檻、開發(fā)環(huán)境、低代碼的萬能物聯(lián)網(wǎng)智能硬件開發(fā)板機智云為開發(fā)者提供
    發(fā)表于 02-22 06:10

    使用STM32Cube輕松開發(fā)STM32

    STM32Cube讓STM32開發(fā)更輕松
    的頭像 發(fā)表于 07-03 04:30 ?5704次閱讀

    機智云邊緣操作管理系統(tǒng)及邊緣服務器滿足企業(yè)全球化需求

    機智云自助開發(fā)平臺,作為一個門檻、超低代碼的iot開發(fā)平臺,通過傻瓜化的自助工具、在線可視化開發(fā)環(huán)境、圖形化
    的頭像 發(fā)表于 09-30 16:06 ?2849次閱讀

    采用百度飛槳EasyDL完成指定目標識別

    EasyDL從2017年11月中旬起,在國內(nèi)率先推出針對AI算法基礎或者追求高效率開發(fā)的企業(yè)用戶的門檻AI開發(fā)平臺,提供從數(shù)據(jù)采集、標注
    的頭像 發(fā)表于 08-14 10:30 ?2184次閱讀

    4G氣象站的設計與實現(xiàn)

    ShineBlink 是一款門檻、開發(fā)環(huán)境、低代碼的萬能物聯(lián)網(wǎng)智能硬件開發(fā)
    的頭像 發(fā)表于 08-27 11:17 ?989次閱讀

    開發(fā)者案例:智能加濕器

    ShineBlink是一款門檻、開發(fā)環(huán)境、低代碼的萬能物聯(lián)網(wǎng)智能硬件開發(fā)板機智云為開發(fā)者提供
    的頭像 發(fā)表于 08-29 16:47 ?1045次閱讀
    <b class='flag-5'>開發(fā)</b>者案例:智能加濕器

    低代碼快速開發(fā)智能產(chǎn)品新系統(tǒng)

    聯(lián)網(wǎng)系統(tǒng)。作為一個門檻、超低代碼的自助開發(fā)平臺,通過傻瓜化的自助工具、在線可視化開發(fā)環(huán)境、圖形化開發(fā)界面、完善的SDK與API服務能力,最
    的頭像 發(fā)表于 09-09 14:32 ?555次閱讀
    低代碼快速<b class='flag-5'>開發(fā)</b>智能產(chǎn)品新系統(tǒng)