たたいても動かない猫
2010年 10月 12日

PICでCATした実験結果があります。確か上位ビットをマスクしないとNGでした。いつもLOCKになるとか、モード読みだしでおかしい場合は、使っていないビットをマスクしてみてください。
実際にCATした実験結果があります。はSTOP BIT-2ってのはご存じですよね?
PICにはSTOP BIT 2のモード設定がないので、9ビットモードにして、最下位ビットを0だか1にして、ストップビットが見た目2ビットになるようにして動いています。

現在のモード取得する場合ですが、モードと周波数を問い合わせるコマンドを送った後に返ってくるコードですが、CWとCWRだけデータが1ビット短く返ってきます。8ビットじゃなくて7ビットになっています。
よって、ビットがずれるので、コード受信後の処理がおかしくなります。
これに気がつくまでは大変でした。ストレージオシロが無かったので、何度も何度も目に焼き付けて、1ビット短いことを発見しました。
ちなみにFT-857DMです。
あと、コマンド送信は5バイト一気に送ります。
スタートビット(1)、データ(8)、ストップ(2)を5組。隙間無く送出します。
ちなみに Tiny13A は UART はないので,プロトコル自体を自分で書いてます.スタートビットは1つで Low,ストップビットは2つで TTL High にしてます.送ってる0のデータは全部 High です.
取説通りにいけば,常時 TTL high で,1.1458ms ごとに Low を継続時間 104us で入れれば,0 を連続で送ってることになると思うのですが....(9600bpsの場合)タイミング間違ってますかね?

コマンド送信ですが、スタート1、データ8、ストップ2の11個送っているので合っていますね。あとはタイミングか。
もしかして、UARTモジュールを使わずにタイマーでタイミング作っていますか? 速度は104usでほぼ合っていると思うけど。
アセンブラソースを確認しましたが、5バイトを連続で送ってます。間は特に開けていません。(CPU動作周波数の数クロック分は空くと思うけど)
LHHHHHHHHHHの後に少しwaitかけて、2バイト目を送るとどうでしょうか? 動作している基板の出力タイミング、後で見てみます。基板、見つかるかな・・・
PICのアセンブラソースじゃ、送ってもしょうがないですよね。
作ったのは、マトリクスキーを押すと、規定の周波数やモードに切り替えるって言う簡単なプログラムです。CATの実験です。
328 でやれば少し手抜きが出来そうですが,28pin では大きすぎますしね.なんでかなぁ.もしかして 817 が壊れているなんてオチはないだろうなぁ.苦笑





ん?ここの意味が分からなかった.スタート1,ストップ2で 0x00 をひとつおくるとき
0 5 5 5 5 5 5 5 5 5 5
[V]でいいんだよね?
ストップビットは1(0V)を二つじゃなくて0(5V)を二個だよね?
ちなみに -3V まで引っ張るのを試すには回路をいじらないといけないなぁ.PICで直制御している人がいるから,そういうことはやってないような気がするんだけど.


ストップビット2だけ気にして、あとはそのままレジスタに放り込んで出しているだけ。
直結なので、MAX232Cのようなトランシーバーもかましていません。
極性もそのまま。よって、RS-232Cとは論理は逆です。
RS-232Cは+12/-12、CATは0/+5という関係です。
違うコマンド送ってみたら?

UART使ってると言うことは,処理を PIC に任せてるわけですよね?tinyの場合はそれが出来ないので,その辺の処理も全部自分でやらないといけないのです.他のコマンドももちろん送ってみていますが,そもそもコマンドの送り方に問題があるのだと思っています.もうちょっといじってみます.
>egv
今はインド経由なんだ.大分太くなった?ちなみにそのタイミングのやつ書いてみる.

Tinyの電源投入後、OUTPUT,5Vにして400mS待ち、その後0V936uS(Lを9回)と5V208uS(Hを2回)を5回繰り返しですね。

ただいま、愛着性向上中なわけですね。
私はCATな無線機を持っていないので、お話に参加できず残念です。と思ったら、FT-900があるのを忘れていました。帰宅したら、FT-900をいじってみよっと。
了解.やってみるよ.
>WPJ
猫いじり,いろいろ教えてください.hi
で,次のステップにいこうとしてるけど,どうもこれはうまくいかなそうだということが分かってきていて,進むかどうかわからない状態.というわけで,愛着を持ったところで終了しそうな雰囲気です>wpj 苦笑