2013年6月5日水曜日

TJ3Bのセンサを増やしたいけど

TJ3Bは、I2CでMPU同士を繋いで、入力できる
センサの数を増やすことが出来ます。
2個目のTJ3BをC-StyleでI2Cのスレイブ番号を入力して
ビルドすれば、2個目のTJ3Bはセンサーボードとして
使用することが出来るようになります。
C-Styleでは、マスターからセンサ選択で、自分の
センサ10個以外にスレイブ番号センサ番号の10個を
追加で選択出来るようになります。

インターネットで検索すると
ArduinoをI2Cでe-Gadgetのセンサーボードにした記事や
使い古しのTJ3からマイコンを外したり、ローダー入り
マイコンを購入してセンサーボードを製作した記事がありました。
電源はI2Cから取り、センサ用ソケットとプルアップ抵抗を
付けて小さな基板に仕上げています。

C-Styleで使える物をもっと手軽に安価で出来ないかと考え
そこで生のPICマイコンにビルドして出来たHEXファイルを
書き込んでみました。結果は動きませでした。
やはりローダー入りでないと正常動作しません。
http://akizukidenshi.com/catalog/g/gI-03554/
http://akizukidenshi.com/catalog/g/gI-03602/

まず、ローダーの役割を考えてみました。
電源オンやリセットオンで各ピンの役割を設定、
ユーザープログラム・ロード・ブロックに飛んでパソコンから要求が
あればシリアル通信でユーザープログラムをロードして特定番地に
格納、通信を終わるか、パソコンからの要求がなければ
テストプログラムを実行LEDを点滅、ユーザープログラムを
実行、スタートボタンが押されるのを待つ。

不明な点、テストプログラムもユーザープログラムなのか?。
スタートボタンのセンス・ループもユーザープログラムなのか?
各ピンの役割設定はユーザープログラムで変更可能。

電源オンやリセットオンで各ピンの役割を設定後、すぐに
ユーザープログラムを実行する簡易型のローダーが必要です。
ユーザープログラムの先頭にジャンプするプログラムを書き込んで
見ましたが動きませでした。
各ピンの役割を設定や発振設定など何かの順番があるかも知れません。

このローダーは、マイクロチップ社のローダーを元に
開発されているものでしょうか。仕組みが一緒かどうか。
ローダーありの状態でビルドされているのでローダー無しの
設定に戻して番地をずらしたりしないでビルドすれば
そのまま動くのでないか。

どなたか、トライした方いらっしゃいませんか?
なんとか数百円でセンサーボードを増設出来ませんかね。

2 件のコメント:

ぽよこまだんな さんのコメント...

はじめまして、ぽよこまだんなと申します。
初めてコメントさせて頂きます。

生PICにHEXを焼いて拡張I/Oにすることは可能です。
ただ、あまりおおっぴらに公開する内容ではないので、
どこにも公開していません^^;

ヒントとしては
・CONFIGの記述
・割込ベクタ
・メモリの配置
このあたりを正しく設定すれば動きます。

karabisaa さんのコメント...

ぽよこまだんな さん
はじめまして、コメントまことにありがとうございます。
ブログ、大変参考にさていただいております。
勝手にブログにリンク紹介をしておりまして、申し訳ありません。

ヒント、ありがとうございます。
たしかに、あまりおおっぴらに公開する内容ではないですね。
マイクロチップ社のローダーを詳しく解説されている方が
いらっしゃるので見当はつけておりました。
技術的な挑戦ということで続けていきたいと思います。
ありがとうございました。