ERROR: NOT PERMITED METHOD: header ERROR: NOT PERMITED METHOD: footer

2010年08月03日

順調と思っていたら・・・。

久々の更新。
PIC-CDC でI2C通信インターフェースが順調と思いきや不具合発生。
データを数バイト一括で送信もしくは受信するとデータの欠落が起きている。
・・・・ガーン。

I2C の通信が終わりきっていないうちに次の通信が行われようとしているのではと思われるが・・・・。
もしくはデバイスが悪い。

まあ、後者はないだろうとして
とりあえず1バイト送信ウェイトかます。で対応しているが何とかしないとね。

posted by るしふぁ。 at 03:28| Comment(0) | TrackBack(0) | PIC実験箱

2010年05月27日

原因見つけた〜

ようやく原因つかめたよ。
結局USB の認識問題と同じメモリーバンクの問題でした。
メモリーバンクを同一になるようにしたら起動前から接続してもブルーバックにならなくなりました。

ただ起動前からつなげておくとクラッシュするけど起動後に接続したら問題ないと言うのは原因不明。
昨日は問題ないと思っていたwin7 / linux の環境でも今日もう一度試してみたらダメだったし。
微妙なタイミングとかが影響していたのかな。

意外とコツがいるなぁ
これでようやく一段落。
あとは複製を作るだけ〜。
posted by るしふぁ。 at 17:44| Comment(0) | TrackBack(0) | PIC実験箱

2010年05月25日

問題衝突〜

とりあえず接続も安定してくれるようになったのだが問題発生。
PIC−CDCをPCに接続したまま起動するとはじめの通信でクラッシュする。
どうやら読み取るタイミングでクラッシュしてくれるのだが原因がわからない。
起動後に接続すると問題ないのだが・・・。
ブルースクリーン 0x0000001E KMODE_EXCEPTION_NOT_HANDLED
これって無効なポインタ、無効なアドレス、その他のアクセス違反などらしいので起動時に何かゴミデータが送信されてオーバーフローでも起こしているのか?
さてどこを直せばいいのやら・・・。
posted by るしふぁ。 at 14:36| Comment(0) | TrackBack(0) | PIC実験箱

2010年04月15日

量産タイプのrev0完成。

量産タイプPIC完成.jpg

量産タイプの試作品完成\(^O^)/
ホントなら4550を使いたいところだったけど当時まだpicライター(秋月Ver4)が対応していなかったので2550を採用。
結局のところケースに収める関係からするとこれでよかったのかなとも思えてきたけど。

で、以前の写真のテスト機はIC単品を使ったけど
量産タイプは秋月電子さんのPIC18F2550ASSY (PIC18F2550-I/SO)を利用してI2C, CCB, Dout-6bit, Din-4bit, A/D-2ch を持つインターフェースはとりあえずこんな感じで完成。

1台完成すればあとはコピーなので比較的楽。
いっそのことベースの基板つくろかな?
posted by るしふぁ。 at 18:22| Comment(0) | TrackBack(0) | PIC実験箱

2010年04月12日

PIC18F2550 のAD変換基準電圧。

認識も先日のファーム改善で問題なく動作してくれている。

ぼちぼち量産向けにということでケースに収めるところまで完了。
だけどあと一つ。
a/d変換の基準電圧の問題。
USBからの給電をベースにしていてはマシンによりけりで安定性が悪い。
かと言ってレギュレータをつかうにしては5V -> 4.096V 約1Vのドロップ電圧は小さすぎる。
今手元にある LM317 のレギュレータではちょっと厳しい。
仕方ないのでトランジスタで作るかと思ったが少スペースかできない。
ツェナーダイオード手元に5.1V これじゃダメ。良さげな電圧だと2Vの直列で選別するか。と色々と調べていたらあるもんですね。4.096V の基準電圧用のIC(ダイオード)。
とりあえずRSオンラインで LM4040AIM3-4.1 を 5個発注。
さて、届いたら回路を作らなきゃ。

完成したらファームと回路図アップする予定です。
posted by るしふぁ。 at 18:13| Comment(0) | TrackBack(0) | PIC実験箱

2010年04月07日

PIC動作不安定のナゾはすべてとけた。ホントかい

PIC18F2550 を使ってD-In/Out A/D-In I2C マスター CCB バス送信のできるインターフェースを作成していたのだがどうも不安定でした。

初期タイプ(以前の写真のやつ)はかろうじてリセットボタンを押しながらケーブル挿入で認識してくれていた。

量産タイプとして秋月電子の基板ASSYタイプを使おうとしたのだけどこれがまた全然動いてくれない。
同じファームを書き込んでもウンともスンとも・・・。

ソースを色々いじってみたけど全然分からない。ちょっとマシになったかな?と言う程度。
で、仕方ないのでUSB プロトコルアナライザを入手して調べてみた。これが結構おもしろい。こんな通信してるんだと言うのが確実に分かる。
そんなわけで、解析結果はDeviceDescriptor 通信の DeviceID まではきちんと送信していた。
続いてConfig が・・・通信できていない。原因はこれか。
ということでその部分のソースを色々眺めていたのだけどやっぱり全然分からない。
SourceBoost のPIC-C を使っているのだけどウェブで検索してみるとほとんど情報が・・・結局、応答速度をできるだけ早くとか言う情報ぐらいしか入手できず。
何だろな〜と思いつつアセンブラ出力を見てみた。
??変数の格納バンクが違う。
もしかしてということで何とかして同一バンクになるように宣言しなおしたらすんなり認識。

送信文字も化けずに送れた。そういうことね。
ということで多分原因はここだろう。
保存アドレス(バンク)を指定することはできないのかな?

posted by るしふぁ。 at 19:08| Comment(0) | TrackBack(0) | PIC実験箱

2010年01月29日

配線修正〜。

PIC基板.JPG
やっぱり配線を修正してICのすぐとなりにコネクタをつけてみた。
出来上がった基板はこんな感じ。

I2C のクロックはどうやら勘違いをしていたようでFosc/4x(SSPADD+1)で設定していたようだ。
一応コマンドで送っていたようだが、自分なりのコードに書き直すことにしよう。
と言うことで、まずは英文データシートの解読からか。
データシート英語なんだよな〜。まあ、OpenOffice.org 翻訳などに参加してるし英語は嫌いではないのだが・・・
面倒なんだよな〜ブツブツ。

posted by るしふぁ。 at 17:25| Comment(2) | TrackBack(0) | PIC実験箱

2010年01月28日

PIC18F2550を使ってみた。

とりあえずPICを使ってみよう。と思ったきっかけは、
Windows2000 以降のwindows はハードウェアを直接制御が難しくなった。おまけにパラレルポートが今のPCには無い。

制御が難しく、レガシーなくなる傾向だしUSB でDigital-I/Oができる何かお手軽なの無いかなと探したけど結構値段が。

そんななかPIC マイコンを見つけたのが数年前。
こいつを RS-232C で制御してインターフェイスを作っちゃえと考えて実行。他のマイコンでもよかったのだが。値段とかお手頃だったのでね。

とりあえず、秋月電子でPICライターとPIC を買って準備。
開発言語にはアセンブラ。CCS PIC-C があったけどこれが結構高い。アセンブラ面倒だなぁと思いつつコネコネやってるところへ
SourceBoost でお手頃価格のCコンパイラを発見。
これはいいやと、とりあえず購入。

初めはRS232C で制御できるPICを買って色々やってみようかな〜と思っていたところへUSB ハイスピード対応の PIC18F2550 /4550 が登場。
USB いいじゃん。と思いさっそく2550 を購入。しかし、USB。ハードルが高かった。

とりあえずサンプルの8の字マウスは成功したけどこれじゃ使えない。
やっぱりCDC だなとCDC のサンプルを試してみると認識したりしなかったり。何なんだろうと思っていたが銅テープをペタっとUSB の配線の上に張り付けるとまあ安定した。
コネクタからPIC まで3cm 位なのだが、どうやらノイズを拾いやすい配線になっていたようでCDC のハイスピード設定にはついていけなかったようだ。
う〜ん。さすがハイスピード。試作機なので仕方ないが次は考えないといけないようだ。

さてここからインターフェイスを製作開始だ。
進行状態は、またぼちぼち上げていくことにします。
posted by るしふぁ。 at 16:40| Comment(0) | TrackBack(0) | PIC実験箱