在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

低功耗MCU怎么選?

sanyue7758 ? 來源:21ic論壇 ? 2023-03-25 10:25 ? 次閱讀

芯片國產化日益高漲的情況下,一些新的芯片廠家脫穎而出,比如以串口通訊發展起來的沁恒微電子的WCH、兆易創新的GD、雅特力的AT、中科藍訊的AB,以及國民技術等。

其中的國民技術則屬于后起之秀,其主打的產品有基于M0內核的N32G03X通用系列、基于M4內核的N32G45X通用系列,以及面向低功耗的N32L4XX系列。

這樣在選取低功耗MCU時,我們就多出了一種選擇,也加大了設計的靈活性。

此外,國民技術所主打的3個系列產品是支持以MDK來進行開發的,這樣對于那些出道早的程序者就天然地增添了一份親近感。你可別小看了這份親近感,常言道“不怕千招會,就怕一招熟”,用慣的東西好上手,它起到事半功倍的性能。

下面就有請我們的主角N32L43XRL-STB開發板上場,它的MCU為N32L436CBL7,其最高主頻可達108 MHz,是采用LQFP48管腳封裝。

該芯片的主要性能及參數

● 采用32位ARMCortex-M4內核+FPU,支持單周期硬件乘除法指令,支持DSP指令和MPU。

● 高達128KByte片內Flash,10萬次擦寫次數,10年數據保持。

● 高達32KByte片內SRAM,包括24Kbyte SRAM1和8Kbyte SRAM2。

● 高性能模擬接口,含1個12bit 5MspsADC,且多種精度可配置、2個軌到軌運算放大器、2個高速模擬比較器、多達24通道電容觸摸按鍵、1個采樣率為1Msps的12bit DAC

● 豐富的通信接口,有3個USART接口、2個UART接口、1個LPUART、2個速率高達27 MHz的SPI接口、2個速率高達1 MHz的I2C接口、1個USB2.0 Fullspeed Device接口及1個CAN 2.0A/B總線接口。

● 多樣的定時計數器,有2個16bit高級定時計數器、5個16bit通用定時計數器、2個16bit基礎定時計數器、1個16bit低功耗定時計數器、1x24bit SysTick、1x7bit窗口看門狗、1x12bit獨立看門狗。

所以,它在性能方面是完全可以勝任常規芯片要求的! 該芯片的功耗情況:

● 在Standby模式下:典型值為1.5uA,即所有備份寄存器保持,IO保持,可選 RTC Run,8KByte Retention SRAM保持,可快速喚醒。

● 在Stop2模式下:典型值為3uA,RTC Run,8KByte Retention SRAM2保持,CPU寄存器保持,IO保持,可快速喚醒。

● 在Run模式下:90uA/MHz@108MHz/3.3V,100uA/MHz@72MHz/3.3V。

接下來,就將N32L43XRL-STB開發板與N32G45XVL-STB開發板放到一起,做一下功耗的對比。當然,這是在都配有調試下載工具的情況下,會比單純的芯片對比要大一些,但相對來講還是比較公平的。 經檢測,N32L43XRL-STB開發板的功耗為0.13135W,N32G45XVL-STB開發板的功耗為0.15392W,二者凈差值為0.02257W。

0d093790-cab3-11ed-bfe3-dac502259ad0.jpg

圖1 開發板的對比

0d1bb4ce-cab3-11ed-bfe3-dac502259ad0.jpg

圖2 N32L43XRL-STB的功耗

0d2b2f08-cab3-11ed-bfe3-dac502259ad0.jpg

圖3 N32G45XVL-STB的功耗

如何構建開發環境:

前面說過國民技術的MCU是支持MDK來開發的,那么對于N32L4x系列的開發板,是如何來構建其開發環境的呢?

首先要做的自然是要安裝MDK,其版本可以是V5.25。

隨后,為支持此類芯片的使用,還需要安裝Nationstech.N32L43x_DFP.0.1.0。

這樣再打開MDK,就可在芯片列表中見到N32L4x系列的身影,見圖4所示。

0d337514-cab3-11ed-bfe3-dac502259ad0.jpg

圖4 添加芯片支持

至此,開發環境就基本構建好了。

此外,為了便于了解和學習程序的設計方法,還應下載一個函數庫與例程,其壓縮包為Nationstech.N32L43x_Library.1.1.0.7Z。

以例程LedBlink為例,經編譯其結果如圖5所示。

0d541d82-cab3-11ed-bfe3-dac502259ad0.jpg

圖5 完成編譯

為進行下載測試,需按圖6所示來設置調試工具的類型,并按圖7所示來選取燒錄算法

0d667d92-cab3-11ed-bfe3-dac502259ad0.jpg

圖6 設置調試工具

0d721710-cab3-11ed-bfe3-dac502259ad0.jpg

圖7 設置燒錄算法

在開發板上載有3個彩色LED,其電路原理圖見圖8所示,使用例程就可見到圖9所示的流水燈效果。

仿照該例程,可獲得GPIO口的使用方法,并實現開發板的功能擴展。

0d7fe548-cab3-11ed-bfe3-dac502259ad0.jpg

圖8 原理圖

0d8fc30a-cab3-11ed-bfe3-dac502259ad0.jpg

圖9 測試效果

驅動相應器件的功耗對比

1)OLED屏顯示及功耗

OLED屏是一種自發光的顯示器件,但又較之數碼管要更節省電能。此外,對I2C接口的OLED屏來講,它的引腳少又能節省對GPIO口資源的占用,且所顯示的信息及形式更豐富,故極適合與N32L43X系列這樣的芯片相配合來設計低功耗產品。

那么,在N32L43X系列芯片的開發環境下,要實現I2C接口的OLED屏驅動是否容易呢?

其實,要實現起來并不復雜,所需要的只是2個GPIO口及相應等級的延時函數支持,從而保證以GPIO口模擬的方式來完成I2C通訊。

在OLED屏與開發板按一下關系來連接的情況下:

SCL----PA1

SDA----PA2

對引腳功能的配置函數為:

void OLEDInit(void) { GPIO_InitType GPIO_InitStructure; RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE); GPIO_InitStruct(&GPIO_InitStructure); GPIO_InitStructure.Pin = GPIO_PIN_1|GPIO_PIN_2; GPIO_InitStructure.GPIO_Current = GPIO_DC_4mA; GPIO_InitStructure.GPIO_Pull = GPIO_No_Pull; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure); }

而輸出高低電平的引腳定義為:

#define OLED_SCLK_Clr() GPIOC-》PBA = GPIO_PIN_1 #define OLED_SCLK_Set() GPIOA-》PBSC = GPIO_PIN_1 #define OLED_SDIN_Clr() GPIOA-》PBC = GPIO_PIN_2 #define OLED_SDIN_Set() GPIOA-》PBSC = GPIO_PIN_2

延時函數的配備:

由于在MDK的開發板平臺下,并未提供毫秒級和微秒級延時的函數,因此需要使用系統的滴答時鐘來自行設計。

微秒級延時函數:

void Delayus(uint32_t count) { SysTick_Delay_Us(count); }

毫秒級延時函數:

void Delayms(uint32_t count) { count=count*1000; SysTick_Delay_Us(count); }

使用微秒級延時函數的I2C啟動函數為:

void IIC_Start() { OLED_SCLK_Set(); Delayus(2); OLED_SDIN_Set(); Delayus(2); OLED_SDIN_Clr(); Delayus(2); OLED_SCLK_Clr(); Delayus(2); } 有了以上的基礎,就不難將OLED屏的驅動功能移植給N32L43X系列芯片。 實現OLED屏顯示功能測試的主程序為:int main(void) { LedInit(PORT_GROUP2, LED3_PIN); OLEDInit(); OLED_Init(); OLED_Clear(); OLED_ShowString(20,0,“N32L43x ”,16); OLED_ShowString(20,2,“OLED TEST”,16); OLED_ShowString(20,4,“jinglixixi”,16); OLED_ShowString(20,6,“2022.3.2”,16); while (1) { LedOn(PORT_GROUP2, LED3_PIN); Delayms(500); LedOff(PORT_GROUP2, LED3_PIN); Delayms(500); } } 在OLED屏顯示的情況下,其整體功耗如圖10所示。

0d94ffbe-cab3-11ed-bfe3-dac502259ad0.jpg

圖10 功耗測試

2)傳感器檢測及功耗 以BMP085溫度大氣壓傳感器為例,其器件的連接關系為:

OLED_CLK_PIN---PA1

OLED_DIN_PIN---PA2

BMP_CLK_PIN---PB0

BMP_DIN_PIN---PB1

讀取傳感器數據的語句定義為:

#define IIC_SDA_IN GPIO_ReadInputDataBit(GPIOB, GPIO_PIN_1)

實現數據引腳輸入輸出功能定義的函數為:

void IIC_INPUT_MODE_SET() { GPIO_InitType GPIO_InitStructure; RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE); GPIO_InitStruct(&GPIO_InitStructure); GPIO_InitStructure.Pin = GPIO_PIN_1; GPIO_InitStructure.GPIO_Current = GPIO_DC_4mA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Input; GPIO_InitStructure.GPIO_Pull = GPIO_Pull_Up; //GPIO_No_Pull GPIO_Pull_Down GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure); } void IIC_OUTPUT_MODE_SET() { GPIO_InitType GPIO_InitStructure; RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE); GPIO_InitStruct(&GPIO_InitStructure); GPIO_InitStructure.Pin = GPIO_PIN_1; GPIO_InitStructure.GPIO_Current = GPIO_DC_4mA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pull = GPIO_No_Pull; GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure); }

模擬I2C發送字節數據的函數為:

void BMP085_Send_Byte(char txd) { char t; IIC_OUTPUT_MODE_SET(); SCL_Clr(); for(t=0;t《8;t++) { if((txd&0x80)》》7) SDA_Set(); else SDA_Clr(); txd《《=1; SysTick_Delay_Us(2); SCL_Set(); SysTick_Delay_Us(2); SCL_Clr(); SysTick_Delay_Us(2); } }

讀取溫度大氣壓的函數為:

void bmp085Convert() { unsigned int ut; unsigned long up; long x1, x2, b5, b6, x3, b3, p; unsigned long b4, b7; ut = bmp085ReadTemp(); up = bmp085ReadPressure(); x1 = (((long)ut - (long)ac6)*(long)ac5) 》》 15; x2 = ((long) mc 《《 11) / (x1 + md); b5 = x1 + x2; temperature = ((b5 + 8) 》》 4); b6 = b5 - 4000; x1 = (b2 * (b6 * b6)》》12)》》11; x2 = (ac2 * b6)》》11; x3 = x1 + x2; b3 = (((((long)ac1)*4 + x3)《《OSS) + 2)》》2; x1 = (ac3 * b6)》》13; x2 = (b1 * ((b6 * b6)》》12))》》16; x3 = ((x1 + x2) + 2)》》2; b4 = (ac4 * (unsigned long)(x3 + 32768))》》15; b7 = ((unsigned long)(up - b3) * (50000》》OSS)); if (b7 《 0x80000000) p = (b7《《1)/b4; else p = (b7/b4)《《1; x1 = (p》》8) * (p》》8); x1 = (x1 * 3038)》》16; x2 = (-7357 * p)》》16; pressure = p+((x1 + x2 + 3791)》》4); }

檢測溫度大氣壓的主程序為:

int main(void) { LedInit(PORT_GROUP2, LED3_PIN); BMP085_Init(); Init_BMP085(); OLEDInit(); OLED_Init(); OLED_Clear(); OLED_ShowString(20,0,“N32L43x ”,16); OLED_ShowString(20,2,“OLED & BMP085”,16); OLED_ShowString(20,4,“t= C”,16); OLED_ShowString(20,6,“p= KPa”,16); while (1) { bmp085Convert(); OLED_ShowNum(44,4,temperature/10,3,16); OLED_ShowNum(44,6,pressure/100,5,16); LedOn(PORT_GROUP2, LED3_PIN); Delayms(500); LedOff(PORT_GROUP2, LED3_PIN); Delayms(500); } } 在添加傳感器的情況下,其顯示效果及整體功耗分別如圖11和圖12所示。

0da7d166-cab3-11ed-bfe3-dac502259ad0.jpg

圖11 顯示效果

0dba5ea8-cab3-11ed-bfe3-dac502259ad0.jpg

圖12 整體功耗

至此,就在N32L43XRL-STB開發板上完成了溫度大氣壓檢測裝置的設計,并針對其低功耗的特點對相應環境的功耗進行了跟蹤測量。盡管測試的工具不很專業,但它還是能夠帶來一個很直觀的感性認識。所以在低功耗的設計中,使用N32L43X芯片是可行的也是十分方便的,其功耗也是能夠達到認可的!

審核編輯 :李倩

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

    關注

    146

    文章

    17184

    瀏覽量

    351689
  • 計數器
    +關注

    關注

    32

    文章

    2256

    瀏覽量

    94712
  • 開發板
    +關注

    關注

    25

    文章

    5082

    瀏覽量

    97708

原文標題:低功耗MCU怎么選?看網友親測國民技術N32L4xx系列!

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    32位低功耗MCU設計

    32位低功耗MCU設計前言傳統的低功耗 MCU 設計都是以8位MCU為主,因為8 位內核閾門相對較少,運行或泄露電流低,售價也相對低廉。但是
    發表于 10-08 15:38

    轉:32位低功耗MCU設計

    32位低功耗MCU設計前言傳統的低功耗 MCU 設計都是以8位MCU為主,因為8 位內核閾門相對較少,運行或泄露電流低,售價也相對低廉。但是
    發表于 01-25 16:15

    低功耗MCU如何降低功耗

    低功耗MCU的一項非常重要的指標,比如某些可穿戴的設備,其攜帶的電量有限,如果整個電路消耗的電量特別大就會經常出現電量不足的情況。 平時我們在做產品的時候,基本的功能實現很簡單,但只要涉及到關于
    發表于 11-12 13:57

    如何選擇超低功耗MCU

    在物聯網的推動下,業界對各種電池供電設備產生了巨大需求。這反過來又使業界對微控制器和其他系統級器件的能源效率要求不斷提高。因此超低功耗MCU功耗相關的很多指標都不斷得刷新記錄。在選擇合適的超
    發表于 12-28 07:12

    MCU如何降低功耗

     低功耗MCU的一項非常重要的指標,比如某些可穿戴的設備,其攜帶的電量有限,如果整個電路消耗的電量特別大就會經常出現電量不足的情況。  平時我們在做產品的時候,基本的功能實現很簡單,但只要涉及到
    發表于 12-30 06:55

    MCU怎么實現低功耗

    MCU怎么實現低功耗
    發表于 03-10 07:47

    低功耗MCU

    低功耗MCU的一項非常重要的指標,比如某些可穿戴的設備,其攜帶的電量有限,如果整個電路消耗的電量特別大就會經常出現電量不足的情況。平時我們在做產品的時候,基本的功能實現很簡單,但只要涉及到關于
    發表于 10-29 06:17

    如何保證MCU低功耗

    保證MCU低功耗 這五點很重要低功耗MCU的一項非常重要的指標,比如某些可穿戴的設備,其攜帶的電量有限,如果整個電路消耗的電量特別大的話,就會經常出現電量不足的情況,影響用戶體驗。本
    發表于 11-04 06:38

    低功耗MCU選型要點

    摘要有時為了一款低功耗產品而絞盡腦汁,產品的低功耗實現往往在于主控MCU的選擇。低功耗MCU選型要點 powerDown時有極低的電流
    發表于 11-04 06:32

    Apollo2_超低功耗MCU

    低功耗MCU
    發表于 08-18 11:11 ?107次下載

    TI MCU設計研討會:低功耗MCU的性能介紹

    TI 2014 MCU設計研討會:低功耗MCU
    的頭像 發表于 08-22 01:40 ?2388次閱讀

    關于MCU低功耗問題

    隨著便攜式移動設備,各種穿戴設備的興起,我們不得不關注設備的功耗問題,因為這些設備都具有一個特征:使用電池系統供電,一塊線路板上跟功耗相關的單元電路可能有很多,今天我們來談談關于MCU低功耗
    的頭像 發表于 08-13 15:22 ?3792次閱讀

    低功耗MCU設計理念

    ?轉自:http://www.eeworld.com.cn/mcu/article_2018031938316_2.htmlMCU功耗來自何處? ? 在開始討論低功耗MCU設計前,必須
    發表于 10-27 15:36 ?19次下載
    <b class='flag-5'>低功耗</b><b class='flag-5'>MCU</b>設計理念

    MCU低功耗設計(三)產品

    引言:能耗對電池供電的產品來說是一個重大問題,一旦電能耗盡設備將“罷工”。在《MCU低功耗設計(一)理論》中,我們介紹了節能的原理;在《MCU低功耗設計(二)實踐》中,實測了STM8L
    發表于 10-28 14:06 ?16次下載
    <b class='flag-5'>MCU</b><b class='flag-5'>低功耗</b>設計(三)產品

    低功耗MCU選型

    摘要有時為了一款低功耗產品而絞盡腦汁,產品的低功耗實現往往在于主控MCU的選擇。低功耗MCU選型要點 powerDown時有極低的電流
    發表于 11-01 16:25 ?18次下載
    <b class='flag-5'>低功耗</b><b class='flag-5'>MCU</b>選型
    主站蜘蛛池模板: 色www亚洲国产张柏芝| 国产精品福利在线观看免费不卡 | 国产又黄又免费aaaa视频| 日韩毛片高清在线看| 亚洲第一色在线| 精品久久久久久午夜| 天天涩综合| 最新福利网站| 丁香综合| 国产拍拍视频| 韩日中文字幕| 久久久久久久国产视频| 免费色视频| 欧美拍拍| 啪啪色视频| 全国男人天堂网| 精品一区二区三区免费爱| 可以免费观看的一级毛片| 欧美福利视频网| 国产一级特黄的片子| 国产毛片久久久久久国产毛片| www.色播| 综综综综合网| 久久精品影视| caobi在线观看| 1024久久| 很黄很黄的网站免费的| 欧美三级黄色| 亚洲男人天堂2021| 日本不卡视频在线观看| 亚洲不卡网| 四虎影视国产精品| 日本特黄特黄刺激大片免费| 欧美feer| 好男人www社区影视在线| 午夜tv影院| 久久天天躁狠狠躁夜夜爽| 孩交啪啪网址| 奇米第四狠狠777高清秒播| 久久亚洲国产午夜精品理论片| 国产黄色在线观看|