女人被男人强扒内裤内衣,一区中文字幕在线观看,天天干夜夜做,亚洲成人av网址,亚洲性一区,国产精品亚洲综合,亚洲情一区,日韩一区二区在线免费

您當前的位置:檢測資訊 > 科研開發

多年低功耗硬件設計的慘痛心得

嘉峪檢測網        2023-08-30 20:38

經過多年的低功耗硬件設計(公司硬件設計和軟件設計是分開的,我一直是做硬件,在面對低功耗生產事故中做硬件的往往很苦逼),我發現其中容易出的一個問題就是單片機進睡眠模式前IO沒配好,產品上主要出的問題是這些出問題的IO比較隱蔽,當時經過多次測試也沒測試出來,后來在生產或現場才發現的概率性功耗偏大的問題。
站在硬件的角度,最近才意識到原來軟件上一直容易犯的一個毛病是進睡眠前沒有把所有IO重新配置一遍,這樣容易導致IO低功耗的BUG出現。
這個心得總結起來是:要求在進睡眠模式前,把所用的單片機的所有的IO從代碼上1個IO接1個IO的配置一遍。不要偷懶,不要多個IO一起配置。
 
分析如下:
 
  外設時鐘
外設的時鐘沒關,單片機內部模塊沒關等,部分單片機進睡眠后自動會關閉,部分不會自動關閉的,沒關的話當場測試功耗就偏高,會馬上發現的。所以這些在實際生產中都沒出過問題。
  IO配置
1個IO接1個IO配置,不要多個IO用類似BIT1|BIT2……,|=0xxx這類一起配置。因為代碼上越是直觀,出現筆誤的概率越低。而且我們核對IO的時候都是一個IO一個IO的去核對配置對不對。所以,代碼上依次寫一下其實花了不了多少時間和代碼空間的。花個5到30分鐘撐死,但后續節省的時間和金錢就不好說了。
人的總是有惰性的,我自己寫代碼的時候之前進低功耗前也只是配置了一部分,現在慢慢開始習慣全部配置,很多配置可以復制之前的IO初始化(這個已經養成了1個IO,1個IO的配置,改起來其實很舒服的)。
 
案例分析
 
實際出現的最麻煩,最隱蔽的情況往往跟IO的配置有關,越簡單的往往越容易出問題。
 
1、比如大多數情況下程序從A子程序進入睡眠后IO配置沒問題,經過大量測試也沒發現問題。但是當某次執行了B后再進睡眠,B中對IO進行了操作,再進睡眠沒有把IO改回來,這時問題就可能出現了。而要是執行C,D……等程序再睡眠都不會出IO的隱患。
 
案例:產品在客戶那里發現有50%左右放了一段時間后電池耗光。研發百思不得其姐,多次查看代碼沒發現問題,之前也沒出現死機的問題(死機后會導致不能進低功耗,功耗超高)。派人去現場測試,進過大量測試后發現一個IO部分產品輸出高,導致電流多了1mA左右。原因是客戶上電做了秒脈沖輸出,下電后產品就用電池供電了。客戶下電前沒有配置關閉秒脈沖輸出,程序下電后也沒有把IO配置回來,導致有50%的概率IO輸出高電平。
 
2、一個產品已經生產了幾萬臺,一直沒發現問題。后來換了一家PCB廠家后,生產發現功耗個別產品偏高個10uA左右,研發拿回來分析,發現換了芯片就好了。但是,生產出現百分之幾的功耗不好的情況,芯片不可能出現這么大概率的損壞。430芯片,走正規供應商的。再一個IO一個IO的查找,通過手摸IO最終發現一個連光耦輸入端的IO配置的是輸入模式。
 
換了芯片好了是因為焊接過,板子變臟,電阻變小,IO有一個比較固定的偏向與GND的電壓,因而沒問題。之前沒問題可能是板子的阻值比現在的這家小了點,或當時生產的時候濕度大點,或光耦的反向漏電流大些,也是各種可能了。軟件發現這個IO本來是配置沒問題的,中間不知道哪里配置過或配置別的IO時不小心連這個IO也配置了。
 
總之,當時沒搜到這個IO的配置哪里改動了,只是在進低功耗前重新配置了下這個IO。
 
3、產品上使用的一個外購低功耗RF模塊的IO問題。使用CC1101和430F2132。都算低功耗的芯片吧。前后找了2家開發模塊,第一家2132一個IO沒配置好,生產階段發現部分產品功耗偏高。后來是因為領導的原因換了家做無線的廠家來做這個,還是CC1101+2132方案。
 
照理來說,之前犯過錯誤應該吸取經驗教訓了吧。并且軟件人員也是老手了。結果生產是沒問題,發貨到客戶那里還是發現了個別產品出問題,最后還是發現一個IO沒配置好狀態。
 
4、以上心得很簡單,但是付出多次時間+金錢得出的慘痛心得。而且這些都是軟件的問題,但功耗問題往往第一個找個是硬件:你設計的產品功耗偏高,電池沒電,你查查看,哪里出問題了。
 
做硬件的又開不到代碼,軟件人員往往開始還不承認IO配置上有問題,尤其是之前找外面廠家開發的模塊,他們的意思是,我做軟件xx年了。開發了這么多產品,這么簡單的一個產品怎么會出問題,是你們自己的產品沒做好才出的問題。苦逼的硬件工程師沒辦法,只能自己想各種辦法找到出問題的那個IO。軟件人員經過改代碼對比測試才完成,但是軟件最后還是不會說自己的代碼有問題。
 
5、關于IO的問題。430單片機IO設置是最弱的,大部分沒有上下拉電阻,默認是輸入狀態,沒配置IO就容易出功耗問題,ST的相對好的多,51的IO默認的51狀態有上拉電阻,沒用到的腳不去配置也不會出問題。空的IO我之前喜歡配置成輸出0狀態,最近在用STM8S看了下代碼發現喜歡配置成上拉輸入狀態,STM8S沒下拉電阻,STM32有,配置成下拉輸入狀態更好些,不小心碰到不會對外輸出電流。
 
題外話:關于單片機的低功耗模式之前沒深入了解STM32,最近才發現進最低功耗的STANDBAY模式RAM中數據對丟失,這點不如8位機,之前用STC的51和STM8系列從不擔心ram數據丟失的問題。看STM32L系列進最低功耗也有這個問題,只是可以掉電保的RAM區域分的更多、更大。
 

 
分享到:

來源:芯片之家

主站蜘蛛池模板: 欧美一区二区三区久久精品视| 91日韩一区二区三区| 欧美日韩一区在线视频| ass美女的沟沟pics| 国产在线不卡一| 日韩精品一区二区免费| 国产精品亚洲第一区| 国产精品久久久久久一区二区三区| 久久精品国产色蜜蜜麻豆| 在线国产91| 四虎精品寂寞少妇在线观看| 一区精品二区国产| 日韩一级片免费观看| 97国产婷婷综合在线视频,| 欧美日韩卡一卡二| 国产aⅴ一区二区| 中文在线一区| 狠狠色综合欧美激情| 丰满少妇高潮惨叫久久久一| 91精品色| 欧美系列一区二区| 亚洲欧美另类国产| 九九国产精品视频| 91国偷自产一区二区介绍| 久久99国产精品久久99果冻传媒新版本| 991本久久精品久久久久| 欧美精品免费一区二区| 久久久久久亚洲精品| 日本一码二码三码视频| 国产精欧美一区二区三区久久| 午夜av男人的天堂| 欧美日韩国产一区二区三区在线观看| 少妇久久免费视频| 国产精品久久久久免费a∨大胸| 欧美日韩国产三区| 91精品美女| 国产精品网站一区| 国产日本一区二区三区| 中文乱码字幕永久永久电影| 玖玖精品国产| 99国产精品99久久久久| 欧美日本91精品久久久久| 97精品国产97久久久久久免费| 久久精品亚洲精品| 日韩午夜三级| 99精品欧美一区二区三区美图| 日韩区欧美久久久无人区| 日本大码bbw肉感高潮| 国产欧美精品va在线观看| 99精品国产一区二区三区麻豆| 中文字幕天天躁日日躁狠狠躁免费| 99日韩精品视频| 丰满少妇高潮惨叫久久久| 日韩精品中文字幕在线| 91午夜精品一区二区三区| 欧美精品国产一区| 四虎精品寂寞少妇在线观看| 欧美日韩国产123| 色综合久久久久久久粉嫩| 欧美日韩一区二区高清| xxxxhd欧美| 欧美激情精品一区| 欧美日韩卡一卡二| 国产精品尤物麻豆一区二区三区| 国产精彩视频一区二区| 91国偷自产一区二区介绍| 狠狠插狠狠插| 国产日韩欧美另类| 欧美二区在线视频| 亚洲制服丝袜在线| 狠狠躁夜夜av| 99国产精品一区二区| 日韩午夜毛片| 99日韩精品视频| 久久精品国产久精国产| 免费观看xxxx9999片| 在线观看v国产乱人精品一区二区 国产日韩欧美精品一区二区 | 日韩一级视频在线| 国产精品96久久久久久久| 国产一区二区中文字幕| www.久久精品视频| 精品国产一区二区三区免费 |