• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: ADC conversion and EUSART
#2
版主
版主


查看用戶資訊
看起來這是 ADC 受店員雜訊的干擾所致,請查看一下電源上的雜訊。
電源如果沒有處理得很好一般有個 50mV 的雜訊在上面。如果串進了 ADC 就會干擾到 ADC 的轉換精度。
(50mV/5Vdd) x 1024 = 10 digital = 3 Lsb bit 的影響,這時就會有三個最低位元在跳動著。解決的方法是:

1. 取平均值,例如: ADC 累計 16 次的轉換後在右移 4 位元 (除以 16)
2. 在睡眠模式下使用 Internal ADC RC 震盪來源做轉換,轉換完畢 ADC 產生中斷叫醒 MCU。

發表於: 2021/8/6 12:12
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


ADC conversion and EUSART
#1
新會員
新會員


查看用戶資訊
各位好,我在使用PIC16F1823的ADC和EUSART發現了一個奇怪的情況
開發環境為 MPLAB X IDE 5.50+XC8 2.31+MCC 4.2.3, debugger tool is PICKit3,使用C語言

程式內容大概如下
我在protect_status(void)中去讀取ADC,並將轉換值和預設值做比較
比較完回傳一個unsigned char到main,然後將其從EUSART輸出

然後問題就發生了,在我正常送電開機時
3組ADC輸入理應尚未有電壓進來,值應該是趨近於0,亦不會大於參考值,對應bit也會是0
所以protect輸出會是0才對,但EUSART讀出來的protect卻是0x02,04,08,0E....等亂跳,跳了幾次之後才能持續讀到0

可我使用debug mode用breakpoint設在EUSART_Write這行去看,不管怎麼跳怎麼看protect在debug mode裡面一直都是0x00沒有其他亂跳的值

原本我以為是我EUSART設置的問題,但程式跑出來卻是正確的,例如EUSART丟0x02(先假設EUSRT是對的)出來便是跳至portect是0x02的程式執行指令,丟0x04做0x04的指令....等等,所以算是排除EUSART錯誤
後來甚至將3組ADC輸入直接接地讓input = 0後也是如此,所以就變成我接上tool去debug mode看都正常,拿掉tool直接勾EUSART然後用正常開機的方式去讀EUSART都會看到他在亂跳,以至於我不知道是什麼問題造成的

程式如下,不知道是不是我設置上面的問題還是程式有錯誤
---------------------------------------------------------------------------------------------------
main
{
...........//省略
while(1)
{
...........//省略
protect = protect_status();
EUSART_Write(protect);
...........//省略
} ​
}


uint8_t protect_status(void)
{
​...........//省略 設定變數;

​ADC_OTP=ADC_GetConversion(AN4);
​ADC_OVP=ADC_GetConversion(AN5);
​ADC_OCP=ADC_GetConversion(AN6);

​...........//​省略部分指令,指令內容如下敘述

​分別針對三個ADC抓取參數和reference做比較
​大於reference分給給應變數(OVP,OCP,OTP)1否則0;

​...........//省略部分指令,指令內容如上敘述

​//set ovp at protect[3], ocp at protect[2], otp at protect[1], protect[1] is 0
​protect=OVP+OCP+OTP
​return protect
}

發表於: 2021/8/6 10:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------