<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 USB設(shè)計(jì)--硬件篇

          STM32 USB設(shè)計(jì)--硬件篇

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          STM32芯片內(nèi)部集成了USB外設(shè),大大減輕了USB電路的設(shè)計(jì)負(fù)擔(dān),只需設(shè)計(jì)USB接口電路,就可以實(shí)現(xiàn)基于STM32芯片的電路板的USB通信設(shè)計(jì)。(本文將具體講述基于STM32F103RBT6芯片的USB設(shè)計(jì))本文為硬件篇。

          首先,我們來認(rèn)識一下STM32F103RBT6芯片。 其中USB相關(guān)引腳為PA11(D-),PA12(D+)引腳。就是通過這兩個引腳實(shí)現(xiàn)STM32F103RBT6的USB通訊。

          本文引用地址:http://www.ex-cimer.com/article/201612/325065.htm

          圖1 STM32F103RBT6芯片引腳圖

          其次,我們簡單來認(rèn)識一下USB的構(gòu)造(以A型公口、B型母口為例)


          圖2 USB A型公口

          圖3 USB B型母口

          表1 USB接口引腳說明

          1 VCC(+5VDC)

          2 D-(data-)

          3 D+(data+)

          4 GND(Ground)

          (5.6引腳為外殼引腳、起固定和減低干擾作用)

          最后,我們來看看USB接口電路的設(shè)計(jì)。


          圖4 USB接口電路

          其中:

          1.USB上拉電壓接在D+線上,所以本設(shè)計(jì)USB實(shí)現(xiàn)全速通訊

          1.USBLC6-2P6是一個ESD芯片,為了防止USB接口受到雷擊時毀壞主芯片。

          2.Q1為一個開關(guān)芯片,可以為mos管、或三極管。本人采用nmos管時,DS間有一個0.7V的壓差,所以USB的上拉電壓為2.5V左右,雖然也能用,但畢竟不完美。我不知道是不是所有Mos管都這樣。下一步我將換成偏置電阻晶體管試試,效果將在后面的日志中描述。當(dāng)開關(guān)開啟時,PC開始枚舉該USB設(shè)備。

          3.USB的VCC引腳可以接板上電源、也可以不接。當(dāng)不接時,PC機(jī)為USB接口供電,在本設(shè)計(jì)中使用了一個跳線來決定是否接板上電源。

          總結(jié):

          基于STM32F103芯片的電路板實(shí)現(xiàn)USB功能的電路是很簡單的,也可以在網(wǎng)上找到很多資源。希望本文能對正在設(shè)計(jì)相關(guān)電路的朋友有所幫助。



          關(guān)鍵詞: STM32USB設(shè)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();