問(wèn):最近在使用STM32F103RB時(shí),出現(xiàn)了斷電后再上電時(shí)備份數(shù)據(jù)區(qū)數(shù)據(jù)丟失的現(xiàn)象,不知道是什么原因,最初在設(shè)計(jì)的時(shí)候芯片核的電源(數(shù)字部分電源)和ADC的電源是相連的,備份數(shù)據(jù)區(qū)的數(shù)據(jù)沒(méi)有丟失,現(xiàn)在將ADC的電源單獨(dú)采用一個(gè)電壓基準(zhǔn)芯片供電后,斷電再上電發(fā)現(xiàn)備份數(shù)據(jù)區(qū)的數(shù)據(jù)丟失了,全部為0包括時(shí)間。如果我將現(xiàn)在的電路板的ADC電源鏈接到數(shù)字電源上,數(shù)據(jù)就不丟失了。為提高ADC精度,又不丟失備份數(shù)據(jù)區(qū)數(shù)據(jù),哪位仁兄有好的建議,感謝!! 答:在斷電時(shí),請(qǐng)保證同時(shí)切斷VDD和VDDA 請(qǐng)用示波器看看,懷疑斷電時(shí)你的VDDA下降的太慢,而VDD很快消失。在斷電時(shí),應(yīng)該保證同時(shí)切斷VDD和VDDA。 問(wèn):RTC備份數(shù)據(jù)區(qū)與ADC電源關(guān)系???不管是VDDA下降慢,還是VDD下降慢,我認(rèn)為這個(gè)芯片的工作與否不應(yīng)該受VddA的影響,如果說(shuō)備份電池?cái)?shù)據(jù)受VDDA的影響的話(huà),應(yīng)該在手冊(cè)中有說(shuō)明,我還認(rèn)為當(dāng)不使用ADC時(shí)我們可以不給ADC供電,為什么說(shuō)呢,當(dāng)模擬、數(shù)字電路分離時(shí),模擬電源可能故障失電,數(shù)字部分存在電源,當(dāng)然正常工作的CPU可以通過(guò)程序檢查到ADC部分出錯(cuò),現(xiàn)在根據(jù)實(shí)驗(yàn)發(fā)現(xiàn),ADC失電后芯片根本不工作。如果說(shuō)一定要同時(shí)切斷電源的話(huà)就必須連接到同一電源上,要不肯定丟數(shù)據(jù)呀,香主你說(shuō)呢。 香主分析的對(duì),但是我就是不明白VDDA必須要先斷電,這是為什么呢。我總是認(rèn)為這個(gè)問(wèn)題不應(yīng)該出現(xiàn),至少我認(rèn)為VDDA自然為獨(dú)立電源引腳,為什么內(nèi)核工作受VDDA的影響呢? 答:RTC備份數(shù)據(jù)區(qū)與ADC電源關(guān)系,以及VDD與VDDA的關(guān)系最近正在翻譯大容量的STM32F103數(shù)據(jù)手冊(cè),正好供電部分的說(shuō)明與中等容量STM32F103說(shuō)明一樣,下面貼圖中的2.3.11節(jié)與STM32F103RB數(shù)據(jù)手冊(cè)中的2.3.9節(jié)內(nèi)容相同,你可以對(duì)照著看: ![]() 從關(guān)于VDDA的說(shuō)明中可以看到,VDDA不單是為ADC供電,它為所有的模擬部分供電,特別是復(fù)位模塊,這就回答了你的“不使用ADC時(shí)我們可以不給ADC供電”這個(gè)問(wèn)題。關(guān)于VBAT部分說(shuō)明了當(dāng)關(guān)閉VDD時(shí),通過(guò)內(nèi)部電源切換器,VBAT為RTC、外部32kHz振蕩器和后備寄存器供電。這里說(shuō)的內(nèi)部電源切換器就是下圖中靠近VBAT的“供電開(kāi)關(guān)”,下面這張圖就是上面貼圖中提到的圖12: ![]() 這張圖中沒(méi)有說(shuō)明這個(gè)供電開(kāi)關(guān)是由哪個(gè)電源控制,但從圖上看可以認(rèn)為是VDD控制。 關(guān)于你的問(wèn)題(包括在前面提的問(wèn)題),我是這樣分析的:VDD先掉電,在VDDA還沒(méi)有完全掉電時(shí),因?yàn)閮?nèi)部漏電流,上述供電開(kāi)關(guān)并沒(méi)有切換到 VBAT,而此時(shí)VDD已經(jīng)消失,造成RTC內(nèi)容丟失。正因?yàn)槿绱耍瑪?shù)據(jù)手冊(cè)上才會(huì)要求VDD應(yīng)與VDDA同源,同時(shí)他們之間的電壓差不能超過(guò) 300mV。 如果這個(gè)供電開(kāi)關(guān)是由VDDA控制,那么你看到的現(xiàn)象就是顯而易見(jiàn)了。不過(guò)這一點(diǎn)我需要確認(rèn)。 再答:"AN2586-STM32F10xxx硬件開(kāi)發(fā)入門(mén)"中說(shuō)明:供電開(kāi)關(guān)由PDR控制在應(yīng)用筆記《AN2586-STM32F10xxx硬件開(kāi)發(fā)入門(mén)》中,我找到了上面所提到的供電開(kāi)關(guān)是由VDDA控制的清楚說(shuō)明。 這里是有關(guān)部分截圖,這個(gè)文檔的中文譯文在ST MCU中文網(wǎng)頁(yè)上: ![]() 文中紅線(xiàn)劃出的部分寫(xiě)明:VBAT的開(kāi)關(guān)由復(fù)位模塊內(nèi)的掉電復(fù)位(PDR)電路控制。再根據(jù)上面提到的部分,復(fù)位模塊由VDDA供電。所以當(dāng)VDDA晚于VDD調(diào)電時(shí),VBAT的開(kāi)關(guān)還沒(méi)有切換到VBAT,VDD已經(jīng)消失了,RTC的內(nèi)容自然也就消失了。 關(guān)于前面提到的多電源問(wèn)題,手冊(cè)上已經(jīng)明確寫(xiě)明,VDD必須與VDDA同源,所以不應(yīng)理解為是多電源供電。 至于VBAT缺失和電池沒(méi)有電是2個(gè)問(wèn)題,VBAT缺失的情況時(shí),電路上有相應(yīng)處理,所以不會(huì)有問(wèn)題;而電池沒(méi)有電的情況下,并不表示VBAT信號(hào)懸空,此時(shí)VBAT是通過(guò)電池接地,也不會(huì)有問(wèn)題,只不過(guò)RTC的內(nèi)容不能繼續(xù)維持。電池沒(méi)有電時(shí)好像應(yīng)該是等效于一個(gè)電容加一個(gè)電阻,具體什么樣的參數(shù)我不太清楚,但我可以肯定不是一個(gè)無(wú)窮大的電阻。 問(wèn):現(xiàn)在看來(lái)對(duì)于STM32的設(shè)計(jì)那是相當(dāng)?shù)牟灰粯樱蠹乙院笤O(shè)計(jì)的時(shí)候不要想當(dāng)然,一定要仔細(xì)閱讀說(shuō)明文檔的每個(gè)細(xì)節(jié),要不,設(shè)計(jì)會(huì)走彎路,當(dāng)然也會(huì)帶來(lái)一個(gè)麻煩就是不同用途的地方很多要求不一樣,我從來(lái)都不會(huì)想象到PLL會(huì)掛在VDDA上,常理上PLL電路應(yīng)該屬于數(shù)字部分。可偏偏掛在了 VDDA上。 由于Vdd的電壓不穩(wěn)定,在大量的IO來(lái)回動(dòng)作的情況下,VDD的電壓極度不穩(wěn)定,當(dāng)然如果VddA也連接到VDD的話(huà),對(duì)于48腳和64腳封裝的芯片來(lái)講Vdda連接到VDD對(duì)于要求高精度的應(yīng)用來(lái)講,這個(gè)應(yīng)該是不充許的,我使用的就是103VB,如果將VDDA連接到VDD,此時(shí)的AD采樣誤差明顯低于VDDA與VDD分離的誤差,我將VDDA連接到一個(gè)3.3V的參考電壓芯片上了。一般的芯片VDDA和VDD都是可以分離供電的,至少我看見(jiàn)過(guò)的,ST的除外。 第三者答:PLL電路似乎不可能是純數(shù)字電路,至少VCO應(yīng)該用模擬電路。 發(fā)表于2009/7/21 |