Atmel AVRは、Atmel社が製造している、RISCースの8ビットマイコン製品群の総称である。
PIC同様に回路構成が簡単でCPU、メモリ、RAM、I/O、データ記憶用のEEPROM、クロック発振回路、タイマーなどが1チップに収められており、書き込まれたプログラムにより制御される。

ISP (In-System Programming) に対応し、後発である故にPICに不足する点を補うような構成を持ち、I8051ピンコンパチ品や外部にRAMやI/Oを増設する外部バスのあるものもあり、PICのライバルとして認識されている。ISPには、In Circuit Serial Programming (ICSP) やJTAGという仕組みがある。

また、ラインが変わっても基本的なCPUコアのアーキテクチャが変わらず、RAM空間がリニアである等、C言語でのプログラミングを意識しており、さらにアセンブラを含んだ統合開発環境「AVR Studio」が無償配布され、GCCも対応しているため安価に開発環境を構築できる。




秋葉原で ATtiny2313は 100円、他に、ATmega88P などを購入した

このマイコンのよい所は、ISPに接続してパソコンでソフトを組み、動作させて、簡単に修正できることである。
プログラムミスの修正が容易である。

仕事の試験ツール、趣味などに利用している。

AVR Studioのダウンロード

アセンブラで記載し、コンパイル、インストールするツールをはじめに作成する
無償で供給されているソフトをダウンロードする。

   

最初は74HC126を使って パソコンのCOMポートに接続するAVR書き込み機を作成する。
AVRSP.COM
インターネットで、ダウンロードして使う
回路は、LEDとSWを追加している

AVR書き込み機 
COMタイプ                

ICソケット装着基板
SW、LED、リレー、などをI/Oポートに接続しておく

AVRSP.COM で書き込みが成功した。

 ------------------------------------------------------------
USB書き込み機の作成

ソフト作成や、AVRの使用方法が大分理解できてきたところで、次のステップ、、、

上記で完成した、ATtiny2313動作基板を利用して、USB用のプログラムを書き込む。

最近のノートパソコンはUSBポートしかないので、USBタイプの書き込み機を作成する
参考になったのは、 HIDSPX
これは、優れもので、AVRstudio4 のTOOLにインストールすると、
ソフト作成ーー>デバッグーーー>書き込み、(ヒューズビットやソフト)が自由にできる

COMタイプより 数段早くなった。(感謝)

     

------------------------------------------------------------------

LCDの表示
 

LCDは 秋月から SC1602 を 700円で購入
下記は 2004 である

1602と 2004は 電源 とGNDが逆なので注意
バックライトは 単純に 5.6Ω 1/2Wの金属皮膜抵抗をカソードに接続して電流変換する
Vo は ダイオードでGNDに接続すれば、コントラスト調整はいらない。


AVRstudo4を起動させ、プログラムを組む。
アセンブルを行い問題なければ、 TOOLの中からPROG で hidspx-GUI.exe を起動させ
書き込む。

一連の作業は デバッグしながらソフトを動かせるので、便利である






AVR 製作記事



ATtiny2313 で製作

ソフトはすべてアセンブラである
1:タイマーの起動
   LEDの点灯は タイマーが必須である。 一定時間で点滅させる
2:スイッチの入力
   スイッチ入力は、ソフトを途中で止めたり、次のステップへ移行させるのに便利だ
   当然、LEDの点滅パターンや色で判定している  
3: 引き算、掛け算、足し算、割り算
4: 5桁のカウント表示
 
                                   ATTiny2313 試作  


ATmega88で 製作
    SG12864使用
   1)GLCD グラフィックLCDの活用
   2) キャラクタ」の自由位置表示
   3) リードモデファイライトを利用した ドット、線の自由表示

                                   ATmega88 試作

ATmega644で 製作
    MC4004 キャラクタLCD使用





                                     ATmega644        

KG057QVとATmega64

SG12864は画面が小さく あまり表示文字も綺麗ではない。
もっと大きい画面に置き換えたくなった。

グラフィックディスプレイ、240×320の大きいモノクロディスプレイを仕入れた。
これは、とても綺麗だが、専用LSIを使用した、基板でコントロールされている。
SG12864に置き換えるため、基板を全て、自作することにした。
表示スピードの関係から、AVRで表示は困難と思われたが、ソフトやハードを工夫する
ことで、表示可能であった。

秋月さん、千石さんなどで LCDやフラットケーブル、コネクタを販売してくれると
助かるのだが、、、、、

バックライトがLEDタイプとCFLバックライトタイプがある。
CFLタイプは DC-ACのCXA-L0612A-VxL 基板が必要である





文字データはオリジナルである。
ドット表示や文字表示は X軸、Y軸 のカーソルデータを入れて
サブルーチンに飛ばすことで、簡単化している

製作記事は詳細を参照
                                        


アセンブラの四則計算とカウンター表示

アセンブラで 足し算、掛け算、引き算、割り算とカウンターを表示させる

足し算: ADD,ADCを用いる
引き算: DUB、SBCを用いる、マイナスになったときはフラグを
      立てている
掛け算:足し算を繰り返す
割り算:引き算を繰り返す
     一番難しいプログラムである。 0の割り算はできないので、
     工夫をしている

カウンター: 原始的な方法であるが、DECを繰り返しているが
        確実な方法である。
                                          

ATmega64のSRAM設定プログラム

ATmega64はSRAMを搭載することができる

MCUCR の設定
XMCRB  ;外部メモリー使用ポート
XMCRA   ;メモリーウェイト
などの設定を行う
後は、STS、LD命令で通常のメモリアクセス方法とおなじである。
高速で使用する場合には 多少クロックを消耗するので、注意が必要である



ATxmega32D4の実験

最近、ATxmega32D4 を秋月から入手した。

ATmega とプログラムも多少異なるが、サンプルがなかなか見つからないので
苦労している。
とりあえず、LCD表示とLEDの点滅を行ってみよう。

ATmegaの書き込みはISP端子で HIDSPX 書き込み器を使用し、
AVRstudio4とhidspx-GUI.exeで開発を行っていた。、
ATXmegaは PDI端子なので、HIDSPXが使えない。
AVRISPmarkUを購入し使うことにした。

AVRstudio6 
AVRstudio4は、バージョンアップを行い、WINAVR-2010をインストールし、
includeが必要になるが、
AVRstudio6 は インストールするだけで動作するので便利である
欠点は、立ち上がりがとても遅い
最新のパソコンでも遅い、
恐らくバージョンアップで改善されると思うが、、、