久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STC08G單片機在ADC過程電壓異常 [打印本頁]

作者: j1ason    時間: 2022-8-25 14:26
標題: STC08G單片機在ADC過程電壓異常
最近小弟采用I/O復用方式進行ADC,結(jié)果出現(xiàn)ADC過程電壓躍落情況,急需求解。謝謝!

ADC異常波型.png (1.52 MB, 下載次數(shù): 168)

電壓異常波型

電壓異常波型

ADC原理圖.png (655.64 KB, 下載次數(shù): 186)

ADC原理圖.png

作者: cnos    時間: 2022-8-25 15:08
剛好遇到了,STC技術(shù)告知的解決辦法:在ADC腳對地接一顆103電容。
http://www.zg4o1577.cn/bbs/forum.p ... p;page=1#pid1105080
作者: yzwzfyz    時間: 2022-8-25 15:39
說明一下,P55與P54的電壓由誰提供。
這個圖在P55、P54做AD時,無外界提供電壓,AD采樣接近0。
P55、P54做IO時,則是示波器的圖形。
而且又不批出,黃線是誰的波形,藍線是誰的波形。在什么情況下的波形。
全靠別人猜。
溝通表達能力差。
作者: aidianzi    時間: 2022-8-25 16:03
沒明白你是怎么復用的不說明清除不好說
作者: coody_sz    時間: 2022-8-25 16:19
沒看明白,你說下你的操作過程。
作者: wulin    時間: 2022-8-25 16:29
ADC端口復用受外部硬件條件限制,也就是在ADC采樣時段其他外部硬件呈高阻,不影響ADC采樣電壓。從你的圖看不出你要怎么復用。
作者: xiaohaibo81    時間: 2022-8-25 19:14
你這個怎么要I/O口呀,上面I/O的電壓要固定一個值才行。
作者: xxxevery    時間: 2022-8-25 23:06
你這個問題描述的也太簡單了吧,哪個口是adc輸入,哪個口是IO口,實現(xiàn)的功能和出現(xiàn)的現(xiàn)象等都應該描述清楚才好解決啊
作者: j1ason    時間: 2022-8-26 14:14
上圖中在ADC過程,P5.5是穩(wěn)定輸出高電平,P5.4進行AD轉(zhuǎn)換(輸入口)。通過AD轉(zhuǎn)化實現(xiàn)溫度檢測。
作者: 188610329    時間: 2022-8-26 15:29
STC8G  那么多產(chǎn)品中, 我還真沒找到 可以用 P5.4 測AD的型號, 所以,連示波器都用上了, 不能先看看 產(chǎn)品規(guī)格書么?
作者: 188610329    時間: 2022-8-26 16:26
j1ason 發(fā)表于 2022-8-26 14:14
上圖中在ADC過程,P5.5是穩(wěn)定輸出高電平,P5.4進行AD轉(zhuǎn)換(輸入口)。通過AD轉(zhuǎn)化實現(xiàn)溫度檢測。

P5.5 是不可能穩(wěn)定輸出高電平的,你要穩(wěn)定的話,只能 10K電阻的另一頭接VCC,把P5.5 開漏模式 輸出穩(wěn)定的低電平 才有可能實現(xiàn)“穩(wěn)定”
作者: coody_sz    時間: 2022-8-26 16:28
一般建議NTC接地,這樣用什么問題嗎?P5.5要設(shè)置為推挽輸出。
作者: Y_G_G    時間: 2022-8-26 17:18
1,為什么要這么操作?
2,代碼上傳
作者: Y_G_G    時間: 2022-8-27 00:21
188610329 發(fā)表于 2022-8-26 15:29
STC8G  那么多產(chǎn)品中, 我還真沒找到 可以用 P5.4 測AD的型號, 所以,連示波器都用上了, 不能先看看 產(chǎn)品 ...

STC8G1K08A
每個IO都有ADC功能,一塊二一片,性價比還是蠻可以的
就是抗干擾不怎么好,我DIY一個太陽能路燈,只是LED燈的線架在220V上而已,有時候開日光燈,這板子就復位了,我還打了20個板子,準備回家用呢......有點后悔了,當初應該用PIC12F615的
作者: xxxevery    時間: 2022-8-28 19:38
P5.5接穩(wěn)定高電平,那為啥不直接接到電源呢,不知咋想的。IO口輸出是經(jīng)過了內(nèi)部的輸出電路的,不管輸出高、低電平都會受到輸出電路內(nèi)阻的影響,拿來作為AD的參考電壓很不合適啊
作者: hhh402    時間: 2022-8-28 22:08
Y_G_G 發(fā)表于 2022-8-27 00:21
STC8G1K08A
每個IO都有ADC功能,一塊二一片,性價比還是蠻可以的
就是抗干擾不怎么好,我DIY一個太陽能路 ...

抗干擾與你的電路設(shè)計有關(guān),你的STC單片機用了幾個電容?多大容量的?
作者: cnos    時間: 2022-8-29 09:58
Y_G_G 發(fā)表于 2022-8-27 00:21
STC8G1K08A
每個IO都有ADC功能,一塊二一片,性價比還是蠻可以的
就是抗干擾不怎么好,我DIY一個太陽能路 ...

不至于這么慘吧,同樣用STC8G1K08A-QFN 做了一個24V電源的監(jiān)控處理板,沒聽用戶反饋什么問題,帶的是無刷電機。
作者: j1ason    時間: 2022-8-29 10:13
188610329 發(fā)表于 2022-8-26 15:29
STC8G  那么多產(chǎn)品中, 我還真沒找到 可以用 P5.4 測AD的型號, 所以,連示波器都用上了, 不能先看看 產(chǎn)品 ...

STC8G1K08A是有這口的,并說明可以進行ADC的



作者: j1ason    時間: 2022-8-29 10:23
coody_sz 發(fā)表于 2022-8-26 16:28
一般建議NTC接地,這樣用什么問題嗎?P5.5要設(shè)置為推挽輸出。

收到,另外,目前波形中P5.5已經(jīng)是推挽輸出模式的了
作者: wufa1986    時間: 2022-8-29 10:29
程序問題,還得慢慢自己研究,那么多人用基本不會出現(xiàn)如此簡單的錯誤
作者: j1ason    時間: 2022-8-29 10:33
xxxevery 發(fā)表于 2022-8-28 19:38
P5.5接穩(wěn)定高電平,那為啥不直接接到電源呢,不知咋想的。IO口輸出是經(jīng)過了內(nèi)部的輸出電路的,不管輸出高、 ...

理論上還是可以的
作者: j1ason    時間: 2022-8-29 10:38
Y_G_G 發(fā)表于 2022-8-26 17:18
1,為什么要這么操作?
2,代碼上傳

unsigned char ADC_NTC(void)
{
unsigned char b;

P5M0 = 0X00;  
P5M1 = 0X20;
P_SW2 |= 0x80;  
ADCTIM = 0x3f;
P_SW2 &= 0x7f;
ADCCFG = 0x0f;   
ADC_CONTR = 0x85;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ADC_CONTR |= 0x40;  
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();

while (!(ADC_CONTR & 0x20));  
ADC_CONTR &= ~0x20;
b = ADC_RES
由于電路設(shè)計需要
作者: Y_G_G    時間: 2022-8-29 11:29
cnos 發(fā)表于 2022-8-29 09:58
不至于這么慘吧,同樣用STC8G1K08A-QFN 做了一個24V電源的監(jiān)控處理板,沒聽用戶反饋什么問題,帶的是無刷 ...

跟硬件肯定是沒有關(guān)系的了,估計是日光的鎮(zhèn)流器,只有在開燈的時候有復位現(xiàn)象,連續(xù)開燈十幾二十次就會有一次復位
同一塊PCB板子,直接換上PIC12F615,搭線測試,開了半個小時,沒有一次復位的
用于測試的程序很簡單,首先排除程序的問題
就是什么功能都沒有,就是開機之后,控制IO先低電平并延時0.5秒,然后,就是一直開燈,幾行代碼而已,ADC什么的都沒有用
只要開機之后出現(xiàn)滅燈的,就是復位了
作者: dzbj    時間: 2022-8-29 13:53
Y_G_G 發(fā)表于 2022-8-29 11:29
跟硬件肯定是沒有關(guān)系的了,估計是日光的鎮(zhèn)流器,只有在開燈的時候有復位現(xiàn)象,連續(xù)開燈十幾二十次就會有一 ...

8G1K穩(wěn)定性好象是不好 我搞了個GPS時鐘服務(wù) 因為8G1K 20PIN的有雙串口就用這片子 超過2秒收不到GPS數(shù)據(jù)會報一下警告 大概穩(wěn)定工作了半年 開始間隔報警 然后越來越頻繁 我以為是GPS模塊的問題 連模塊帶天線都換了一套也沒什么用 換了8G1K片子正常工作了 然后過半年 又不行了 但重新刷一下程序 一點沒動的程序 就又能穩(wěn)定工作半年 應該不是電源的問題 這個模塊12VDC和12v電池雙供電 電源為主和電池為主都試過 一樣
作者: coody_sz    時間: 2022-8-29 14:32
Y_G_G 發(fā)表于 2022-8-27 00:21
STC8G1K08A
每個IO都有ADC功能,一塊二一片,性價比還是蠻可以的
就是抗干擾不怎么好,我DIY一個太陽能路 ...

你這種情況,屬于電源問題,電源做好,不要有跌落,就不會復位,我用這個MCU做燈控也比較多,沒發(fā)現(xiàn)你說的問題。
作者: weqeq23    時間: 2022-8-29 14:46
P5.5是穩(wěn)定輸出高電平,P5.4進行AD轉(zhuǎn)換(輸入口)。通過AD轉(zhuǎn)化實現(xiàn)溫度檢測。
作者: xxxevery    時間: 2022-8-29 15:36
樓主,理論上可行但如果不可控因素更多的話還是建議慎用,從你給的程序看完全就是測的P5.5的電壓,這跟你前面描述的情況完全不符啊
http://www.zg4o1577.cn/bbs/forum.php?mod=redirect&goto=findpost&ptid=223192&pid=1105390


作者: wulin    時間: 2022-8-29 15:53
j1ason 發(fā)表于 2022-8-29 10:38
unsigned char ADC_NTC(void)
{
unsigned char b;

樓主用STC8G1K08A的P5.5輸出高電平,分壓后供P5.4 ADC取樣,這樣用沒有什么問題,但與 “I/O復用方式” 沒有干系。所謂復用是指同一個I/O口同時或分時執(zhí)行兩個以上功能。出現(xiàn)異常波形當然是代碼問題。
作者: Y_G_G    時間: 2022-8-29 21:12
coody_sz 發(fā)表于 2022-8-29 14:32
你這種情況,屬于電源問題,電源做好,不要有跌落,就不會復位,我用這個MCU做燈控也比較多,沒發(fā)現(xiàn)你說 ...

我覺得你可能沒有認真看我的回復
作者: proe533    時間: 2022-8-29 22:07
這么用2個IO??P5.5接VCC,試一下
作者: wulin    時間: 2022-8-30 07:50
weqeq23 發(fā)表于 2022-8-29 14:46
P5.5是穩(wěn)定輸出高電平,P5.4進行AD轉(zhuǎn)換(輸入口)。通過AD轉(zhuǎn)化實現(xiàn)溫度檢測。

這是基本條件和應用代碼
  1. #define ADCTIM  (*(unsigned char volatile xdata *)0xfea8)
  2. #define ADC_POWER   0x80                        //ADC power control dit (ADC電源控制位)1000 0000
  3. #define ADC_START   0x40                        //ADC start control dit (ADC啟動控制位)0100 0000
  4. #define ADC_FLAG    0x20                        //ADC complete flag (ADC完成標志位)    0010 0000
  5. #define ADC_EPWMT   0x10                        //使能 PWM  實時觸發(fā) ADC               0001 0000


  6. P3M1 = 0x00;                                         //設(shè)置P3準雙向
  7. P3M0 = 0x00;                                         //設(shè)置P3準雙向
  8. P5M1 = 0x10;                                         //設(shè)置P5.4高阻0001 0000
  9. P5M0 = 0x20;                                         //設(shè)置P5.5推挽0010 0000

  10. /*------------------------
  11.   InitADC 初始化ADC
  12. -------------------------*/
  13. void Init_ADC()
  14. {        //ADC 控制器  電源  啟動  完成  --   15通道模擬選擇位
  15.         //ADC_CONTR    B7    B6    B5   B4   B3   B2   B1   B0
  16.         P_SW2 |= 0x80;                                        //打開設(shè)置開關(guān)
  17.         ADCTIM = 0x3f;                                        //設(shè)置 ADC 內(nèi)部時序
  18.         P_SW2 &= 0x7f;                                        //關(guān)閉設(shè)置開關(guān)
  19.         ADCCFG = 0x27;                                        //設(shè)置ADC結(jié)果右對齊,速度為512系統(tǒng)時鐘
  20.         ADC_RES=0;                                                //清除ADC_RES存儲器以前的結(jié)果
  21.         ADC_RESL=0;
  22.         ADC_CONTR=ADC_POWER;                 //開啟ADC電源
  23.         _nop_();_nop_();                                //上電延時
  24.         _nop_();_nop_();
  25. }
  26. /*----------------------------
  27.         讀取ADC結(jié)果
  28. ----------------------------*/
  29. unsigned int GetADCResult(unsigned char CH)//ADC通道CH=4 (P5.4)
  30. {
  31.         ADC_CONTR=ADC_POWER|ADC_START|CH;//啟動轉(zhuǎn)換1100 1100
  32.         _nop_();_nop_();                                                //小延時
  33.         while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉(zhuǎn)換完成標志置位 1010 0000
  34.         ADC_CONTR &=~ADC_FLAG;                        //清完成標志
  35.         return ADC_RES<<8|ADC_RESL;                //返回十位ADC結(jié)果
  36. }
復制代碼

作者: j1ason    時間: 2022-8-31 15:10
感謝各位大神的幫忙,我認真思考,再調(diào)試




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99久久婷婷国产综合精品 | 91色视频在线观看 | 亚洲一区二区在线播放 | 国产精品免费视频一区 | 欧美成人一级 | 国产激情毛片 | 99精品国产一区二区青青牛奶 | 久久久久九九九女人毛片 | 在线播放日韩 | 久久伊人操 | 久久久久国产精品www | 国产精品国产三级国产aⅴ无密码 | 亚洲精品自在在线观看 | 丝袜 亚洲 欧美 日韩 综合 | 国产区精品在线观看 | 一级黄色片网址 | 亚洲一区在线日韩在线深爱 | 人人性人人性碰国产 | 日韩国产在线 | 亚洲人a | 在线伊人网 | 国内精品一区二区三区 | 免费国产一区 | 国产精品视频导航 | 久久久性色精品国产免费观看 | 日日干夜夜操 | 热久久999| 高清国产一区二区 | 理论片午午伦夜理片影院 | 欧美高清hd | 99精品一区二区三区 | 九色 在线 | 亚洲视频免费观看 | 国产在线精品一区二区三区 | 日韩国产精品一区二区三区 | 欧美日韩亚洲视频 | 综合伊人| 亚洲人在线 | 亚洲精品99999 | 国产视频一区二区 | 91在线精品一区二区 |