2008年12月5日 星期五

MCU -- AVR ATmega64

上次介紹過AVR的蝴蝶套件

這次來談談我最近在忙的板子吧!!



1977649484

ayu大大問我說

我是不是打算用AVR做機器人呀?!

或許會吧!

不過這一片的功能並不是機器人用途的唷~~

是公司裡目前要完成系統的一小部分

名稱是八通道溫度量測器



板子偏右側所卯上的最多腳位的IC

就是ATmega64的MCU

腳位數量剛好就是64隻~~~



由於目前還在測試階段中

所以先賣個關子

但大概可以提一下的是

上面有一個20bits的AD

量電壓目前可以準確到的100uV

換算成溫度

如果選用的感測電阻夠準

溫度是可以準確到0.1C以內的

未來上市還請大家多多捧場~~





1977649485

這個就是傳說中的mkII

早期想學就是沒有這玩意

所以一直都只是看看

現在有工具了

總算可以好好玩一下~~~





話說AVR已經在MCU的世界中行之有年了!!

很多對51失望的人

轉用的MCU中以AVR最為普遍

因為不論在硬體空間

或是IO與中斷的規劃

都超越51太多太多了!!!





可惜的是

在台灣一直沒有正式支援

賣MCU的經銷商很多

卻沒有專屬的FAE或是原廠的工程師在推

會使用AVR的人

多半是已經有MCU底子之後

再自己摸索跳過去的!!!





而AVR之所以會在台灣流行

原因跟Linux一樣

因為它的程式編輯工具光是free的就超好用

(AVR studio + WINAVR)

只要有C概念的人就可以輕鬆上手

如果能熟悉組語

看到精簡的程式碼與強大的硬體支援

沒有不心動的啦!!!

而且連USB的韌體程式

都有高手free丟在網路上供人下載

不需要特地選用搭配USB功能的MCU

只要程式碼一掛就能擁有USB

這就是AVR最讓人驚豔的地方~~~

底下是參考連結

http://www.obdev.at/products/avrusb/index.html







價格上

AVR也是很有競爭性的

只是定位上比較模糊

因為效能上跟DSP還有一段差距

可是拿來當MCU又覺得有點大材小用

或許是我所應用的場合沒有很迫切需要AVR的地方吧

真正用過之後

就是讚不絕口

好用!!!





不過AVR還是有些缺點的

因為系統比51複雜得多

很多設定對剛要使用的人來說

是一個不小的門檻

光是程式編輯界面

就一大堆設定搞不清楚

更別提AVR的硬體設定

整個就是亂成一團





好在有一套軟體叫ICCV7

它可以快速幫你產生硬體設定檔

只要開啟Application Builder(暫時翻譯做硬體設定精靈)

然後從晶振一路勾選到Timer, Uart

再按OK

所有的暫存器你通通不用去查datasheet

它就全部幫你設定好產生對應的程式碼

當然

如果你要讓設定變得有彈性

還是得自己K一下datasheet比較好

但對一個剛要上手的使用者來說

這樣的功能就太好用啦~~~





若您用過其它的MCU

改用AVR只需不到三天的時間

就可以開始開發您的產品了!!!

(我大概花了一天半....)

當然您還是要有一些程式範例可以參考

瞎子摸象一定是會浪費不少時間的!!!

10 則留言:

  1. hi nichal,

    請問您所說的usb程式到那裏看啊? 還有用那一顆型號的avr晶片來用呢?用c來寫的嗎?有沒有組語的範例呢?



    謝謝喔,不能複製網址可能很傷腦咧。

    回覆刪除
    回覆
    1. AVRUSB首頁
      http://www.obdev.at/products/avrusb/index.html

      目前有一個KC學院
      他所做的燒錄器就是以這個架構完成的
      http://www.off.tw/modules/newbb/

      刪除
  2. 推薦AVR 大陸網站 www.ouravr.com



    裡面還滿多資料的!!~大大應該可以在裡面挖到很多寶!!~

    回覆刪除
  3. 之前覺得看板主說台灣買AVR蝴蝶很貴,

    現在懂了, 原來是台灣沒有正式代理商啊..



    順便提供一點資訊,

    AVR最好用的是主要用C開發,

    (因為內建memory夠大)

    用組語, 應該是用到90-10執行效率的刀口上,

    相對PIC的小容量, C就不是最佳的解



    還有一點,

    開發工具除了他們的winavr外,

    也提供gcc tool-chain 的 avr板,

    所以, 很容易和其他的tool 整合,

    像我就把 avr-gcc的toolchain 和 eclipse整在一起,

    其他開發ARM或embedded linux的東東,

    也用eclipse的環境,



    所以, 所有人都用一樣的的開發環境,

    可以做不同的專案和語言,

    整體開發的效率就高了,



    不過 debug 我還是喜歡 ddd,

    eclipse的整合還不太會...

    回覆刪除
    回覆
    1. 感謝大大的分享
      想請教一下大大您有遇到過AVR的reset問題嗎?
      您是用什麼方法解決的呢?

      這個問題困擾我很久了
      網路上所提到的reset方式多半也都試過
      但MCU就是會看心情有時候願意reset
      有時又不願意.....
      真是ooxx

      刪除
  4. 不好意思,我只是一個小玩家而已,

    不是開發工程師,

    台灣的韌體工程師實力是超強的,

    你們搞不定, 大概別人也搞不定... 哈



    我主要是用Arduino作小作品,

    偶爾做做PIC的作品,

    Arduino的ATmega168並沒有你講的不穩定現象,



    這裡的 hobby 市場好像沒看到很多51的書,

    不是PIC就是Ateml,

    要不然就是Basic Stamp 或是 Arduino (還是PIC或Ateml),

    所以, 20美金的 avr butterfly 賣到斷貨... -_-



    另外, 我蠻喜歡你這個網站,

    原本對作機械結構部份有點疑慮,

    看了你的日載進程就比較敢去嘗試看看...

    現在比較想作人型頭部表情的部分..



    恩, 同好們,彼此加油吧...

    回覆刪除
    回覆
    1. 加油加油!!
      我也想看看大大您的作品哩~~~
      有個人的部落格或是論壇嗎?
      *^_________^*

      刪除
  5. zZ 沒想到這裏會碰到用mega系列的玩家 o0o

    上面大大遇到reset問題

    是指哪方面啊?

    要用code reset就用watch dog啊,用硬體就加reset IC

    目前還沒碰過reset踢不動的情況。

    否則不能reset怎麼做boot-loader啊 你說是吧!

    回覆刪除
    回覆
    1. 就是電源供應後有時可以reset起來
      有時又不行~~~

      有加reset IC
      也確認過reset 的時間很短
      但就是會reset不起來

      而且還不是每一個都會這樣
      反正就是會reset不起來的就常常會reset不起來
      如果不會的就不會~~~

      AVR就是因為這樣一直不得我緣
      暈~~~~

      刪除