2010年12月14日火曜日

Arduinoのプロトシールドを、Arduino ISP用のコネクタに改造する。

ISPする方と、される方は、実は1本しか違わない。

と言う事は、ISPコネクタは簡単に書き込み用のコネクタになるって言う事だ。

これはArduino本体でも同じなので、複数持ってて、1個ISPにしちゃいたい場合これを応用出来る。


プロトシールドのISP端子、RESET信号を配線をカッターでなぞって断線させる。
ピンを間違えると悲しいので、私は、指標付けた、ISPケーブルを挿して、これがリセットだって何度も確認した。

必要なのは、D10なので、UEWを半田付けした。後で違う目的に使えるように、あんまり一生懸命に付ける必要は無い、通電してればOKなのだ。


切断したRESET端子にD10から来た、UEWを接続する。

以上終わり。


ケーブルは、Windowsで使ってた、共立のライターからの転用で、このケーブルに合わせて、作ってあったパーツは皆使えるようになった。ZIFソケットは、どっかで、200円位で買った20ピンで、tiny2313と、8Pin用に使えるようになってる。水晶が二種類とも乗ってるから、クロック系のフューズミスでも止まらないのが売り・・


この基板からまたデコードして、ブレッドボードに結線したり出来るコネクタとかも付けて有る。


しかし、何故かうちの環境だと、Arduino UNOしか対象チップを認識しない。

Apple系のUSBの電源制限がシビアなのは有名だが・・余剰が出てないだけで、しっかり電源管理されてる訳だから・・動かないのは解せない。
ハブ経由、本体直でも結果が変わらない。


別に、UNOになって、FTDIじゃ無くなって、ATmega8u2になったから、通信速度が115200になった訳じゃ無い。Optibootが、115200BPSだから、Optibootを入れた、Duemiliranoveでも115200BPSでデーターを送れる。どっちかと言えば、速くなったのは、Optibootのリセットからの復帰や、電源投入後に、bootloaderに行かない構造だと思う。(5秒の空白が無くなった)

これとは別に気になってる通信速度の件が有る。

例の、Tiny85だけど、内部発振にも関わらず、115200BPSで通信出来てる。国内の文献のほとんどが、4800BPSしか出ないと書いて有り・・AVR-CDC Tiny45もそうなってるが・・512Bのブートーローダーが余裕で、115200BPSで送れ、更に、1200BPSとかに変更しても自動認識する。

つまりーー4800BPSでしか送れないってのは迷信って事か・・


そうなると、AVR-CDC に、FastBootのシリアル部を移植出来れば・・115200BPSも出ちゃう、シリアル変換機が出来てしまう訳だ。
Tiny45でも、まだ40%位残ってるし、Tiny85に至ってはスカスカだから、容量的につめる必要は無い。

FastBootのコードを読んでると、いいなあこれって思う部分が一杯有る。FasrBootは、元々、一本線でRx.Txを行う、Stk500の方式を採用してる。通信線を一本にするやり方も書いて有るし・・プロトコルを見ても、この程度なら、全二重の必要性は無いかもって思うのだ。
これはぜひ、Arduinoのライブラリにも移植したい。

自分でプログラムを書いてても解るが、通信線が、本当に全二重で動く必要性はあまり無いと思う。・・・何かが来たら、何かを帰すだけなのだから、トランシーバー的な、半二重で問題無いプログラムの方が多いのだ。IRでコマンドだけ送ってるのなんか完全に片方向だしねえ。それでもマイコンは成立する。

エラーを割り込みで帰す必要が有るアプリ以外、全二重の必要性は無いはずだ。

これがうまく行くならば、電源二本+通信1本が当たり前に出来るから、配線の簡略化が可能になる。


RxをPB1から変更したら、動かなくなっちゃったのは、AVR-CDCでした。DTR信号を出るようにしたので、並び順を変えようとしたら、通信不能に陥ってしまいましたので、怖いから、これに準拠した、位置に指定してしまった。
SoftURT部が、抜本的に違いそうだから、Fastbootはどこに設定しても大丈夫だと思うが、まだ試して無い。GUIアプリ書く方に突っ走ってます。

0 件のコメント:

コメントを投稿