ブートローダーのポートオープンを利用して、マイコンの電源を一瞬切りたいので、Tiny13を利用して作った。PICも有ったから、PIC10でも良かったのだが・今後の基本は、AVRに変えるので、ATtiny13A(秋月で売ってる)で作った。
AVR Simulator IDE
で5分位で書いた、たった4行なので・・なんとも偉くない。
自分で組み立てる人も居るかと、バイナリーをここに入れとく。
AVR Simulator IDEの方が興味有る方向けに画像も・・詳細はサイトで見て下さい。便利ですよ。(BASIC使う人向けだけど)・・何処に何が格納されて、どう動いてるか解るんですねこれ・・
日本で全くコンテンツを見ないけど、お気に入りです。
アマチア向けで、サポートしてるAVRの種類が少ないのが難点ですが、国内で普通に手に入るのは全く問題無いです。(これ3年ほど前に出来たばっかり・・PICの方が前から有りました・・PIC10用が有るので、気に入ってます)
クロスコンパイラでは無いけど、言語形体は同じなので、普通に国内で売ってるPICとAVRのどっちもBASICでプログラミングしたい人にはお勧めします。(安いし)
tiny13は、ベースが、9.6MHzと半端なので、デフォルト状態の CKDIV8のまま、1.2MHzで動いてるはずなのですが、AVR Simulator IDEがこれだと嫌がるので、1MHzって書いてコンパイルしました。(そうゆう問題は出ます)・・1/1.2ほど速くなってしまいますが、今回のプログラムはタイミングもへったくれも無いので・・気にしませんでした。
単純に、最初全ピン(RESETを除く)Lで、0.5秒後くらいにHになるだけ・・RESETがかかっても同じなので、Arduinoに送るRESETピンを、これのRESETにつなぎ、トランジスタかFETか、リレーかで・・電源を切り替えれば、Arduino風のリセットを、電源切断に切り替え出来るを思う訳です。このTinyのリセット信号のことにスイッチ付けておけば、AutoResetしなくなり、単なる、シリアルコンバーターになります。
とりあえず、USBシリアル部はとりあえずFTDIで作って有った物を使いますが、ArduinoのRESET互換のシリアルなら、何でもOKです。
この回路から、BootLoader入りの、tinyが、復帰して・・内蔵してる、アプリが動作する前に、BootLoaderモードに切り替わればOKと考えてます。
そこまで出来れば、Arduino IDEのブートーダー部に、ラッパーを入れれば自動アップロード可能になるはずです。
それがうまく行けば、Tiny45と85とかは、結構まともな、Arduinoになると思ってます。
今回やってる、ブートローダーが、1ワイヤ仕様なので・・配線が3本で済みますから、ステレオピンジャックでの接続を検討してます。
(本当は、ジャックの小型化のために、携帯電話のヘッドフォン端子使いたいのだけど・・本体側が手に入らないのが問題)
ブートローダー自体は、スケーラブルで、ATmega1284Pでも動くのでmega8Lなんか当然動きます。Arduino IDEに組み込めちゃうならシステムの形状を、小型化したい人には朗報だと思います。
AVR Simulator IDE
で5分位で書いた、たった4行なので・・なんとも偉くない。
自分で組み立てる人も居るかと、バイナリーをここに入れとく。
AVR Simulator IDEの方が興味有る方向けに画像も・・詳細はサイトで見て下さい。便利ですよ。(BASIC使う人向けだけど)・・何処に何が格納されて、どう動いてるか解るんですねこれ・・
日本で全くコンテンツを見ないけど、お気に入りです。
アマチア向けで、サポートしてるAVRの種類が少ないのが難点ですが、国内で普通に手に入るのは全く問題無いです。(これ3年ほど前に出来たばっかり・・PICの方が前から有りました・・PIC10用が有るので、気に入ってます)
クロスコンパイラでは無いけど、言語形体は同じなので、普通に国内で売ってるPICとAVRのどっちもBASICでプログラミングしたい人にはお勧めします。(安いし)
tiny13は、ベースが、9.6MHzと半端なので、デフォルト状態の CKDIV8のまま、1.2MHzで動いてるはずなのですが、AVR Simulator IDEがこれだと嫌がるので、1MHzって書いてコンパイルしました。(そうゆう問題は出ます)・・1/1.2ほど速くなってしまいますが、今回のプログラムはタイミングもへったくれも無いので・・気にしませんでした。
単純に、最初全ピン(RESETを除く)Lで、0.5秒後くらいにHになるだけ・・RESETがかかっても同じなので、Arduinoに送るRESETピンを、これのRESETにつなぎ、トランジスタかFETか、リレーかで・・電源を切り替えれば、Arduino風のリセットを、電源切断に切り替え出来るを思う訳です。このTinyのリセット信号のことにスイッチ付けておけば、AutoResetしなくなり、単なる、シリアルコンバーターになります。
とりあえず、USBシリアル部はとりあえずFTDIで作って有った物を使いますが、ArduinoのRESET互換のシリアルなら、何でもOKです。
この回路から、BootLoader入りの、tinyが、復帰して・・内蔵してる、アプリが動作する前に、BootLoaderモードに切り替わればOKと考えてます。
そこまで出来れば、Arduino IDEのブートーダー部に、ラッパーを入れれば自動アップロード可能になるはずです。
それがうまく行けば、Tiny45と85とかは、結構まともな、Arduinoになると思ってます。
今回やってる、ブートローダーが、1ワイヤ仕様なので・・配線が3本で済みますから、ステレオピンジャックでの接続を検討してます。
(本当は、ジャックの小型化のために、携帯電話のヘッドフォン端子使いたいのだけど・・本体側が手に入らないのが問題)
ブートローダー自体は、スケーラブルで、ATmega1284Pでも動くのでmega8Lなんか当然動きます。Arduino IDEに組み込めちゃうならシステムの形状を、小型化したい人には朗報だと思います。
コメント
コメントを投稿