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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 基于ATmega48的微功耗電刺激器的設計

          基于ATmega48的微功耗電刺激器的設計

          作者: 時間:2010-05-14 來源:網絡 收藏

           3.2 脈沖發(fā)生電路

            通常具有一定驅動功率的脈沖輸出電路首先產生脈沖波形,再將脈沖波形用集成的功率放大器作驅動放大,放大電路工作在線性放大區(qū)。這種放大電路必須具有靜態(tài)電流來維持合適的靜態(tài)工作點,功耗較大。為了降低流,本系統(tǒng)的電器用開關方式生成脈沖。單片機及其脈沖發(fā)生器電路原理如圖3所示。J1是電極的接線端子,OC0A是V定時器0的PWM輸出口,根據實驗的要求調節(jié)輸出強度。用PWM輸出以及R6、R7、C6和C7組成的濾波器調節(jié)U3A正相的輸入電壓。運放U3A接為正相放大方式,放大倍數由R8和R9決定。Q2為功率放大三極管,增大輸出的驅動能力。Q3工作在開關狀態(tài),用于控制輸出脈沖的寬度和頻率,當V的9腳是高電平時,Q3導通,輸出刺激脈沖;導通500μs后,V的9腳變到低電平,Q3關閉,脈沖結束;按10Hz的頻率循環(huán)往復。

          基于ATmega48的微功耗電刺激器的設計

            4 功能實現及軟件編程

            ATmega48有131條指令,大多是單機器周期指令,指令系統(tǒng)非常豐富。ATmega48在指令時很好地考慮到C語言的操作模式,用C語言編程可以得到很高的代碼效率。ATmega48屬于AVR系列的單片機,常用的用于AVR單片機開發(fā)的C語言有兩種:AVR-ICC和AVR-GCC。AVR-ICC是商業(yè)的AVR的C語言集成化開發(fā)工具(IDE),界面友好,使用簡單,有生產和代理商很好的技術支持。而AVR-GCC是依靠網絡流行的公開源代碼的自由軟件,可以從網上(http://www.avrfreaks.net)免費下載編譯軟件和各種工具軟件。由于AVR-GCC有大量的高手參與開發(fā)和眾多網上參與者的測試,其軟件的更新速度和代碼效率以及軟件缺陷率的排除都非常出色。但是AVR-GCC是由UNIX平臺上移植過來的,保留了類似UNIX的操作方式,對于不熟悉UNIX的WINDOWS用戶,其使用時入門很困難,只有熟練使用后才能感到其功能的強大。在http://www.avrfreaks.net網上有關于AVR-GCC的論壇,使用中的許多問題都可以在論壇上得到幫助。由于AVR-GCC具有低廉的使用成本和出色的功能,所以本系統(tǒng)選用AVR-GCC作為編程工具。

           電刺激器在工作的間歇期進入休眠狀態(tài)。ATmega48有6種休眠方式,每一種方式休眠的部件不相同,休眠后單片機的功耗也不同。由于電刺激器在休眠時要求定時重新喚醒進行工作,必須保留一個定時器的工作。因此選用的休眠方式為IDLE,在IDLE方式下定時器2仍然可以工作。以下是休眠部分的程序。

            set_sleep_mode(SLEEP_MODE_IDLE); //設置休眠方式為IDLE
            SMCR |= _BV(SE);            //允許休眠
            _asm_ _volatile_ ('sleep' 'nt' :: ); //進入休眠
            SMCR = ~_BV(SE); //從休眠中喚醒,進入工作狀態(tài),不允許休眠

            定時器2用于對休眠期的時間間隔計時。t2_init_idle(void) 是進入休眠狀態(tài)前初始定時器2的程序,SIGNAL(SIG_OVERFLOW2)是休眠狀態(tài)下定時器2的中斷服務程序。每1分鐘定時器2將會產生溢出中斷,喚醒單片機。

            void t2_init_idle(void){ //定時器2進入休眠狀態(tài)前的初始化
            CLKPR=(1<<CLKPCE); //允許改變系統(tǒng)時鐘;進入休眠狀態(tài)前改變系統(tǒng)時鐘
            CLKPR=0x05; //系統(tǒng)時鐘的分頻比例為32,系統(tǒng)時鐘為4kHz
            TCCR2A=0; //定時器/計數器2工作于定時器方式
            TIMSK2=(1<<TOIE2); //允許定時器2溢出中斷
            TCCR2B=0x07; //定時器2時鐘分頻比例為1024
            TCNT2=32; //定時器2產生1分鐘定時的初始值
            }
            SIGNAL(SIG_OVERFLOW2){ //定時器2溢出的中斷服務程序
            TCNT2=32; //重置定時器2產生1分鐘定時的初始值
            min++; //分鐘計數
            }

            當喚醒5次,即休眠5分鐘后,單片機重新進入喚醒工作狀態(tài)。在喚醒工作狀態(tài)下,使用定時器2控制脈沖的寬度和頻率,需要定時器2重新初始化,并將系統(tǒng)時鐘恢復到128kHz(程序略)。

            設置定時器0工作于PWM輸出方式,用于控制刺激強度。

            void t0_init(void){ //定時器0初始化為PWM輸出
            TCCR0B=(1<<CS01); //定時器0時鐘分頻比例為8
            TCCR0A=(1<<WGM00)|(1<<WGM01); //快速PWM方式
            TCCR0A|=(1<<COM0B1); //符合時為低電平,峰值變高
            OCR0B=outv; //輸出電平用OCR0B控制
            }

            系統(tǒng)總程序流程如圖4所示。

          基于ATmega48的微功耗電刺激器的設計

            電刺激實驗器的開發(fā)是為了植入大鼠體內,研究電刺激對癲癇抑制的機理。本研究開發(fā)的電刺激實驗器整體結構尺寸為Φ17mm(直徑) x 7mm(厚)。脈沖發(fā)生放大電路用開關方式實現,大大降低了系統(tǒng)的功耗。采用ATmega48單片機控制輸出脈沖,精度高、功耗小、工作可靠、可以連續(xù)工作一個月以上,滿足了實驗的要求。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();