どうもUSBasp系の物を作ると、「愛が感じられない」なあ・・
一応立派なmetaboard
USBaspLoader仕様のArduino互換機は、その気なら、チップの上面だけでほとんど構築出来るほど部品点数が少ない。これでも余計な物乗せすぎてる位だ。外部電源切り替えすると、電解コンデンサを通るようにはしたと言う、その程度だ。(その切り替えスイッチを付けて無いが)
抵抗とかダイオードはリード品を使い、元々あった穴を流用してる、パターンカットは2カ所位だ。ジャンパが長いのは、短くつなぐと、何カ所もやらなければいけなくなるので、手抜き以外の何物でも無い。
割といい位置に、抵抗用のホールが有るので、うまく流用すればいい。
USBで二本、ブートローダー起動用で、1本、Dラインを失いやすい。正確にはD2/4/7が制限を受ける。
調べたら、このUSBaspLoder上に、USBasp ISPとか乗るらしいから、だったら、USB-CDCが乗ってArduinoのライブラリに入ってくれれば、シリアル処理出来るかも知れない。
ArduinoライブラリーからこのUSB部が使えるなら結構価値が有るかも知れない。(出来る方ぜひ!・・)
結構乱暴に作ってはみたが、ちゃんと出来上がってみると、割と扱いやすい。
D+ D-は、RxTx線を利用しているが、元々有る、RxTxのジャンパ部で切断されているので、そこのMPU側を使えば、シリアルコンバーター等と、通信できる。
あくまで気になるのは、一回ファームを入れて起動してしまったら、USBコネクタ関係から、ほとんどのパーツが無意味な可能性が有ると言う部分だと思う。(DCコネクタにはなっているが)
それと、確かに安く作れるが、Boards.txtの書き直しやら、Avrdude.confの書き直しやら・・それなりのスキルの人じゃ無ければ出来ないだろう。
かく言う私も、シグネチャーなんて物が、マニュアルの何処に書いて有るか知ってからまだ一ヶ月も経ってない気がする。(Tiny84のリセッタを改造してて覚えた)
実際の所・・Arduinoをやりたい人には勧めない。AVRをやりたい人には、楽に理解出来るだろう。Arduinoのメリットは、そのボードにくっついてるMCUが何かなんて、どうでも良いことで(せいぜい容量制限は気にするが)何をしたいか?に直結していける事だと思う。
それが出来るようになった上で、何らかの製品化なり、配布物なり作る時のコストダウン案としては使えると言う感じではある。
誰かが作ってくれた物ならば、Boards.txtの書き換えだけだから、ハードルは低いから誰かに作ってもらえば、割と普通に使えると思う。
AE-ATmegaとの関係で言えば・・やっぱり基板が、150円と言うのは素晴らしい、ユニバーサル基板2枚分程度の出費で済むなら、作ってみる気にはなる。
市販のmetaboardを買うよりきっと安いだろう。
でもまあ、数を作るためのコストダウンならば、動作制限を受けないISP使用にして、Arduinoから、USBaspでISPしてしまうのが一番安いと思う。それだったら、最小なら、パスコンと、10KΩ抵抗各1個で動くはずなのだ。(これだけなら、300円位)
ひっかかるポートの使用を避けたり、対策しさえすれば、Arduino互換でちゃんと動くはずだ。(何をしていけないのか、とか、何なら出来るのか?とかが、一番難しい気がするが)
少なくともD7をグランドに落とすと、ブートローダーが起動してしまう。
これを作って気がついたのは・・
例えば、ATmega168Pを、STK500互換USB ISPと、USB-シリアルコンバーターに、切り替え出来るファームを作り、IDEからは、ISPとして動作し、OSからはシリアルコンバーターとして動作するファームウエア作って、別のMCUに接続する形のArduinoを作ると・・本体のMCUにブートローダーは必要無くなる。
STK500は、ポートオープンと同時に、ESCを送るから、これで、シリアルコンバーターか、STK500かを判断すればいい。
それを言ったら、FTDIを、ISPにして、スケッチを書き、実行結果を、FTDIで得るみたいな事も出来るんじゃないかって事だったりする。
そうゆう統合チップ的な、ファームを作れば、ArduinoのメインのMCUから、ブートローダーを外せるのでは無いかと・・そう感じたのでした。
自分で持ってる、tiny85で出来るかな?と思ったがピン数が合わない。ISPに4本、シリアルの2本で最低6本必要になる。
リソースが豊富なのは、mega8だから、mega8でやるべきでしょうね。
コメント
コメントを投稿