ATmega328Pを内部8MHzで動作させる

ATmega328Pを内部8MHzで動作させる

Arduino(Uno等)にはAtmega328Pが使用されています。

そのAtmega328Pは外付けのセラミックコンデンサーで16Mhzにて動作しています。

動作させる周波数に比例して電圧を上げる必要があります。

 

 

32.3. 速度勾配

最高周波数は動作電圧に依存します。最高周波数対VCCの図 で示されるようにここでの曲線は1.8~2.7Vと2.7~4.5V間で直線 です。

 

f:id:mod0:20200201222444p:plain

mega328P.pdfより引用(207P)

https://avr.jp/user/DS/PDF/mega328P.pdf

 

上記の通り、ATmega328Pを16Mhzで動作させるには3Vより高い電圧を掛ける必要がありますが、8Mhzであれば3Vで動作します。

 

ですが、ArduinoIDEにはデフォルトでその設定はなく、自分でボードを追加する必要があります。

 

www.arduino.cc

 

上頁の中程の"breadboard-1-6-x.zip"をダウンロードします。

(下画像の青文字リンク)

f:id:mod0:20200201223616p:plain

 

ダウンロードして展開したファイル(breadboard)を

Macなら"Users/Documents/Arduino/hardware"

Windowsなら"Program Files (x86)\Arduino\hardware"

 に保存する。

 

再起動して"ツール/ボード/ATmega328 on breadboard(8Mhz internal Clock)"

を選択し、Arduino as ISP等のライターで書き込む。

 

また、16Mhz外部クロックのブートローダが書き込まれたATmega328に8Mhz internal clockのブートローダを書き込む際は16mhzの動作回路が必要になります。