加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

關(guān)于 STM32F1 開(kāi)漏輸出的誤解

05/13 14:59
1338
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

來(lái)源:公眾號(hào)【魚(yú)鷹談單片機(jī)】,作者:魚(yú)鷹Osprey,ID ??:emOsprey

有些 IO 可能作為雙向輸出,比如 I2C 的 SDA ?引腳,如果配置成推挽輸出(push-pull),那么當(dāng)要讀取 應(yīng)答信號(hào)或者讀取 i2c 數(shù)據(jù)時(shí),需要重新配置 IO。

因此,很多教程會(huì)建議配置成開(kāi)漏輸出(open-drain),這樣就不需要來(lái)回配置輸出方向。

這里需要注意的一點(diǎn)是,不管是開(kāi)漏還是推挽輸出,作為輸入時(shí),都需要設(shè)置 ODR 寄存器。

一直以為設(shè)置為開(kāi)漏后,不管 ODR 設(shè)置?0?或 1,引腳電平應(yīng)該都是一樣的低電平,實(shí)際上,還是會(huì)有差異:

開(kāi)漏 ODR 設(shè)置為 1:0.15~0.6V(波動(dòng)比較大)

開(kāi)漏 ODR 設(shè)置為 0:0.002V

按理說(shuō),即使 0.6V ?電壓,IDR 讀出的值應(yīng)該都是 0 才對(duì),實(shí)際上,不管是代碼,還是調(diào)試窗口,偶爾還是可以讀出 1 的情況。

外部未接任何電路,開(kāi)發(fā)板引腳懸空:

剛開(kāi)始以為是調(diào)試窗口有問(wèn)題,但通過(guò)代碼發(fā)現(xiàn),開(kāi)漏模式下,即使未接外部上拉電阻,電平確實(shí)被識(shí)別成高電平.

并且使用邏輯分析儀也是被莫名其妙的識(shí)別成高電平。

1V ?不到的電平怎么就是高電平了(VDD 3.3V)?

按這個(gè)數(shù)據(jù)手冊(cè)來(lái)說(shuō),VDD 3.3V 情況下,最少也需要 1.5V 以上才會(huì)被識(shí)別為高電平,百思不得其解。如果有道友懂的可以留言區(qū)討論,沒(méi)找到理論依據(jù)。

并且當(dāng)設(shè)置為開(kāi)漏時(shí),當(dāng)準(zhǔn)備作輸入時(shí),如果 ODR 不設(shè)置為 1,雖然應(yīng)答信號(hào)可以讀取,讀取的數(shù)據(jù)卻是錯(cuò)誤的(測(cè)試 AT24C256)

STM32F103 參考手冊(cè))

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
JST01TMAC1CY5GE2 1 Viavi Solutions Inc Transceiver,
暫無(wú)數(shù)據(jù) 查看
6N137-X007T 1 Vishay Intertechnologies Optocoupler Logic-Out Open Collector DC-IN 1-CH 8-Pin PDIP SMD T/R

ECAD模型

下載ECAD模型
$2.22 查看
TJA1055T/3/CM,118 1 NXP Semiconductors TJA1055 - Enhanced fault-tolerant CAN transceiver SOIC 14-Pin

ECAD模型

下載ECAD模型
$1.95 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

六年開(kāi)發(fā)經(jīng)驗(yàn),豐富的KEIL調(diào)試經(jīng)驗(yàn),STM32使用經(jīng)驗(yàn),C語(yǔ)言運(yùn)用經(jīng)驗(yàn)。