粗茶ですが

RubyとかArduinoとかDTMとか

ATTiny4313にArduinoUNO R3で書き込む

手軽なMIDIインターフェースが欲しくて、AVRで何かできないかと探してみたらUSB-MIDIコンバーター MICOMOCOなるものを発見。

なにこれ素敵。

早速ATTiny4313ともろもろの部品揃えてさぁやろうと思ったんだけど、考えてみたらAVRのISPプログラマー持ってない。

調べてみるとArduino IDEにArduinoISPというスケッチがあって、ArduinoがISPの代わりをしてくれるらしい。

幸いな事にArduino UNO R3は持っているので、ISPの問題は解決。が、Arduino IDE Ver 1.05が中で使っているGCCのバージョン(4.3.2)が古いらしく、 ATTiny4313を知らずスケッチのビルドに失敗する。

Oh….

という事で、新しいGCCをArduinoIDEに突っ込む備忘録。

環境

OSX Lion 10.7.5

Arduino IDE 1.05

CrossPack

AVR向けののGCCをビルドする方法はそんなに難しくなく、情報はごろごろ出てくる。が、不治の病である面倒くさい病にかかっているため他の手がないかggrggr。

調べてみるとCrossPack for AVRなるAVRの開発ツール一式が提供されてる。

リリースノートを見てみると

Release Notes
Version 2013-02-12

Header with I/O definitions for ATTiny4313 was inconsistent with data sheet. Fixed.

・・・対応してんじゃん。

しかもGCC 4.6.2。

ということで上記のサイトからCrossPackのMac版をインストール。

/usr/local/CrossPack-AVR-20130212

上記のパスにインストールされる。

中を覗いてみると、Aruidno.appの以下のパスの中とほとんど一緒。これは勝てる。

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr

どーん

$ sudo cp -R /usr/local/CrossPack-AVR-20130212/* /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr 

Tinyな情報

ArduinoIDEがTinyなAVRの情報をもっていないので、その情報を追加。

arduino-tiny

上記から、coreとかarduino-tinyとか取ってきて、Arduinoのドキュメントフォルダに突っ込めば終了。

後はこの記事でも参考にすればOK。

実は

頑張ったけどArduinoIDE使わない(使えない)・・・。

ArduinoIDEはスケッチをビルドしてAVRに書き込んでくれるけど、上記のMICOMOCOはCのソースで提供されているのでArduinoIDE用のスケッチはない。

Makefileは提供されているのでCrossPack for AVRさえ入れてbinにパス通してしまえば

$ make
$ make flash

でいけちゃう。

今回のようにArduinoISPを使う場合は、micomocoフォルダのMakefile21行目

AVRDUDE = avrdude -c usbtiny -p$(MCU)

AVRDUDE = avrdude -c arduino -p$(MCU)

に変更すればmake flashでArduinoISP経由でHEXが書き込まれます。

勉強になったなぁ。

Comments