AVRetc の変更点


*AVRにまつわるエトセトラ [#g9b67197]
------
#contents
------
***AVRって何だ? [#t0939885]
AVRという''マイクロコントローラ''に関する説明。~
http://psp.dip.jp/web/upload/attiny2313.jpg

当Wikiでは主に''ATtiny2313''という品種をネタとして扱います。
----
-8ビットCPU
-RISCアーキテクチャー
--多くの命令を1クロックで実行する。
--固定語長(16ビット/命令)(一部の命令に例外有り)
--32本の8ビットレジスタを持つ。
--MIPSのような遅延分岐や遅延ロードは無いので、アセンブラでも組みやすい。
-一次情報源~
http://www.atmel.com/ ~
http://www.atmel.com/jp/products/avr/
-ELM ChaNさんの解説~
http://elm-chan.org/docs/avr.html ~

----

***Z80は知っている。AVRはどこがどう違う? [#k12793b1]
どこが良い?
-圧倒的にSIZE(24){速い}
-Z80は可変語長(1〜4バイト/命令)
-Z80は1命令を4〜20クロック掛けて実行する。
-Z80Aは当時4MHz動作。
-AVRは最高20MHz動作(5V)
-Z80Aの平均CPI(1命令実行に必要クロック数)=6と仮定すると~
AVRの20MHzはZ80AのSIZE(24){120MHzに相当}する。

どこが劣る?
-汎用マイコンではない。
-拡張性がない。
-アドレスバス、データバスが出ていない
--AVRはマイクロコントローラなので、チップ内でほぼすべてが完結している。
--外部バスはない(一部品種除く)
--ATtiny2313に限って言えば、
---命令用フラッシュROM2Kバイト(1Kステップまで)
---データSRAM128バイト
---EEPROM128バイト
---最大18本のI/Oポート
-命令書き換えとかいわゆる実行ファイルの読み込みという概念がない。
--代わりに、フラッシュROMに書き込んでおけば消えない。


----
***MicroChipのPIC 16F84Aは知っている。ではAVRの良いところは? [#n83f352e]
-32本の汎用レジスタを持つ。
-命令がRISC風で、命令直交性がありプログラムしやすい。
-なんと言っても''GCC''が使える。~
SIZE(24){全部アセンブラで書かなくていいんだ}
-PICは1命令あたり4クロックで実行するので、普通に考えて''4倍速い''。
-しかしレジスタ数が多いのでその分も考慮するともっと速いコードが書ける。
-とっても''安い''
--秋月の通販でたったのSIZE(24){120円}だ!

----
***いや、CPUってPentiumとかアスロンくらいしか知らんのだが・・・ [#j294d7c6]
-Pentiumを半田付け手配線してシステム作れますか?
-出来合いのマザーボードにPentiumなんとかを挿したとしましょう。
-[[BIOS書けますか:http://www.linuxlabs.com/linuxbios.shtml]]?
[[ブートローダー書けますか:http://www.tsden.org/takamiti/extipl/index.html]]?
[[OS書きますか:http://wiki.osdev.info/?projects]]?~
いやそんなもん普通書かんよ。~
[[ゲイツOS:http://ja.wikipedia.org/wiki/Microsoft_Windows_XP]]買ってくるだろ普通。

つまり、こういうことだ。
-CPUを理解して、プログラムしたいなら、
-いきなりPentiumのブートコードなんか書かずに
-もっとシンプルなPICとかAVRがいいんじゃねー?

Z80でもいいけどね。もう終わっとるんよ。20世紀にね。
-Windows上だけのプログラムなんかではCPUの理解には到達できんと思う。
-便利ではあるが、APIの内側は全部ブラックボックスだ。CでゴリゴリやってもExcelのVBA書いているのと本質的に変わらん。

----
***いったい、そんな高速でちっぽけなCPUを何に使うのだ? [#g85508b1]
-使い道はあなた次第だが
-とりあえず、%%AVR-USB%% (VUSBに改名されました)で遊ぶなんていうのはどうだろう。
-そのまえに、書き込み器(AVRライタ)を作る必要がある。
-AVRライタ~
http://elm-chan.org/works/avrx/report.html

***[[HIDasp]]を作ってみる [#y5f8fa10]

----
*ATtiny2313の遊び方指南 [#k5875d76]

http://psp.dip.jp/web/upload/attiny2313.jpg

-(1)とりあえず[[HIDaspxライター>HIDaspx]]を作ります。

http://psp.dip.jp/web/jpg/wsn216.jpg   ((画像は [[wsnak:http://www.wsnak.com/]] 様が販売している [[WSN216基板:http://www.wsnak.com/kit/216/index.htm]]  ))


-(2)[[v-usb:http://www.obdev.at/products/vusb/index.html]]のsample applicationやcommunity projectを参考に何かUSBデバイスを作ってみることが出来ます。

http://www.obdev.at/Images/vusb/vusb-teaser.png

http://www.obdev.at/products/vusb/projects.html


-(3)[[KeyBoardマニア]]を参考に、電子楽器を作ってみましょう。


-(4)[[デジタルテスター:http://psp.dip.jp/web/log/2009-03.html]]を参考に、電圧計、抵抗計などを作ることが出来ます。
-(4)[[デジタルテスター:http://psp.dip.jp/web/log/2009-03.html]] [[HIDtester]]を参考に、電圧計、抵抗計などを作ることが出来ます。

http://psp.dip.jp/web/jpg/rc-meter.jpg

-(5)[[PICライター>PICspx]] や [[ARMライター>hid_blaster]]を作ることも出来ます。



わずか1024ステップ、RAM128バイトしかないATtiny2313だけでこれだけのものを作ることができます。




~
~
~
~
----
*その他制作物一覧 [#od12c8a7]

#include(制作,notitle)

~
~
~

----
#ref(http://psp.dip.jp/counter/dream.cgi?id=FrontPage&name=a.gif);