找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7042|回復(fù): 25
打印 上一主題 下一主題
收起左側(cè)

求助關(guān)于單片機(jī)IO口輸入輸出的奇怪問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
200黑幣
單片機(jī)是電池供電然后通過(guò)LDO降壓到3.3V給到

緊接著是一個(gè)低電壓檢測(cè)的電路

單獨(dú)上面兩個(gè)電路時(shí),電池電壓高于3.3V時(shí),VOUT=VIN=BAT+
當(dāng)電池電壓低于3.3V時(shí),VOUT=0V
接入的IO口是P34
問(wèn)題出現(xiàn)在,當(dāng)我把P35這個(gè)IO口接上霍爾開(kāi)關(guān)時(shí),

我發(fā)現(xiàn)VOUT在電池電壓大于3.3V時(shí),VOUT=4.2V左右了,就非常神奇。
當(dāng)然還有更神奇的,我發(fā)現(xiàn)我不接上霍爾開(kāi)關(guān)的時(shí)候
低電壓檢測(cè)電路沒(méi)有任何問(wèn)題
當(dāng)我接上霍爾開(kāi)關(guān)后
低電壓芯片有時(shí)候會(huì)出現(xiàn)很短暫大概8us,突然從高電平突躍到低電平的情況
這種情況發(fā)生在我撥動(dòng)P32,P33的旋鈕的時(shí)候

我不明白,為什么我轉(zhuǎn)動(dòng)3.3,3.2的旋鈕引腳,同時(shí)接上P3.5的霍爾開(kāi)關(guān)就會(huì)讓3.4這個(gè)引腳出現(xiàn)8us的突然拉低
這非常奇怪,主要我把P35的霍爾開(kāi)關(guān)去掉就沒(méi)有關(guān)系了。
同時(shí),如果我把P34 P35上的元器件都去掉
轉(zhuǎn)動(dòng)P33 P32也會(huì)出現(xiàn)8us的突然拉低!
這也非常奇怪。
唯一沒(méi)有問(wèn)題的時(shí)候其他都保證不變,但是把霍爾開(kāi)關(guān)去掉就是正常的
不知道各位有什么好的想法可以幫我解決這個(gè)問(wèn)題
非常感謝!
我現(xiàn)在只能用一個(gè)電容接在低電壓檢測(cè)芯片的VOUT消除這個(gè)8US的抖動(dòng)
但是不能找到原因讓我覺(jué)得非常難受!
希望各位大佬可以幫我看看!!十分感謝QAQ

最佳答案

查看完整內(nèi)容

你之前描述的奇怪現(xiàn)象和這沒(méi)關(guān)系。 R17和C8、R18和C1,構(gòu)成了2個(gè)阻容延時(shí),用于對(duì)旋鈕信號(hào)消抖。時(shí)間常數(shù)越大,消抖效果越好,但高速旋轉(zhuǎn)時(shí)會(huì)丟步。時(shí)間常數(shù)越小,高速旋轉(zhuǎn)檢測(cè)更好,但消抖效果差。需要根據(jù)實(shí)際需求精心選擇。 如你電阻10K電容0.1u是最佳效果,那么電阻20K電容0.047u、電阻30K電容0.033u的時(shí)間常數(shù)是一樣的,也是最佳效果。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:887371 發(fā)表于 2022-1-3 08:57 | 只看該作者
一夜暴富 發(fā)表于 2022-1-4 14:36
感謝,經(jīng)過(guò)一天的調(diào)試我發(fā)現(xiàn)了問(wèn)題所在。
旋鈕的電阻20K太大了,因?yàn)槲铱磩e人都是兩個(gè)10K串聯(lián)
我直接用 ...

你之前描述的奇怪現(xiàn)象和這沒(méi)關(guān)系。
R17和C8、R18和C1,構(gòu)成了2個(gè)阻容延時(shí),用于對(duì)旋鈕信號(hào)消抖。時(shí)間常數(shù)越大,消抖效果越好,但高速旋轉(zhuǎn)時(shí)會(huì)丟步。時(shí)間常數(shù)越小,高速旋轉(zhuǎn)檢測(cè)更好,但消抖效果差。需要根據(jù)實(shí)際需求精心選擇。
如你電阻10K電容0.1u是最佳效果,那么電阻20K電容0.047u、電阻30K電容0.033u的時(shí)間常數(shù)是一樣的,也是最佳效果。
回復(fù)

使用道具 舉報(bào)

板凳
ID:887371 發(fā)表于 2022-1-3 10:20 | 只看該作者
記住這個(gè)原則:?jiǎn)纹瑱C(jī)IO口電壓不能大于VCC+0.3V。

當(dāng)霍爾開(kāi)關(guān)輸出5V時(shí),違反了上述原則。低電壓檢測(cè)的輸出端是開(kāi)樓輸出,輸出4.2V不奇怪。
其它異常估計(jì)也是違反上述原則造成的。
回復(fù)

使用道具 舉報(bào)

地板
ID:824490 發(fā)表于 2022-1-3 10:42 | 只看該作者
IO口的電壓5V反灌到CPU的電源端了,所以你的電路出現(xiàn)高于3.3V是合乎邏輯的。。
電壓檢測(cè)就是輸入高于標(biāo)稱電壓時(shí),輸出為高,反之則為低,也是正常的。
回復(fù)

使用道具 舉報(bào)

5#
ID:28752 發(fā)表于 2022-1-3 10:44 | 只看該作者
應(yīng)該就是單片機(jī),低壓偵測(cè).hall電平不一致導(dǎo)致,低壓偵測(cè)建議用OC輸出的,上拉用單片機(jī)VCC霍爾做下分壓了再接入單片機(jī),這樣應(yīng)該是沒(méi)問(wèn)題了...
回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2022-1-3 11:28 | 只看該作者
樓主表述的不清晰。圖也不完整,很難理解是什么狀態(tài)。ME2808的VOUT端是開(kāi)漏型,其高電平電壓是由外接電路確定的。至于VOUT出現(xiàn)短暫低電平無(wú)外乎是VOUT外接電路出現(xiàn)短暫低電平或VIN端短暫失壓所致。
回復(fù)

使用道具 舉報(bào)

7#
ID:57657 發(fā)表于 2022-1-3 11:38 | 只看該作者
你這個(gè)低電壓檢測(cè)電路是檢測(cè)什么的 ?
STC自帶低壓檢測(cè)寄存器、中斷。
回復(fù)

使用道具 舉報(bào)

8#
ID:887186 發(fā)表于 2022-1-3 13:44 | 只看該作者
datouyuan 發(fā)表于 2022-1-3 10:20
記住這個(gè)原則:?jiǎn)纹瑱C(jī)IO口電壓不能大于VCC+0.3V。

當(dāng)霍爾開(kāi)關(guān)輸出5V時(shí),違反了上述原則。低電壓檢測(cè)的輸 ...

感謝回復(fù),那如果傳感器有5V的話,該怎么控制輸入的電壓呢。
這個(gè)該怎么取舍呢
回復(fù)

使用道具 舉報(bào)

9#
ID:887186 發(fā)表于 2022-1-3 13:44 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-1-3 10:42
IO口的電壓5V反灌到CPU的電源端了,所以你的電路出現(xiàn)高于3.3V是合乎邏輯的。。
電壓檢測(cè)就是輸入高于標(biāo)稱 ...

會(huì)有什么不好的影響嗎,如果只是單純的電壓變化倒是可以接受
回復(fù)

使用道具 舉報(bào)

10#
ID:887186 發(fā)表于 2022-1-3 13:46 | 只看該作者
npn 發(fā)表于 2022-1-3 11:38
你這個(gè)低電壓檢測(cè)電路是檢測(cè)什么的 ?
STC自帶低壓檢測(cè)寄存器、中斷。

因?yàn)槲业牡蛪簷z測(cè)是3.3V,stc里的似乎不是這個(gè)電壓值……?
謝謝大佬,我再研究看看
回復(fù)

使用道具 舉報(bào)

11#
ID:887186 發(fā)表于 2022-1-3 13:48 | 只看該作者
grb7906 發(fā)表于 2022-1-3 10:44
應(yīng)該就是單片機(jī),低壓偵測(cè).hall電平不一致導(dǎo)致,低壓偵測(cè)建議用OC輸出的,上拉用單片機(jī)VCC霍爾做下分壓了再接 ...

感謝回復(fù),但是并沒(méi)有很理解。能再詳細(xì)說(shuō)一下嘛
低壓檢測(cè)好像本身VOUT端就是開(kāi)漏輸出了。
霍爾做下分壓再接入單片機(jī)是指在霍爾的輸出接LDO嗎還是
回復(fù)

使用道具 舉報(bào)

12#
ID:887186 發(fā)表于 2022-1-3 13:49 | 只看該作者
wulin 發(fā)表于 2022-1-3 11:28
樓主表述的不清晰。圖也不完整,很難理解是什么狀態(tài)。ME2808的VOUT端是開(kāi)漏型,其高電平電壓是由外接電路確 ...

謝謝回復(fù)
但我有些不明白的是如果我沒(méi)接ME2808,等于是只有單片機(jī)IO口單獨(dú)存在,沒(méi)有接任何外設(shè),此時(shí)我轉(zhuǎn)動(dòng)旋鈕,也是會(huì)出現(xiàn)P34這個(gè)單片機(jī)IO短暫的低電平出現(xiàn)
這是為什么呢。
似乎和外設(shè)已經(jīng)沒(méi)有關(guān)系了
回復(fù)

使用道具 舉報(bào)

13#
ID:401564 發(fā)表于 2022-1-3 13:50 | 只看該作者
鋰電池供電,可以直接使用電池給單片機(jī)供電,低電壓檢測(cè)可以通過(guò)內(nèi)部參考電壓來(lái)進(jìn)行計(jì)算
STC8H1K28內(nèi)置一個(gè)已經(jīng)校正過(guò)內(nèi)部參考電壓,完全可以使它來(lái)進(jìn)行ADC參考和電池低電壓顯示,不需要LDO的
其它的,雖然你寫(xiě)了那么多,都不知道你描述的是什么.........................
回復(fù)

使用道具 舉報(bào)

14#
ID:887186 發(fā)表于 2022-1-3 14:13 | 只看該作者
Y_G_G 發(fā)表于 2022-1-3 13:50
鋰電池供電,可以直接使用電池給單片機(jī)供電,低電壓檢測(cè)可以通過(guò)內(nèi)部參考電壓來(lái)進(jìn)行計(jì)算
STC8H1K28內(nèi)置一個(gè) ...

簡(jiǎn)單來(lái)說(shuō)就是
沒(méi)有霍爾開(kāi)關(guān)(輸入至P35)時(shí),無(wú)論怎么轉(zhuǎn)動(dòng)旋鈕(P32,P33),檢測(cè)低電壓的芯片的輸出(P34)都不會(huì)出現(xiàn)誤輸出低電壓的情況
但是接上霍爾開(kāi)關(guān)后,轉(zhuǎn)動(dòng)旋鈕低電壓芯片輸出就會(huì)出現(xiàn)異常
回復(fù)

使用道具 舉報(bào)

15#
ID:28752 發(fā)表于 2022-1-3 15:12 | 只看該作者
一夜暴富 發(fā)表于 2022-1-3 13:48
感謝回復(fù),但是并沒(méi)有很理解。能再詳細(xì)說(shuō)一下嘛
低壓檢測(cè)好像本身VOUT端就是開(kāi)漏輸出了。
霍爾做下分壓 ...

很好理解啊,首先,低壓檢測(cè)你說(shuō)已經(jīng)是開(kāi)漏,單圖上沒(méi)見(jiàn)你有上拉,當(dāng)然如果是單片機(jī)內(nèi)部上拉也行,其次,HALL,你接的是5v電源,MCU供電是5v么?不是,你就要把hall輸出的信號(hào),電阻分壓到MCU規(guī)格限制內(nèi)...
回復(fù)

使用道具 舉報(bào)

16#
ID:887186 發(fā)表于 2022-1-3 15:21 | 只看該作者
grb7906 發(fā)表于 2022-1-3 15:12
很好理解啊,首先,低壓檢測(cè)你說(shuō)已經(jīng)是開(kāi)漏,單圖上沒(méi)見(jiàn)你有上拉,當(dāng)然如果是單片機(jī)內(nèi)部上拉也行,其次,HALL, ...

感謝,我剛才看了下單片機(jī)手冊(cè),在霍爾的輸出口加一個(gè)二極管就可以讓他輸出單片機(jī)的工作電壓了
低壓檢測(cè)的話,我直接用單片機(jī)的準(zhǔn)雙向口似乎也能檢測(cè)到。
還有一個(gè)小問(wèn)題是哪怕我不接低壓檢測(cè)芯片,只是單純監(jiān)控單片機(jī)這個(gè)引腳的高地電平,在我未對(duì)該引腳在代碼上進(jìn)行高低電平的定義時(shí),他的輸出有時(shí)會(huì)從1變成0這樣子(大概8us左右)
回復(fù)

使用道具 舉報(bào)

17#
ID:824490 發(fā)表于 2022-1-3 16:34 | 只看該作者
一夜暴富 發(fā)表于 2022-1-3 13:44
會(huì)有什么不好的影響嗎,如果只是單純的電壓變化倒是可以接受

不安全,極端條件下會(huì)燒IO/毀MCU
回復(fù)

使用道具 舉報(bào)

18#
ID:28752 發(fā)表于 2022-1-3 16:57 | 只看該作者
一夜暴富 發(fā)表于 2022-1-3 15:21
感謝,我剛才看了下單片機(jī)手冊(cè),在霍爾的輸出口加一個(gè)二極管就可以讓他輸出單片機(jī)的工作電壓了
低壓檢測(cè) ...

不明白,既然是低壓檢測(cè)口,為什么又有輸出,輸入口改為高阻輸入試試,外部上拉...
回復(fù)

使用道具 舉報(bào)

19#
ID:401564 發(fā)表于 2022-1-3 18:26 | 只看該作者
一夜暴富 發(fā)表于 2022-1-3 14:13
簡(jiǎn)單來(lái)說(shuō)就是
沒(méi)有霍爾開(kāi)關(guān)(輸入至P35)時(shí),無(wú)論怎么轉(zhuǎn)動(dòng)旋鈕(P32,P33),檢測(cè)低電壓的芯片的輸 ...

樓上已經(jīng)有人說(shuō)明了,IO輸入電壓不能超過(guò)這個(gè)單片機(jī)的最大輸入,不管是不是這個(gè)原因,都得先把這個(gè)問(wèn)題解決了再說(shuō)其它的
至于低電壓檢測(cè),我已經(jīng)說(shuō)了,沒(méi)有必要用LDO,沒(méi)有必要外加低電壓檢測(cè),也沒(méi)有必要用一個(gè)IO來(lái)進(jìn)行ADC
數(shù)據(jù)手冊(cè)中有說(shuō)明的,怎樣利用15通道的ADC來(lái)計(jì)算VCC,鋰電池供電最常用的低電壓就是用這個(gè)方法的
回復(fù)

使用道具 舉報(bào)

20#
ID:57657 發(fā)表于 2022-1-3 19:34 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-1-3 16:34
不安全,極端條件下會(huì)燒IO/毀MCU

如果IO口還配置了特殊功能(比如外部中斷、硬件SPI等)。
還有可能燒壞內(nèi)部寄存器導(dǎo)致失靈,出現(xiàn)問(wèn)題都找不到北。
回復(fù)

使用道具 舉報(bào)

21#
ID:887371 發(fā)表于 2022-1-4 09:31 | 只看該作者
一夜暴富 發(fā)表于 2022-1-3 15:21
感謝,我剛才看了下單片機(jī)手冊(cè),在霍爾的輸出口加一個(gè)二極管就可以讓他輸出單片機(jī)的工作電壓了
低壓檢測(cè) ...

記住這個(gè)原則:?jiǎn)纹瑱C(jī)IO口電壓不能大于VCC+0.3V。
你應(yīng)該優(yōu)先解決這個(gè)。供電不能保證正常,啥奇怪問(wèn)題都可能出現(xiàn)。
你的低壓檢測(cè)是開(kāi)漏輸出,又沒(méi)有上拉電阻,所以只有配置成準(zhǔn)雙向口才能檢測(cè)到,配置成其它方式不行。
stc8復(fù)位后所有io自動(dòng)配置為純輸入,你又沒(méi)有上拉電阻,所以此時(shí)為低電平。我估計(jì)是由于某種原因(例如看門(mén)狗、供電低)造成mcu復(fù)位造成的。又繞回優(yōu)先解決上面提到的原則了。
你5V是不是由bat升壓提供的,如是,由于IO口電壓大于VCC+0.3V,使霍爾器件消耗了巨大電流,造成bat波動(dòng)。又繞回優(yōu)先解決上面提到的原則了。
回復(fù)

使用道具 舉報(bào)

22#
ID:887186 發(fā)表于 2022-1-4 09:38 | 只看該作者
grb7906 發(fā)表于 2022-1-3 16:57
不明白,既然是低壓檢測(cè)口,為什么又有輸出,輸入口改為高阻輸入試試,外部上拉...

就是我懷疑和外圍電路沒(méi)關(guān)系~
直接就裸著一個(gè)單片機(jī),監(jiān)控單片機(jī)引腳P34的高低電平
然后我發(fā)現(xiàn)我不停轉(zhuǎn)動(dòng)旋鈕(P33,P32)時(shí)
單片機(jī)引腳P34也會(huì)出現(xiàn)高低電平突然變化一下的情況
回復(fù)

使用道具 舉報(bào)

23#
ID:887186 發(fā)表于 2022-1-4 09:38 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-1-3 16:34
不安全,極端條件下會(huì)燒IO/毀MCU

好的,謝謝。我先把這個(gè)問(wèn)題解決掉
回復(fù)

使用道具 舉報(bào)

24#
ID:887186 發(fā)表于 2022-1-4 09:39 | 只看該作者
npn 發(fā)表于 2022-1-3 19:34
如果IO口還配置了特殊功能(比如外部中斷、硬件SPI等)。
還有可能燒壞內(nèi)部寄存器導(dǎo)致失靈,出現(xiàn)問(wèn)題都找 ...

謝謝,我先把這個(gè)問(wèn)題解決掉再看看其它問(wèn)題
回復(fù)

使用道具 舉報(bào)

25#
ID:491577 發(fā)表于 2022-1-4 12:16 | 只看該作者
一夜暴富 發(fā)表于 2022-1-4 09:38
就是我懷疑和外圍電路沒(méi)關(guān)系~
直接就裸著一個(gè)單片機(jī),監(jiān)控單片機(jī)引腳P34的高低電平
然后我發(fā)現(xiàn)我不停轉(zhuǎn) ...

因?yàn)殪o電的原因,IO口設(shè)置為高阻并懸空時(shí)檢測(cè)到任何電壓都是正常的,懸空的IO口是不可以設(shè)置成高阻點(diǎn)。
回復(fù)

使用道具 舉報(bào)

26#
ID:887186 發(fā)表于 2022-1-4 14:36 | 只看該作者
hhh402 發(fā)表于 2022-1-4 12:16
因?yàn)殪o電的原因,IO口設(shè)置為高阻并懸空時(shí)檢測(cè)到任何電壓都是正常的,懸空的IO口是不可以設(shè)置成高阻點(diǎn)。

感謝,經(jīng)過(guò)一天的調(diào)試我發(fā)現(xiàn)了問(wèn)題所在。
旋鈕的電阻20K太大了,因?yàn)槲铱磩e人都是兩個(gè)10K串聯(lián)
我直接用了一個(gè)20k
導(dǎo)致出現(xiàn)各種各樣的問(wèn)題,我現(xiàn)在改成10K就好了
但是令我不解的是為什么改成20K會(huì)出現(xiàn)這樣的問(wèn)題
大佬能否替我解答一下,因?yàn)槲蚁胱龅凸,如果電阻調(diào)成10K,旋鈕這的功耗就大了一倍
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表