Re: [問題] 從軟體動作到硬體訊號

作者: lihgong ( )   2020-03-24 18:03:01
1. 首先是寫記憶體某個地方,會讓CPU對bus發出write transaction (當然可能不是真的
bus,這裡就簡單一點)
2. bus上會掛很多peripheral,比如timer,gpio,每個都會監看特定區域的寫入(或讀
取),如果是裝置在意的,就會去看看CPU要他做什麼
3. 寫入某個address,就會有write request,這時候peripheral可以放上真的flip-flops,讓這個address是可以讀寫;也可以不放,這樣就是write only,事後無法讀回剛剛寫
的數值
4. 簡單一點,有顆32bit flip-flops兜出來的register,裡面儲存你寫入的數值。所以
現在IC某處有一排flip-flops,存下你寫入的數值。你可以想像32bit對應32pins
5. 接下來有個GPIO output線路,裡面有一堆複雜的設定,比如pull up/pull down/ ope
n drain。假設是push-pull,這個flip-flops的線就拉到這個輸出線路,最後就到達outp
ut pin,你就可以透過電錶量到電壓了
以上是話唬爛的解說,我不是IC designer,如果說錯請見諒
※ 引述《james732 (james732)》之銘言:
: 我的工作是在MCU上寫code
: 目前知道程式跟硬體打交道都是透過硬體暫存器
: 通常暫存器會mapping到某個memory address
: 譬如我把memory address的0x1000的Bit0寫成1
: MCU的某一根GPIO就會輸出High訊號
: 但我一直不懂的是,從寫入到真正輸出High這段過程
: 硬體實際上是怎麼做的
: 它怎麼知道我有寫,又怎麼知道要怎麼輸出High
: 如果想針對這部份(晶片內部的行為)做更深入的學習的話
: 有什麼關鍵字/什麼參考資料可以去閱讀呢?
: 因為自己是軟體背景,對於晶片的動作覺得很神奇又很好奇XD
作者: james732 (好人超)   2020-03-24 22:53:00
謝謝你的說明,好像有點概念了

Links booklink

Contact Us: admin [ a t ] ucptt.com