国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

板子功耗高的原因有哪些

jf_14701710 ? 來源:jf_14701710 ? 作者:jf_14701710 ? 2025-05-12 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

低功耗藍牙應用對功耗要求越低越好,功耗越低電池續航時間就越長,用戶體驗就越好。當你發現你板子功耗偏高時,建議按照如下步驟進行自檢:

確認理論功耗值。Bluetooth LE功耗跟廣播間隔或者連接間隔是成正比關系的,所以20ms連接間隔下的功耗幾乎是1s狀態下的50倍!,單純地問“1mA功耗高不高?”是沒有意義的,必須結合特定的應用場景才有意義。不管是廣播還是連接,特定的使用場景會有一個理論功耗值,大家可以訪問網址: https://devzone.nordicsemi.com/power/,以獲得你的使用場景下理論功耗多少,比如連接模式下,每1秒鐘發20個字節的數據包,這種模式下理論功耗為:7.5uA

wKgZPGghTLuAYoUxAABJOiwN7HU27.jpeg

確定板子漏電流。如果板子包含的元器件比較多,那么也有可能是其他非nRF5元器件導致的高功耗,比如傳感器,codec,或者電路設計本身的問題等。為了確定高功耗是來自nRF5器件還是其他器件,根據自己的情況,有如下三個方法供你參考:一如果你的固件可以直接在Nordic官方DK上運行,那么你可以把你的固件直接下載到DK上,然后通過DK測量nRF5芯片的功耗,如果這個功耗正常,那么大電流應該是由其他非nRF5元器件引起的;如果這個功耗偏高,那么大電流的確是由nRF5芯片固件引起的,此時請參考后續操作步驟說明。二如果你的固件不能在DK上直接運行,那么可以讓nRF5芯片進入深度睡眠模式(System OFF模式),此時nRF5芯片功耗只有零點幾微安,nRF5芯片所有IO口將處于floating狀態,此時再測量板子電流。如果板子電流恢復正常,那么大電流應該是由nRF5芯片固件引起的;如果板子電流還是不正常,那么大電流應該由其他非nRF5元器件引起的。關于如何進入深度睡眠模式,你可以參考工程:SDK安裝目錄examplesperipheralram_retentionpca10040blankarm5_no_packs,或者參考ble_app_hrs工程中函數:sleep_mode_enter。三如果你的板子太復雜,無法按照上面兩種方法來確定漏電流,那么只能將板子其他非必需元器件焊下來,只留下一個nRF5最小工作系統,然后再測量此時的板子電流是否正常。

確定板子已經退出J-Link模式。如果板子一直是電池供電,那么在某些情況下,即使程序下載完成而且運行正常,此時板子有可能還處在J-Link模式。J-Link模式下板子會有2mA左右的額外電流。要退出J-Link模式,有2種方式,一是給板子進行上電復位,二是通過nrfjprog發出—reset指令(nRF52系列)或者—pinreset指令(nRF51系列),兩種方式都能讓板子退出J-Link模式,從而進入應用模式。

如果最終確認大電流的確是由nRF5芯片引起的,那么幾乎可以肯定系統在進入idle模式(System ON模式)之前,沒有關掉不需要的模塊。模塊沒有關掉,它就一直在耗電,從而導致功耗過大。Idle模式下,如下模塊會耗費比較多的電流,若允許建議全部關掉。

Idle模式。先說明一下什么是idle模式,所謂Idle模式,Nordic芯片手冊也稱為System ON模式,就是CPU可以不工作而外設可以繼續工作的一種低功耗模式。idle模式下,當CPU和所有外設都不工作時,系統電流只有1.2uA左右。(注:除了idle模式,nRF5芯片還支持一種更低功耗的低功耗模式:sleep模式(Nordic芯片手冊稱為System OFF模式),sleep模式下,CPU和所有外設都強制關閉,所以功耗非常低:只有零點幾微安。由于sleep模式下,芯片無法發出廣播包或者與手機保持藍牙連接,所以sleep模式在Bluetooth LE應用中運用得并不是很多)。Idle模式可以被任何中斷喚醒(sleep模式只能被IO口喚醒),所以idle模式在實際應用中使用得比較多。在idle模式下,芯片仍然可以正常發出廣播或者與手機保持藍牙連接,所以大部分Bluetooth LE應用都是工作在idle模式下,這樣既保持了Bluetooth LE功能又可以實現低功耗。有softdevice時進入idle模式的函數是:

sd_app_evt_wait

無softdevice時進入idle模式的代碼是:

__WFE(); // Clear the internal event register. __SEV(); __WFE();

這里我們順便把進入sleep模式的函數也貼出來,供大家對比參考。有softdevice時進入sleep模式的函數是:

sd_power_system_off

無softdevice時進入sleep模式的代碼是:

// Enter System OFF and wait for wake up from GPIO detect signal. NRF_POWER->SYSTEMOFF = 0x1;

不管softdevice有沒有使能,idle模式下的電流都很低,只有1.2uA左右

UART/UARTE。由于UART需要實時檢測RX線上有沒有下降沿,所以一旦UART初始化成功,高頻時鐘將一直處于打開狀態,從而導致UART模塊消耗的電流比較大,雖然UART模塊本身只需要55uA的工作電流,但是為了配合UART工作其他外設(比如時鐘電路)需要消耗250uA左右電流,因此普通UART需要消耗300多微安電流。Nordic還有一個增強型UART:UARTE,它是帶DMA功能的,而DMA還需要消耗額外的1~2mA電流,這樣UARTE工作的時候需要消耗1mA多電流。因此在進入idle模式之前,強烈建議將UART關掉,以節省系統功耗。注:為了達到低功耗和實時性雙重目的,在設計UART通信的時候,我們經常會額外再加2個GPIO口用來通知對方UART要傳送數據了。關閉uart的API為:nrf_drv_uart_uninit或者app_uart_close。

CLI/UART。如果你使用了CLI/UART模塊,請使用cli模塊自帶的uninit函數去關閉本模塊。當cli模塊和RTOS結合一起使用的時候,經常發現cli模塊關閉不徹底,從而導致idle模式下功耗還是很高(比如450uA左右),此時有可能需要多次調用nrf_cli_uninit這個函數,從而確保cli/uart模塊真正被關閉了。

GPIOTE。GPIOTE中斷有兩種工作模式:高精度模式(hi_accuracy為true)和低精度模式(hi_accuracy為false)。hi_accuracy為true將使能IN event中斷;hi_accuracy為false將使能Port event中斷。IN event中斷功耗比Port event中斷高10~20uA(nRF51將高出幾百微安),因此如果應用邏輯允許的話,那么建議使用低精度模式,即使用如下初始化語句:

GPIOTE_CONFIG_IN_SENSE_TOGGLE(false) //低功耗低精度IO口中斷模式

DMA。Nordic大部分外設都自帶DMA功能,如果DMA可以關閉的話(有些設備DMA是不能關閉的),用完DMA之后,記得把DMA關掉,否則會有1~2mA左右的功耗。使用ADC的時候尤其要注意這點。

FPU。每當程序要執行浮點數運算的時候,Cortex M4F會自動把FPU打開,FPU是耗能大戶,其將消耗7mA以上的電流。此種情況下,進入idle模式之前必須手動關閉FPU,手動關閉FPU代碼如下所示:

/* Clear FPSCR register and clear pending FPU interrupts. This code is base on * nRF5x_release_notes.txt in documentation folder. It is necessary part of code when * application using power saving mode and after handling FPU errors in polling mode. */ __set_FPSCR(__get_FPSCR() & ~(FPU_EXCEPTION_MASK)); (void) __get_FPSCR(); NVIC_ClearPendingIRQ(FPU_IRQn);

Timer0/1/2/3/4。Timer的工作電流大概為5~50uA左右(nRF51功耗會更高),對低功耗應用來說,已經非常大了。如果你的定時精度要求不高,而且是毫秒的倍數,那么強烈建議你使用app_timer來實現定時功能,app_timer的功耗只有0.2uA左右。

SPI/TWI/ADC等。在進入idle模式之前,建議把SPI/TWI/ADC等模塊也uninit。大家可能會擔心反復init和uninit同一個模塊會不會有問題?這個不用擔心,目前還沒看到任何副作用。

ADC。最新的ADC驅動引入了一個宏:NRFX_SAADC_CONFIG_LP_MODE,如果你發現uninit ADC后,功耗還是很高,建議打開這個宏,再試一下,功耗有可能就降下來了。

帶DMA功能的UARTE。如果你的UART使用了DMA功能,測試時,發現大部分時候uninit UART后功耗都正常,偶爾會出現uninit后功耗降不下來的情況,請把這句話加在main函數的開始:*(volatile uint32_t*)(0x4007AC84) = 0x00000002;

還有一種電流異常情況:大部分芯片功耗是正常的,只有少部分芯片功耗是異常的。這種情況一般都跟IO口狀態有關,如果碰到這種情況,建議對芯片每個IO口進行重新初始化,或許問題就解決了。

若無特殊情況,避免使用輸入/NOPULL配置。輸入模式下,要不使用內部上拉或下拉,要不使用外部的。

如果不知道該如何配置一個IO口在idle模式的狀態,建議設為默認狀態,即Floating狀態。

已使用IO口。不管nRF51還是nRF52,尤其這些IO口被用作為其他外設比如IIC/SPI等,哪怕IO口之前已經是確定狀態,在進入idle模式之前,建議對其再次進行初始化,或許問題就解決了。

未使用IO口。這個問題好像只有nRF51802才有而且跟板子也有關系,在進入sleep模式或者idle模式之前,對未使用的IO口進行非floating初始化,即把它設為輸入上拉或者下拉,而不是默認的Floating狀態。(其他芯片好像沒有發現這個問題)


審核編輯 黃宇

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

    關注

    119

    文章

    6313

    瀏覽量

    178693
  • Nordic
    +關注

    關注

    9

    文章

    257

    瀏覽量

    49017
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析MAX40070/MAX40072:電壓、低功耗比較器的卓越之選

    深入解析MAX40070/MAX40072:電壓、低功耗比較器的卓越之選 在電子設計領域,對于那些對電路板空間和功耗嚴格限制,同時又要求高精度的應用場景,合適的比較器至關重要。今天
    的頭像 發表于 01-06 16:10 ?274次閱讀

    請問低功耗喚醒的常用方式哪些?

    功耗喚醒的常用方式哪些?
    發表于 01-05 06:02

    超低功耗耐壓線性穩壓器HC20LR2033

    HC20LR2033是芯圣電子推出的一款超低功耗、高精度低壓差線性穩壓器(LDO)。其具備2μA的超低靜態電流、高達40V的輸入耐壓以及±2%的輸出精度,專為對功耗與電壓嚴苛要求的電池供電及
    發表于 12-12 09:37 ?0次下載

    什么是低功耗設計,如何評估低功耗MCU性能?

    在嵌入式系統的設計中,低功耗設計是許多設計人員必須面對的問題,其原因在于嵌入式系統被廣泛應用于便攜式和移動性較強的產品中去,而這些產品不是一直都有充足的電源供應,往往是靠電池來供電,所以設計人員從
    發表于 12-12 07:43

    武漢芯源MCU的功耗如何優化?哪些低功耗模式和節能技術?

    武漢芯源MCU的功耗如何優化,哪些低功耗模式和節能技術?
    發表于 12-08 07:44

    在多任務系統中,如何平衡任務調度以防止因負載導致的再次進入低功耗模式的延遲?

    在多任務系統中,如何平衡任務調度以防止因負載導致的再次進入低功耗模式的延遲?
    發表于 12-04 06:37

    請教一下各位,在實際使用過程中,一塊板子出現幾百微妙電壓突然拉高至20幾V,這是什么原因

    請問下各位大佬,我用的TPS40051芯片,輸入電壓24V,輸出電壓3.3V,但是在實際使用過程中,一塊板子出現幾百微妙電壓突然拉高至20幾V,這是什么原因
    發表于 11-28 10:23

    CW32L010F8U6跑器件實例,功耗遠起實例標明的電流,是什么原因

    CW32L010F8U6, 按器件庫CW32L010_StandardPeripheralLib_V1.0.5ExamplesPWRPWR_ConsumptionTest實例,測試功耗78uA, 和實例標的電流差太多,另外說明一下,CW32L010F8U6所
    發表于 11-14 07:50

    L083最低功耗是多少,應該如何進行低功耗設計?哪些注意事項?

    L083最低功耗是多少,應該如何進行低功耗設計?哪些注意事項?
    發表于 11-12 07:29

    電壓暫降的原因哪些?

    電壓暫降的原因可歸納為 電網側故障、負荷側擾動、外部環境影響 三大類,其中電網側短路故障和負荷側沖擊性負荷啟動是最主要誘因,兩者合計占所有暫降事件的 80% 以上。不同原因的發生場景、影響機制及頻率
    的頭像 發表于 10-11 17:23 ?3134次閱讀
    電壓暫降的<b class='flag-5'>原因</b><b class='flag-5'>有</b>哪些?

    pm組件進入低功耗不能喚醒是怎么回事?

    我手里的芯片是stm32l412CBT6,使用ENV配置pm組件,調整idle堆棧大小,配置FINSH對應的串口是uart2,通過命令pm_release,可以是板子進入低功耗,穩壓源顯示0mA
    發表于 09-12 06:04

    從材料到回流焊:多層PCB翹曲的全流程原因分析

    一站式PCBA加工廠家今天為大家講講多層PCB板在 PCBA加工 中為何易產生翹曲?多層PCB板在PCBA加工中產生翹曲的原因。在高端電子產品制造領域,8層及以上的多層PCB板已
    的頭像 發表于 08-29 09:07 ?1238次閱讀
    從材料到回流焊:<b class='flag-5'>高</b>多層PCB翹曲的全流程<b class='flag-5'>原因</b>分析

    超低功耗語音芯片哪些?

    ? 超低功耗語音芯片哪些好處?當然是給產品帶來更好的續航表現和更好的節電表現,但是一位的追求低功耗的也是不對的,因為功耗和產品性能之間始終是要做取舍的。下面小編給大家帶來一些超低
    的頭像 發表于 07-02 17:27 ?816次閱讀
    超低<b class='flag-5'>功耗</b>語音芯片<b class='flag-5'>有</b>哪些?

    同樣的代碼在官方開發板上運行正常,在自己板子上就跑不起來,怎么辦?

    同樣的代碼在Nordic官方開發板上可以運行正常,但在自己板子上就跑不起來,如果你碰到了上述情況,建議按照如下步驟進行自檢: 首先確認用戶板元器件焊接良好,功能正常。如果你的板子LED的話,你可以
    的頭像 發表于 05-12 15:26 ?771次閱讀
    同樣的代碼在官方開發板上運行正常,在自己<b class='flag-5'>板子</b>上就跑不起來,怎么辦?

    關于低功耗藍牙連接功耗的評估

    如下這個好用的工具來進行: 例如,想評估在0dBm下,1s連接間隔下,發送少量數據的功耗是多少,哪怕現在你的板子還沒畫出來,通過這個工具,也可以很快的評估出來,結果是6uA左右,方便又快捷。如果又
    發表于 04-26 17:10