ATtiny44aをArduinoIDE環境で使う方法

attiny44a マイコン/Arduino

AVR ATtiny44aマイコンをArduinoIDE環境で使う方法について紹介します。

AVR tinyマイコンのススメ
2024年現在、電子工作向けマイコンとしてはArduinoがほぼ覇権をとっているといっても良い状態ですね。 ただ、純正Arduinoは高価です。さらに、入出力ピンがほぼすべて使いやすい形で実装されている代償としてモノ自体が大きいという問題も...

前提条件

前回の記事で紹介したようにAVR TINYシリーズはプログラムの書き込みに書き込み機(プログラマ)が必要です。本記事では書き込み機の準備から解説します。前提条件は以下のようになっています。

  • 書き込み機としてProMicro互換機を使用
  • ArduinoIDEのバージョンは1.8.16
  • 開発PCはWindows11
  • とりあえず動作確認のためのLチカまで

ArduinoであればProMicroでなくてもOKですが、書き込み時の設定が微妙に違いますのでご注意ください。

amazonなどでも販売されているUSBasp(互換機)でも書き込みは可能ですが、windows11環境ではドライバのインストールがらみで面倒が発生するのでおススメしません。ドライバに署名がないのでそのあたりを回避する術が必要になります。
Pro Micro - 青基板 2個セット

Pro Micro - 青基板 2個セット

2,000円(10/06 07:31時点)
Amazonの情報を掲載しています

書き込み機(プログラマ)の準備

この部分は前回の記事と全く同じですが念のため掲載します。

ATtiny13aをArduinoIDE環境で使う方法
2024年現在のArduino環境で古のマイコンATtiny13aを使用する方法を解説します。

ProMicroへのArduinoISPプログラムの書き込み

まずはProMicroへの書き込み環境の整備が必要です。ProMicro以外のArduinoを使用している場合や、すでに設定済みの場合は必要ありません。

[ファイル]-[環境設定]-[追加ボードマネージャのURL]で以下のアドレスを追加します。

https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

[ツール]-[ボード]-[ボードマネージャ]でSparkFun AVR Boardsをインストールします。


[ツール]-[ボード]-[SparkFun AVR Boards]-[SparkFun Pro Micro]を選択。


[ツール]-[プロセッサ]で使用するProMicroの動作電圧/周波数を設定してください。

ATmega32U4 3.3V 8MHz
ATmega32U4 5V 16MHz

どちらかを選択。promicro互換品の場合は5V 16Mhzであることが多いはずです。が、ここで間違ってしまうとproMicroのシリアルポートがPCから認識されなくなるので絶対によく確認してください。

ここでミスるとProMicroが文鎮化し、書き込み機の復旧に書き込み機が必要になります。別途書き込み機があればその書き込み機を使ってブートローダーを書き直せばOKです。しかし、既に書き込み機を持ってる人はこの記事を見ない矛盾。

[ファイル]-[スケッチ例]-[ArduinoISP]-[ArduinoISP]で書き込み機のスケッチを開いてください。


[スケッチ]-[マイコンボードに書き込む]でOKです。

書き込み機とtiny44aの接続

以下のように接続します。電源(+/GND)以外に通信のためのMOSI,MISO,SCLとリセットを接続します。データシートをよく読んで接続してください。配線はtiny13aと同じです。

ProMicro(書き込み機)ATtiny44a
電源(+)VCC1番ピン/VCC
GNDGND14番ピン/GND
RESETGPIO104番ピン/RESET
MOSIGPIO16/MOSI7番ピン/PA7/MOSI
MISOGPIO14/MISO8番ピン/PA5/MISO
SCLKGPIO15/SCLK9番ピン/PA4/SCLK

attiny44a書き込み機との接続

tiny44aのためのArduinoIDEの設定

動作確認用スケッチ例

スケッチ自体の書き方は通常のArduinoと特別な違いはありません。

#define LED 0
void setup() {
 pinMode(LED, OUTPUT);
}

void loop() {
 digitalWrite(LED, HIGH);
 delay(1000);
 digitalWrite(LED, LOW);
 delay(2000);
}

書き込み設定

[ファイル]-[環境設定]-[追加ボードマネージャのURL]で以下のアドレスを追加。

http://drazzy.com/package_drazzy.com_index.json

(追記)上記アドレスが証明書切れか何かの理由でArduinoIDEからはアクセスできなくなっています。暫定処置として以下のアドレスを使う用にお触れが出ています。

https://web.archive.org/web/20230504110614/http://drazzy.com/package_drazzy.com_index.json

[ツール]-[ボード]-[ボードマネージャ]からATTinyCoreをインストール。

how-to-install-attiny-core


[ツール]-[ボード]-[ATTinyCore]-[ATTiny24/44/84(a)(No bootloader)]でボードを選択。

attiny44a

プログラムメモリが4kBありますのでブートローダーを使うこともできますが、メリットを感じません。

[ツール]-[chip]-[ATtiny44]を選択
attiny44a
ATtiny44aでは内蔵RC発振器の周波数は8MHzで、これを1/8分周したクロックをCPUへ供給していますので動作クロックは1MHzです。

[ツール]-[ボード]-[書き込み装置]-[Arduino as ISP(ATmega32u4)]で書き込み装置を指定。

ProMicroもしくはその互換機やArduinoLeonardoなど搭載マイコンがmega32u4の場合はArduino as ISP(ATmega32u4)
mega328を搭載したその他多くのArduino(もしくはその互換機)の場合はArduino as ISPを選択してください。

また、プログラマのCOMポートを選択してください。


[スケッチ]-[書き込み装置を使って書き込む]でOK。tiny44の2番ピン(PB0)に抵抗とLEDを直列に接続すればLチカ完成です。

まとめとおまけ

以上がArduinoIDE環境でtiny44aを使用するための手順です。tiny13aと比べてプログラムメモリ容量が大きいことと、tiny13aや85と違って16bitタイマーが使えるのでステッピングモーターやサーボモーターの制御がしやすいのがメリットです。

コメント