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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ATmega16L的ISP技術(shù)在汽車(chē)電子差速控制中的應(yīng)用

          ATmega16L的ISP技術(shù)在汽車(chē)電子差速控制中的應(yīng)用

          作者: 時(shí)間:2013-03-06 來(lái)源:網(wǎng)絡(luò) 收藏
          本系統(tǒng)設(shè)計(jì)的ISP接口區(qū)別于通常將TTL電平轉(zhuǎn)換成RS-232電平的做法,如圖2所示,利用該電路圖可以方便的實(shí)現(xiàn)電動(dòng)車(chē)系統(tǒng)與PC機(jī)的通信。通過(guò)計(jì)算機(jī)并口與單片機(jī)SPI口連接,為了保護(hù)計(jì)算機(jī)并口,需要增加1片74HC244作為隔離。


          圖2 在線下載ISP硬件原理圖4.2 Atmega16L微控制器的實(shí)現(xiàn)

          (1) Atmega16L在系統(tǒng)串行編程步驟

          ●在XTAL1和XTAL2之間連接一個(gè)8MHz的晶振;在VCC與GND之間加上電,同時(shí)將RST和SCK設(shè)置為低電平。
          ●等待至少20ms,由MOSI引腳送入串行編程允許命令。
          ●Flash是按頁(yè)編程,一次操作對(duì)應(yīng)一個(gè)頁(yè)編程。發(fā)送寫(xiě)/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時(shí)鐘的上升沿鎖定。
          ●如果上一步是寫(xiě)命令,至少等待4.5ms。
          ●需要時(shí)重復(fù)③、④兩步。
          ●將RESET引腳設(shè)置為高電平,芯片開(kāi)始執(zhí)行程序。

          (2) Atmega16L串行編程命令

          Atmega16L串行編程命令表附表所示。

          附表 Atmega16L串行編程命令

          注:a=高位地址,b=低位地址,H=0(低字節(jié))/L(高字節(jié)),o=數(shù)據(jù)輸出,i=數(shù)據(jù)輸入,x=任意

          (3) Atmega16L串行編程時(shí)序圖

          Atmega16L串行編程時(shí)序圖如圖3所示:


          圖3 Atmega16L串行編程時(shí)序圖5 結(jié)束語(yǔ)

          的應(yīng)用,為汽車(chē)電子系統(tǒng)的研制,工業(yè)現(xiàn)場(chǎng)的維護(hù)、升級(jí)過(guò)程提供了便利,使系統(tǒng)成本顯著降低。本系統(tǒng)舍去了以往通過(guò)PC機(jī)的串口對(duì)單片機(jī)進(jìn)行編程的模式,改用計(jì)算機(jī)并口與單片機(jī)SPI口連接,提高了數(shù)據(jù)傳送速度和系統(tǒng)的可靠性。(end)


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();