7segduino真似てみる2012/12/01 21:51

Arduino互換機に7segduinoという物がある。
4桁7セグメントLEDを組み込んだ、ATMega328P搭載Arduinoだ。
7セグの大きさにちょうど収めて製作してあり、とてもコンパクトでかっこいい。

手元に4桁7セグを1個持ってたので、これを真似して7セグ一体型Arduinoを作ってみる。
7segduinoみたくコンパクトじゃなくって、普通の基盤で作るんだけどね。
ちなみにライブラリが公開されているので、スケッチ書くのは簡単になる。

7segduinoは上記のとおりATMega328Pを搭載している。
しかし以前作った互換機と違い、外部水晶発振子ではなく内部発振モードで動くようになっている。
どうせなら同じ仕様でと思い、内部発振のFuse値はどうしたらいいかを調査。

hFuse : DE
lFuse : F2
eFuse : 05

で良いっぽことは分かったけど、ブートローダーも専用で作ったほうが良いらしいことも発見した。
だけど、ブートローダーの作り方がいまいち分からない・・・
ATMega328P用のOptiboot 内部発振8MHz用が欲しいんだけど、そのものずばりを解説してるHPが見当たらない。

\arduino-1.0.1\hardware\arduino\bootloaders\optiboot\Makefile というファイルに、欲しいブートローダーの設定を追記してomake.batを実行すれば良い
らしい事はわかったんだけど、どんな追記をすればいいんだ。

とりあえずMakefileを眺めていると、「atmega328_pro8: TARGET = atmega328_pro_8MHz」って記述を発見。
あれ?これでいけるんじゃね?

ってことで、コマンドプロンプトでこのディレクトリに移動し
> omake atmega328_pro8
を実行すると
「optiboot_atmega328_pro_8MHz.hex」というブートローダーが作成された。

で、生のATMega328Pにこれを焼いてみた。

いつものようにFT232RLとATMega328Pを接続してavrdude-GUIを起動。

hFuse : DE
lFuse : F2
eFuse : 05

で「Write」ボタンを押して、Command Line Optionの「-B 4800」を削除する。
Flash欄にさっき作った「optiboot_atmega328_pro_8MHz.hex」を選択して、
「Erase - Write - Verify」ボタンを押す。
これでブートローダーの書込みは完了したはず。

328P内部発振FUSE

次はArduinoIDEの設定。
\arduino-1.0.1\hardware\arduino\boards.txt の最後に、下記を追加。

############################################################

atmega328o8.name=[Optiboot] ATmega328P 8MHz
atmega328o8.upload.protocol=arduino
atmega328o8.upload.maximum_size=32256
atmega328o8.upload.speed=115200
atmega328o8.bootloader.low_fuses=0xf2
atmega328o8.bootloader.high_fuses=0xde
atmega328o8.bootloader.extended_fuses=0x05
atmega328o8.bootloader.path=optiboot
atmega328o8.bootloader.file=optiboot_atmega328_pro_8MHz.hex
atmega328o8.bootloader.unlock_bits=0x3F
atmega328o8.bootloader.lock_bits=0x0F
atmega328o8.build.mcu=atmega328p
atmega328o8.build.f_cpu=8000000L
atmega328o8.build.core=arduino

############################################################

そして、マイコンボードは今追加した「[Optiboot] ATmega328P 8MHz」を選択する。

とりあえずBlinkを書き込んでみたら1秒おきにLEDが点滅してくれたので、
内部発振モードで動くATMega328P版Arduino製作は成功したようだ。

いよいよ基盤に組み立てようと思ったけど、ふと7セグLEDの仕様が気になり調べてみた。
7segduinoのパーツリストを見ると、アノードコモンの表記。
手元にある7セグLEDはカソードコモン・・・ダメじゃん。

秋月にアノードコモンを注文する事にして、次回に持ち越しだな。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://roadster.asablo.jp/blog/2012/12/01/6648954/tb