LED点灯を試すためにATTINY2313を一番最初に買ったのだけど、
7セグLEDを使うためには少しポート数が足りなくなってきた。
思い切ってATMEGA328Pを買うことにした。
ただ単純にATTINYと置き換えればいいと思っていたがそうは問屋が卸さない。
割り当てられているポートの順番なども違うようで、
ATTINYと比べながら置き換えていく必要があるようだ。
流れとしてはこんな感じだ。
- 三端子レギュレータを使って5V降圧した電源を使う
- ATMEGAにプログラマを接続して認識させる
- 以前作ったLED点灯回路・プログラムをそのまま流用し、動作を確認する
プログラマとATMEGAを接続する
各ポートに接続する配線については、以前に接続したことがあるATTINYを参考にした。
また、下記のサイトも見ながら試行錯誤してみた。
始めるAVR
各ポートの用途はデータシートを参考に。
http://akizukidenshi.com/download/mcu/avr/attiny2313.pdf
http://akizukidenshi.com/download/mcu/avr/atmega48-88-168-328_A_P_PA.pdf
結果的には、こんな感じで接続してみると上手く認識させることができた。
ATMEGAでLEDを点灯させてみる
試しに以前作った2つのLEDを交互に点灯させる回路を組んでみることにした。
PD3とPD4それぞれにLEDと抵抗を接続した。
プログラムもそのまま同じもので問題ないのだが、
コンパイルする際にATMEGA用に一部Makefileの書き換えが必要になる。
こんな感じでMakefileをATMEGA328P用に書き換えた。
DEVICE = atmega328p PROGRAMMER = -c avrispmkII -P usb -p m328p
以前作ったLEDを点滅させる記事はこちら
AVRでLEDを点滅させるプログラム – フタなしカンヅメ
無事に点灯したところ
三端子レギュレータの問題が解決してからはスムーズに進んで気持ちがいい。
次はいよいよ7セグLEDを使うことになるので、わくわくが止まらない。