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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

PFS122 AD調(diào)試心得-小電流檢測方法分享

應(yīng)廣單片機 ? 來源:應(yīng)廣單片機 ? 2023-09-06 18:21 ? 次閱讀

最近調(diào)試122檢測小電流,有一種遇到鬼打墻的狀態(tài),就是看到寄存器的值在數(shù)據(jù)轉(zhuǎn)移時改動了。要不是親眼見,還真不會相信。在ADC中寫入了這么一小段:

AD_Start=1;//Skip first ADC, can delete by your select

while(!AD_DONE)

ad_temp$1 = adcrh;

ad_temp$0 = adcrl;

你說要是有問題,你在檢測內(nèi)部1.2V時也有問題,那也更容易查找問題吧??墒窃谵D(zhuǎn)換以內(nèi)部1.2V為一路輸入電壓時又沒有問題,而且這個程序,在以前的調(diào)試好象也問題。

7e44a608-4c9d-11ee-a25d-92fbcf53809c.png

可是一到轉(zhuǎn)換另外一路小電壓的時候,就出現(xiàn)問題了??窗烧{(diào)試窗口里的數(shù)據(jù)明明提示ADCRH的值為0x01,ADCRL的值為0x17. 在轉(zhuǎn)移到ad_temp 時,變成了ad_temp$1的值為00x03,ad_temp$0為0x17還是正常的。這個問題,以前也弄出來過,可能是后來把系統(tǒng)時鐘改低了,系統(tǒng)時鐘跑1mips,當(dāng)時又正常了,所以就沒有懷疑程序的問題了。

后來沒有明白問題出在哪里,多弄了一次判斷,不想等再讀一次,想想雖然操作可笑,但也是一種方法:

AD_Start=1;//Skip first ADC, can delete by your select

while(!AD_DONE)

ad_temp$1 = adcrh;

ad_temp$0 = adcrl;

if(ad_temp$1 != adcrh) ad_temp$1 = adcrh;

ad_temp = ad_temp >> 4;

ad16 += ad_temp ;

這樣一改,結(jié)果是對了,但是還是沒有明白問題出在哪里?

后來想到可能系統(tǒng)時鐘跑太快了,讀數(shù)有問題,所以就在while(!AD_DONE)后面加了兩個nop;這樣也正常了。后來終于想明白。數(shù)據(jù)轉(zhuǎn)移出錯,確實和系統(tǒng)時鐘跑得快有關(guān)系,所以在頻率較低時,上面的程序不會出問題。其實真正的問題就是出在“while(!AD_DONE)”這里,這里少了一個“;”,編譯器沒有提示錯誤,本來也是可以不提示錯誤的,編譯器不知道你等待的時候具體是需要干嘛。因為有“;”時,在等待AD轉(zhuǎn)換完的時間里,編譯器會自動增加一條nop指令,而沒有“;”時,在等待的時間里是一直在讀AD轉(zhuǎn)化的高位,等AD結(jié)束后,馬上是讀取AD轉(zhuǎn)換的低位。所以在等待的過程中,讀取的高位,是一個還沒有轉(zhuǎn)化完。而低位則是轉(zhuǎn)換結(jié)束后的數(shù)據(jù),所以讀起來不會錯了。加上NOP后,再等待的時間強制是執(zhí)行空指令了,結(jié)束完還會執(zhí)行一個空指令再取高位,所以都不會有問題了。

7eac8250-4c9d-11ee-a25d-92fbcf53809c.png







審核編輯:劉清

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120376
  • 輸入電壓
    +關(guān)注

    關(guān)注

    1

    文章

    504

    瀏覽量

    16561
  • AD轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    4

    文章

    250

    瀏覽量

    41420
  • 系統(tǒng)時鐘
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    9312
  • pfs
    pfs
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    5079

原文標(biāo)題:PFS122 AD調(diào)試心得分享---小電流檢測

文章出處:【微信號:應(yīng)廣單片機,微信公眾號:應(yīng)廣單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何燒錄PFS122-MSOP10的封裝

    應(yīng)廣有好幾個型號都封裝了MSOP10的封裝形式,比如PMS132B,PFS122-MSOP10等。MSOP10的官方封裝引腳,用燒錄座在燒錄器上無法直接燒錄,需要轉(zhuǎn)接。
    的頭像 發(fā)表于 12-07 11:43 ?3671次閱讀
    如何燒錄<b class='flag-5'>PFS122</b>-MSOP10的封裝

    ADC中NFS和PFS指的是什么?

    ADC 中NFS和PFS指的是什么
    發(fā)表于 12-14 06:52

    DDS 調(diào)試心得

    本站提供DDS 調(diào)試心得的資料,希望能夠幫你學(xué)習(xí)。
    發(fā)表于 05-25 15:53 ?43次下載
    DDS <b class='flag-5'>調(diào)試</b><b class='flag-5'>心得</b>

    圖解JLINK在ADS下調(diào)試心得

    文章是對LPC2148而寫的,但是對三星的44B0芯片同樣適用,只需要在選擇時將相應(yīng)的CPU選擇的S3C44B0就可以了。 JLINK在ADS下調(diào)試心得 前兩天一個客戶用jlink在ADS來調(diào)試LPC2148總報錯,這個錯誤我之
    發(fā)表于 04-09 09:41 ?4531次閱讀
    圖解JLINK在ADS下<b class='flag-5'>調(diào)試</b><b class='flag-5'>心得</b>

    CAT-PFS0002 壓電電纜

    電子發(fā)燒友網(wǎng)為你提供TE(ti)CAT-PFS0002相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有CAT-PFS0002的引腳圖、接線圖、封裝手冊、中文資料、英文資料,CAT-PFS0002真值表,CAT-P
    發(fā)表于 12-16 00:00
    CAT-<b class='flag-5'>PFS</b>0002 壓電電纜

    CAT-PFS0002 TE 壓電電纜

    電子發(fā)燒友網(wǎng)為你提供TE(ti)CAT-PFS0002 TE相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有CAT-PFS0002 TE的引腳圖、接線圖、封裝手冊、中文資料、英文資料,CAT-PFS0002 TE真值表,CAT-
    發(fā)表于 06-28 14:00

    開關(guān)電源電流檢測方法匯總

    開關(guān)電源電流檢測方法匯總
    發(fā)表于 10-15 09:41 ?174次下載

    PFS122檢測VDD及IO口的AD電壓方法

    PFS122是應(yīng)廣推出的一顆,可以多次燒錄的2K程序空間的帶數(shù)字12位AD轉(zhuǎn)換的單片機。目前以高性價比重新獲得用戶的喜愛,其價格優(yōu)勢明顯,比九齊的062E的價格,可能還更具有優(yōu)勢。
    的頭像 發(fā)表于 11-29 09:20 ?2988次閱讀

    開關(guān)模式電源電流檢測電流檢測方法

    開關(guān)模式電源常用的三種電流檢測方法是:使用檢測電阻,使用 MOSFET RDS(ON)并使用電感器的直流電阻 (DCR)。每種方法都有優(yōu)點和
    的頭像 發(fā)表于 01-05 11:52 ?4318次閱讀
    開關(guān)模式電源<b class='flag-5'>電流</b><b class='flag-5'>檢測</b>:<b class='flag-5'>電流</b><b class='flag-5'>檢測</b><b class='flag-5'>方法</b>

    PFS122檢測VDD及IO口的AD電壓方法

    PFS122是應(yīng)廣推出的一顆,可以多次燒錄的2K程序空間的帶數(shù)字12位AD轉(zhuǎn)換的單片機。目前以高性價比重新獲得用戶的喜愛,其價格優(yōu)勢明顯,比九齊的062E的價格,可能還更具有優(yōu)勢。
    發(fā)表于 05-19 10:09 ?3430次閱讀
    <b class='flag-5'>PFS122</b><b class='flag-5'>檢測</b>VDD及IO口的AD電壓<b class='flag-5'>方法</b>

    何謂電流傳感器 電流檢測方法

    何謂電流傳感器? 電流傳感器是指檢測電路中流動的電流值的傳感器。 電流檢測
    的頭像 發(fā)表于 06-30 10:14 ?1951次閱讀
    何謂<b class='flag-5'>電流</b>傳感器 <b class='flag-5'>電流</b>的<b class='flag-5'>檢測</b><b class='flag-5'>方法</b>

    電流探頭用于調(diào)試電機的測試方法和操作步驟

    導(dǎo)言 電機是現(xiàn)代社會中廣泛應(yīng)用的一種設(shè)備,用于驅(qū)動各種各樣的機械系統(tǒng)。為了確保電機的正常運行和性能優(yōu)化,調(diào)試和測試是非常關(guān)鍵的步驟。而其中,電流探頭是一種常用的工具,用于檢測和監(jiān)測電機運行時的
    的頭像 發(fā)表于 08-03 09:36 ?922次閱讀
    <b class='flag-5'>電流</b>探頭用于<b class='flag-5'>調(diào)試</b>電機的測試<b class='flag-5'>方法</b>和操作步驟

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得
    的頭像 發(fā)表于 09-18 10:59 ?793次閱讀
    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片<b class='flag-5'>調(diào)試</b><b class='flag-5'>心得</b>

    PFS122B和PFS122 MCU的主要區(qū)別

    PFS122只能由VDD做參考更改為還可以用內(nèi)部其他的參考電壓來做AD轉(zhuǎn)換的參考。有了這樣的設(shè)計后,使得在沒有LDO的情況下,也更方便的可以做IO口的AD檢測。
    的頭像 發(fā)表于 12-22 10:03 ?1888次閱讀
    <b class='flag-5'>PFS122</b>B和<b class='flag-5'>PFS122</b> MCU的主要區(qū)別

    FOC電機的故障檢測方法 FOC電機調(diào)試技巧大全

    FOC(Field Oriented Control,磁場定向控制)電機在運行時可能會出現(xiàn)各種故障,因此掌握有效的故障檢測方法調(diào)試技巧至關(guān)重要。以下是對FOC電機故障檢測
    的頭像 發(fā)表于 11-21 15:07 ?618次閱讀