以前は電子工作と言えば標準ICを組み合わせて回路を作るという感じでしたが、、マイクロコントローラとPLD(Programmable Logic Devices)の出現により標準ICで作ることは完全に過去のものとなりました。標準ICが使われる分野は現在ではほぼインターフェイス周りだけとなり入手不能となったICもかなりあります。趣味の工作の分野ではほとんどマイクロコントローラだけで対応可能です。よほど高速を必要とする特殊なもの以外PLDも必要ありません。

で、私も趣味で使うマイクロコントローラの選定を考え始めたわけですが、メジャーなマイクロコントローラとしてはPICがありました。いろいろネットで調べているうちにAVRというのもあることが判明。以下のようなことを比較して、

  • PICのアーキテクチャーは小汚い。AVRのはそこそこまとも。

PICのアーキテクチャーを見たとき連想したのはIntel 86系のもので、AVRのものはからはMotorola 68系を連想しました。私はアセンブラ人間なのでアーキテクチャーがきれいであることは死活的に重要です。86系みたいなCPUをアセンブラでプログラムするのは私には趣味になりません。拷問です。

  • PICはEEPROM搭載のチップが限られていたが、AVRは全チップ搭載。

今は知りませんが以前はそうでした。プログラムの書き換えに紫外線ランプを使うなどと言うのは論外です。

  • AVRはISP(In System Programming)が可能。

ターゲット基板にチップを差し込んだままプログラム変更できるのはとても便利です。今はPICでもできるかもしれませんが、PICには興味をうしなったので調べていません。

  • AVRは内部クロック=外部クロック、PICは外部クロックは内部クロックの4倍の周波数。

趣味でいいかげんに作る基板上にあまり高い周波数の線を作りたくありません。

  • PICはメジャー、ARVはマイナー。

私はひねくれ者なのでメジャーなものは嫌いです。マイナーなものが好きです。(ただ単に人がやらないことをしたがるだけ。)Gゲージの日本型などマイナーの中のマイナーですね。

たぶん最後の理由が一番重要でAVRに決定しました。

Introduction

In old good days, electronic hobby means making circuits by standard IC's. However emerging of micro-controllers and Programmable Logic Devices (PLD) has changed the world permanently. Making circuits with standard IC's has become obsolete now days. Actually manufacturing of many types of standard IC's has been terminated except interfacing IC's. Anyway in most cases in the hobby PLD is not necessary unless very fast responses are required.

So I hunted around micro-controllers in the web for my hobby projects. PIC was found quite popular. I found another newcomer Atmel AVR. I compared both as:

  • PIC's architecture is quite messy. AVR's one is reasonably acceptable.

    I reminded Intel 86 series from PIC's architecture and Motorola 68 series from AVR. I am an assembler man and clean architecture of the CPU is vitally important. Programming 86-like assembler cannot be a hobby for me, it is a torture!

  • PIC had only limited models with EEPROM. All AVR models had EEPROM.

I do not know now, but it was true when I made a research. I do not want to use ultra-violet EPROM eraser to change the program.

  • AVR allows In System Programming (ISP).

    It is very handy you can change the program still the chip stays on the target PC board. It may be available on PIC. However I lost my interest on PIC and have no idea about resent PIC models.

  • AVR's internal clock frequency = external clock frequency. PIC requires 4 times faster external clock than internal clock.

I do not want to run higher frequency patterns on nasty hobby PC boards.

  • AVR was minor, PIC was major.

My tendency is minor-lover. I do not like anything major. As you see Japanese-type G-scale railway model is quite minor.

Probably the last reason affected me most and I decided to use AVR.

開発環境はAtmelのサイトからただでダウンロードできるAVR Studioです。

Development Environment

I use free AVR Studio downloaded from Atmel site.

アセンブラで演算部分を書くのはとても面倒です。で、FastAVRというBasicコンパイラで面倒な部分だけ書いて、コンパイルされたアセンブラコードを貼り付けることを考えています。FastAVRのサイトから100行まで書けるデモ版がただでダウンロードできます。どうせ切り張りとして使うので、100行もあればじゅぶんです。

バグレポート有り。

Basic Compiler

It is quite messy to write calculation parts of the program by assembler. So I am thinking to use a Basic compiler to generate messy parts of the program and combine with assembler code. A free demonstration version of Basic compiler with 100-line limitation is available from FastAVR site.

FastAVR bugs

アセンブラでプログラムするのもいいかげん面倒でいやになってきたので、ただで手に入る唯一まともなコンパイラと思われるWinAVR(GCC)に移行する事にしました(FastAVRはバグだらけなので論外)。Cって嫌いな言語だったので今までほとんど触った事がないですが、仕方ないので一から勉強。こちらからダウンロードできます。
使った感じでは、やっぱり好きになれないな。全然ユーザーフレンドリーじゃないし、バグを作りやすい言語ですね。でもアセンブラに比べれば話しにならないほど楽になりました。できたオブジェクトコードも思ったより小さいし。

初心者の備忘録あり。

Really I feel sick of programming in assembler and think moving to compiler. At the moment free compiler reasonably works well seems WinAVR (GCC). Fast AVR is out of consideration because of its poor quality. I have not liked C language at all. However no choice I have. So I tried WinAVR by studying C language by articles available only free from web.

After trying C compiler for a while, I found still I do not like C so much. However it is much easier than assembler (of course), and object code is much smaller than I expected. I will use WinAVR for future project.

I provided Beginner's Memorandum.

Eagleという基板CADを使っています。これもただソフトで、オートルータもついた優れ物です。こちらからダウンロードできます。

PC Board Design

I use PCB CAD “Eagle”. This is also free demonstration version, quite powerful with automatic router, and can be downloaded from here.


 

 
inserted by FC2 system