Global Sources
電子工程專輯網站
電子工程專輯論壇>自由討論>設計方案交流>新手EE對於GPIO的疑問
正在爲尋找合適的設計方案急得團團轉?有好的設計方案卻苦於不被人知?設計方案交流專區致力於滿足電子設計方案交流的需求,藉由更多的溝通與方案搜尋,幫助工程師以更快速度完成產品的開發。
精品文章推薦/精品下載推薦
發表新主題  收藏 列印 推薦到我的家族 
問題:

新手EE對於GPIO的疑問

發表時間::2014/6/22 下午 8:54
 

作者: 1267414669358

等級: 鐘點工讀生

積分: 109分

發送消息

查看用戶的所有發言

大家好,我當EE才剛過3個月,最近接到一個案子是SERVER,由好幾張板子組成,我負責的板子有顆MCU,裡面有GPIO要使用,公司的人大多很忙,沒時間指導我,所以有幾個問題想請教大家,希望大家幫我解惑
1. 如果IO PORT設為GPI,是不是代表外部需要一個PULL UP或PULL DOWN,因為需要一個位準告訴IC 避免誤動作
2.如果IO PORT設為GPO,是不是代表外部不需要PULL UP或PULL DOWN,因為位準是內部IC提供的
3.現在我使用的這顆MCU,是當IO PORT設為GPI時,內部有PULL UP,設為GPO時為OPEN DRAIN,那照這樣看來,我是不是當IO PORT設為 GPI時,我就不需要外加PULL UP,因為內部有PULL UP 了,當IO PORT設為 GPO時,因為是OPEN DRAIN,所以必須外加PULL UP
4.是不是如果某個IO PORT我們EE定義成active low,就代表外部要PULL UP,因為這樣才拉得下來,如果某個IO PORT我們EE定義成active high,就代表外部要PULL DOWN,因為這樣才拉得上去
5.舉個例子,某個IO PORT是要拿來控制LED,我先把它定義成active high,而且是GPO,那這樣看起來既然是active high,我外部就需要加PULL DOWN,因為這樣才拉得上去,也可以避免誤動作,但GPO不是不需要PULL UP或PULL DOWN的嗎? 因為位準是內部IC提供的? 但我這顆MCU的SPEC是寫當IO PORT設為GPO就為OPEN DRAIN,那OPEN DRAIN不就是外部需要加PULL UP嗎? 那外部PULL UP之後,這個PORT不就一直為high,那LED不就一直亮著,firmware怎麼把它拉下來呢? 這樣到底是要PULL UP還是PULL DOWN,我都搞混了,firmware又是如何知道我們EE是定義哪個IO PORT是active high或active low呢? EE在畫這方面的線路時,active high,active low,PULL UP,PULL DOWN,GPI,GPO,OPEN DRAIN, internal pull up,push pull這些之間的關係有一定的規則搭配讓EE依據這些規則來畫線路嗎?
謝謝大家
1267414669358 編輯於 2014/6/22 下午 9:36
引用本留言 回覆主題 關注  鮮花 (
2
)
臭雞蛋 (
0
)
推薦閱讀 : LC電路
第1樓

回覆主題:新手EE對於GPIO的疑問

發表時間::2014/6/30 下午 9:18
 

作者: eric

等級: 鐘點工讀生

積分: 4分

發送消息

查看用戶的所有發言

先說說前三個問題 首先GPIO在init時大多先訂為INPUT MODE所以如不考慮成本,不論設為I/O都應加電阻以保INIT時之安全
引用本留言 回覆主題 鮮花 (
0
)
臭雞蛋 (
0
)
推薦閱讀 : 我現在有個電子設計要做..被音頻接收電路難到了..
第2樓 回覆主題:新手EE對於GPIO的疑問 發表時間::2014/7/13 下午 2:22
 

作者:遊客1086

目前的MCU,GPIO 基本上都有內部可規劃的Pull high/low resistor.可以給firmware engineer設定。要外部再使用外加電阻的情況,有幾個可能:1)內部可提供流入/流出的電流不足,沒辦法將電位維持在正確準位時。2)該Pin是設定pin用來讓MCU知道,設計者要的組態。3)output pin組態是open drain或open collector 連接線路上一定要有一個pull high 電阻,可以在自己這邊或其他共同連接那邊。 output 是push-pull組態不需外加pull high/low, fanout不夠時,再加buffer. MCU 要控制的週邊的Active high/low,只是告訴firmware engineer如何控制它們。firmware programer自己會決定用output的那一種組態,push-pull或open drain 你只要跟firmware engineer 搞清楚不要接到沒有support要的組態的port就好了。 設定MCU 的 configuration pin,就按照建議Active High/Low (或許要分別加 pull high/low,也有pull high要加,pull low不加,看個別device規定) 線路畫完後,跟firmware 一起review MCU相關線路。就可以了。
引用本留言 回覆主題 鮮花 (
0
)
臭雞蛋 (
0
)
推薦閱讀 : LC電路
第3樓 回覆主題:新手EE對於GPIO的疑問 發表時間::2014/9/19 下午 12:10
 

作者: Jackeer

等級: 鐘點工讀生

積分: 112分

發送消息

查看用戶的所有發言

1. 如果IO PORT設為GPI,是不是代表外部需要一個PULL UP或PULL DOWN,因為需要一個位準告訴IC 避免誤動作?

答:你要看你的 mcu spec 的說明,如果已經有 pull up 的話就不必•

2.如果IO PORT設為GPO,是不是代表外部不需要PULL UP或PULL DOWN,因為位準是內部IC提供的?

答:沒有什麼內部位準那麼複雜的說法... io 都是透過 vcc 提供 io 電流的 ic 內外都一樣,要看 spec 上的電流可以最大多少,和單 pin 可提供多少,有的 mcu 內部設定要設 pull up 如 pic 系列的,8051 則不必額外設定 io 與 pull up,i/o 的預設值都可以 pull up 看你要預設是 high 或是 low•

3.現在我使用的這顆MCU,是當IO PORT設為GPI時,內部有PULL UP,設為GPO時為OPEN DRAIN,那照這樣看來,我是不是當IO PORT設為 GPI時,我就不需要外加PULL UP,因為內部有PULL UP 了,當IO PORT設為 GPO時,因為是OPEN DRAIN,所以必須外加PULL UP?
答:OPEN DRAIN 與 pull up 其實是一樣的電路,對輸入來說就是預設為 hi ,而對輸出來說是由 OPEN DRAIN 來提供輸出電流,ic 本身不提供電流的,就好像你外接 pull hi 電阻一樣的道理,別想複雜•
4.是不是如果某個IO PORT我們EE定義成active low,就代表外部要PULL UP,因為這樣才拉得下來,如果某個IO PORT我們EE定義成active high,就代表外部要PULL DOWN,因為這樣才拉得上去?

答:如果你是 active hi 或是 low 代表的是準位動作,mcu 設為 pull up 就是預設為高準位這樣,感覺沒有太大關聯,而 pull down 或是 pull low 代表預設是 low 準位,沒有提升電阻電路,內外都一樣別想太多...

5.舉個例子,某個IO PORT是要拿來控制LED,我先把它定義成active high,而且是GPO,那這樣看起來既然是active high,我外部就需要加PULL DOWN,因為這樣才拉得上去,也可以避免誤動作,但GPO不是不需要PULL UP或PULL DOWN的嗎? 因為位準是內部IC提供的? 但我這顆MCU的SPEC是寫當IO PORT設為GPO就為OPEN DRAIN,那OPEN DRAIN不就是外部需要加PULL UP嗎? 那外部PULL UP之後,這個PORT不就一直為high,那LED不就一直亮著,firmware怎麼把它拉下來呢? 這樣到底是要PULL UP還是PULL DOWN,我都搞混了,firmware又是如何知道我們EE是定義哪個IO PORT是active high或active low呢? EE在畫這方面的線路時,active high,active low,PULL UP,PULL DOWN,GPI,GPO,OPEN DRAIN, internal pull up,push pull這些之間的關係有一定的規則搭配讓EE依據這些規則來畫線路嗎? 謝謝大家?
答:最後這問題太複雜的,pull up 和 OPEN DRAIN 就是 ic 內部的 io pin 設為多一個提升電阻的電路,你要接什麼 led 其實原理都一樣,別想太多,加油...
Jackeer 編輯於 2014/9/19 下午 12:19
引用本留言 回覆主題 鮮花 (
0
)
臭雞蛋 (
0
)
推薦閱讀 : 小女子再次跪求 ~大家幫忙~ 現在有個電子設計要做 被音頻接收電路難到了
第4樓 回覆主題:新手EE對於GPIO的疑問 發表時間::2016/3/15 下午 4:36
 

作者: ShontChang

等級: 鐘點工讀生

積分: 102分

發送消息

查看用戶的所有發言

GPIO,通用型之輸入輸出(General Purpose I/O)的簡稱,功能類似8051的P0—P3,其接腳可以供使用者由程式控制自由使用,PIN腳依現實考量可作為通用輸入(GPI)或通用輸出(GPO)或通用輸入與輸出(GPIO),如當clk generator, chip select等。 既然一個引腳可以用於輸入、輸出或其他特殊功能,那麼一定有暫存器用來選擇這些功能。對於輸入,一定可以通過讀取某個暫存器來確定引腳電平的高低;對於輸出,一定可以通過寫入某個暫存器來讓這個引腳輸出高電平或者低電平;對於其他特殊功能,則有另外的暫存器來控制它們 。 OPEN DRAIN就是外部需要加PULL UP,Pull High的電壓準位就是等同IO High的準位
引用本留言 回覆主題 鮮花 (
0
)
臭雞蛋 (
0
)
發表新主題


上一則    有一个智能&#...
快速回復
用戶名:
遊客(您目前以遊客身份發表,請登陸 | 註冊)
標題: *
評論: *
驗證碼:  * 
維護專業、整潔的論壇環境需要您的參與,請及時舉報違規留言,如果舉報屬實,我們將給予相應的積分獎勵。
謝謝您的熱心參與!
返回設計方案交流 | 返回自由討論
本論壇僅陳述專家或個人觀點,並不代表電子工程專輯網站立場。
《電子工程專輯》雜誌免費申請
這是一本專為電子產業設計工程師提供的刊物,只要完整填寫申請表並成功提交,便有機會免費獲得。
我要申請
返回論壇首頁
返回頁首