最近在學習soc設計的知識,看到很多芯片都通過APB總線接了個GPIO,請問這個gpio具有什么功能?有什么用途?
根據我的了解 gpio可以配置為input、output。
作為input的時候,通過gpio_in 進來的資料去哪里了呢?
作為output的時候,輸出的資料從哪里來呢?
另外gpio里的中斷模塊可以根據gpio_in產生中斷,莫非gpio的另一用途是根據輸入信號產生中斷信號?
請各位大佬指教
uj5u.com熱心網友回復:
GPIO是通用輸入輸出引腳,通常用于控制外設,舉個例子,輸入可用于按鍵,輸出可用于指示燈。soc通過暫存器操作GPIO,暫存器某位置1,輸出引腳輸出高電平,置0,輸出低電平;輸入引腳高電平,暫存器某位為1,SOC可通過查詢得到輸入引腳的值。得到輸入引腳的值還可以通過中斷,中斷可以使soc快速回應輸入引腳的電平變化。uj5u.com熱心網友回復:
可不可以這樣理解:輸入可用于按鍵:芯片pad接按鍵,pad上的資料通過gpio_in 進入gpio IP, 然后通過apb總線將gpio IP 內的資料讀入CPU。輸出可用于指示燈:芯片pad接指示燈,cpu通過apb總線將資料寫進gpio IP,然后資料通過gpio_out進入pad。
以上論述是否正確?請指點
另外,根據輸入引腳值產生中斷時,apb總線讀出的時中斷資訊還是引腳值?
uj5u.com熱心網友回復:
對的,GPIO跟暫存器值對應,可以CPU讀取暫存器得到輸入引腳的電平,也可以忽視,CPU向暫存器寫值,輸出引腳產生相應的電平中斷。是發給CPU的資訊個件,例子,設定引腳高電平中斷,當該引腳高電平時,CPU會執行對應中斷函式,在中斷程式里可以寫入在該情況下想要執行的操作uj5u.com熱心網友回復:
對的,GPIO跟暫存器值對應,可以CPU讀取暫存器得到輸入引腳的電平,也可以忽視,CPU向暫存器寫值,輸出引腳產生相應的電平。中斷是發給CPU的資訊舉個,例子,設定引腳高電平中斷,當該引腳高電平時,CPU會執行對應中斷函式,在中斷程式里可以寫入在該情況下想要執行的操作uj5u.com熱心網友回復:
最重要的作用還是輸入的中斷,用作檢測輸入狀態轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/111377.html
標籤:硬件設計
