AVR入門その0
お久しぶりです~。xsuzです。
4Qの期末試験も終わり、春休みに入り、成績まで公開されちゃいました。
系所属点は上位3分の1ぐらいでした。なんだか、ぱっとしない成績ですね。
来年こそは、機械系で一桁に入れるように頑張る!
話は変わって、新歓で作業体験をやることになりました。
そこで、AVRの入門記事を書いたのですが、折角なので個人のブログでも公開しようかなぁと考えてます。
何か間違いを見つけたら、twitterで教えてもらえると嬉しいです。
目次
1. AVRとは
今回使うマイコンはAVRというものです。Arduino UNOに使われているマイコンもAVRです。
写真を見ると分かるように、マイコンにはピンがたくさんあります。小さいですが、CPUやメモリなどが全部入ってます。それだけでなくAD変換器やUARTなども組み込まれてます。
2. AVRマイコンのメモリ
AVRのメモリはプログラム用とデータ用に分かれています。
プログラム用メモリはCPUに命令を送るためのメモリであり、ROMが使われています。ここにデータを書き込むためにはライターが必要です。
データ用のメモリはCPUが読み書きできるメモリです。SRAMなどがあります。 SRAMは8bitのデータを持つレジスタからなります。このレジスタにも2種類あります。 データを保存するレジスタとマイコンを操作するためのレジスタです。ここでは詳しくは書きませんが、「レジスタを読み書きすることでマイコンを操作できる」ということを覚えておいてください。
3. 開発環境の構築
3.1. Arduinoをインストール
https://www.arduino.cc/en/software からArduino IDEをダウンロード&インストールしてください。
3.2. Board Managerを管理する
Arduino IDEを開いてPreferencesを開いてください。以下のような画面になると思います。
写真のように、Additional board manager URLs:
の欄にhttps://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
を追加してください。
終わったらOK
を押します。
次に右のボードのアイコンをクリックしてみましょう。上のようなものが出るはずです。BOARD MANAGER
の欄にMiniCore
と入力すると画像のように表示されるでしょう。
終わったらINSTALL
を押してください。
3.3. コンパイラ、ライターの設定
まず、Tools > Board > MiniCore > ATmega88 と選択していってください。
次に、画像のように、Tools > Clock > Internal 1MHz と選び、クロック周波数を設定します。
最後に、 Tools > Programmer > Arduino as ISP と選択してください。
以上で環境構築は終わりです。 次回 はLチカします。
4. AVRライターを用意する (おまけ)
AVRマイコンに書き込むためには、AVRライターというものが必要です。ここでは、Arduinoを使ってAVRライターを作ってみます。
4.1. ファームウェアを書き込む
まず、Arduino IDEを起動してください。
起動出来たら、以下の画像のように File > Examples > 11 ArduinoISP > ArduinoISP と選んでください。
そうすると、ArduinoISPのスケッチが開かれると思います。今度はArduinoを接続し、このスケッチをArduinoに書き込みましょう。Ctrl+Uと押せば書き込まれます。
4.2. 配線する
ファームウェアを書き込んだArduinoとターゲット側のICが簡単に接続できるように、配線します。
ピンの名前 | Arduino側 | ICSP端子側 |
---|---|---|
GND | GND | 4 |
VCC | 5V | 6 |
RST | D10 | 3 |
MISO | D11 | 1 |
MOSI | D12 | 5 |
SCK | D13 | 2 |
(参考)使うマイコンICについて
2023年のMeisterの作業体験ではATmega88というマイコンICを使います。Arduino UNOに使われているATmega328pの弟分みたいなやつですね。
半導体不足の今でも250円程度ととても安いです。
[追記]
3/8 目次を書き換えました。