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も対応しているため安価に開発環境を構築できる。
------------------------------------------------------------
USB書き込み機の作成
ソフト作成や、AVRの使用方法が大分理解できてきたところで、次のステップ、、、
最近のノートパソコンは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 を起動させ
書き込む。
一連の作業は デバッグしながらソフトを動かせるので、便利である
ソフトはすべてアセンブラである
1:タイマーの起動
LEDの点灯は タイマーが必須である。 一定時間で点滅させる
2:スイッチの入力
スイッチ入力は、ソフトを途中で止めたり、次のステップへ移行させるのに便利だ
当然、LEDの点滅パターンや色で判定している
3: 引き算、掛け算、足し算、割り算
4: 5桁のカウント表示
ATmega88で 製作
SG12864使用
1)GLCD グラフィックLCDの活用
2) キャラクタ」の自由位置表示
3) リードモデファイライトを利用した ドット、線の自由表示
ATmega644で 製作
MC4004 キャラクタLCD使用
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 は インストールするだけで動作するので便利である
欠点は、立ち上がりがとても遅い
最新のパソコンでも遅い、
恐らくバージョンアップで改善されると思うが、、、