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

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 電容觸摸MSP430電路與LED驅(qū)動(dòng)電路設(shè)計(jì)講解

          電容觸摸MSP430電路與LED驅(qū)動(dòng)電路設(shè)計(jì)講解

          作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò) 收藏
            MSP430系列單片機(jī)低功耗和外設(shè)模塊的豐富性而著稱,而針對(duì)電容觸摸應(yīng)用,MSP430的PIN RO 電容觸摸檢測(cè)方式支持IO口直接連接檢測(cè)電極,不需要任何外圍器件,極大的簡(jiǎn)化了電路設(shè)計(jì),而本設(shè)計(jì)文檔中使用的MSP430G2XX5 更支持多達(dá)2個(gè)IO口,可驅(qū)動(dòng)24個(gè)以上的LED,達(dá)到理想的顯示效果。

            電容觸摸實(shí)現(xiàn)原理

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

            MSP430根據(jù)型號(hào)的不同支持多種電容觸摸檢測(cè)方式,有RC 震蕩、比較器、PIN RO,本設(shè)計(jì)使用的是PIN Relaxation Oscillator 方式,原理如圖,芯片管腳內(nèi)部檢測(cè)電路由施密特觸發(fā)器、反向器,以及一個(gè)電阻組成,震蕩信號(hào)經(jīng)過(guò)施密特觸發(fā)器變成脈沖信號(hào),再通過(guò)反向器反饋回RC 電路,通過(guò)Timer_A對(duì)施密特觸發(fā)器的輸出進(jìn)行記數(shù),再通過(guò)設(shè)置測(cè)量窗口Gate 獲得記數(shù)的結(jié)果。當(dāng)手指觸摸電極,電極上的C 產(chǎn)生變化,導(dǎo)致震蕩頻率改變,這樣在定長(zhǎng)的測(cè)量窗口就能獲得不同的記數(shù)結(jié)果,一旦差值超過(guò)門限,結(jié)合一定的濾波算法判斷就可以觸發(fā)觸摸事件。

            PIN RO 原理圖

            電路設(shè)計(jì)

            MCU 通過(guò)一個(gè)5V 轉(zhuǎn)3.3V 的LDO 給VCC 供電,使用LDO的目的是為了保證電源的穩(wěn)定,讓觸摸電路在檢測(cè)信號(hào)時(shí)不會(huì)因?yàn)殡娫吹脑肼暜a(chǎn)生過(guò)大的信號(hào)偏差。電極上串的電阻作為ESD保護(hù)器件,如果在產(chǎn)品結(jié)構(gòu)設(shè)計(jì)合理的情況下可以省去。電路中預(yù)留了UART 口與主控系統(tǒng)通訊。

            由于每一個(gè)LED的電流在10mA左右,24個(gè)LED如果同時(shí)亮就有240mA,無(wú)法通過(guò)MCUIO口直接驅(qū)動(dòng),在每個(gè)LED 上加一個(gè)三極管以及限流電阻,實(shí)現(xiàn)24路LED 的控制。



          評(píng)論


          技術(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); })();