6

私の脳は揚げられているので、これをコミュニティに渡すと思いました。

組み込みシステムに1文字を送信すると、常に2文字を受信したと見なされます。最初に受信した文字は(何らかの方法で)送信された文字にマップされているようで、2番目に受信した文字は常に0xffです。

これが私が観察したものです:

Tx char (in hex)    Rx character (in hex), I left out the second byte (always ff)
31                    9D
32                    9B
33                    99
61                    3D
62                    3B
63                    39
64                    37
65                    35
41                    7D
42                    7B
43                    79

時計をチェックしましたが、大丈夫そうです。この動作しないバージョンと以前のバージョンの唯一の違いは、現在RS485チップを使用していることです。

信号をMCUまでトレースしましたが、正常に見えます(RXピンのビット値を確認しました)

4

3 に答える 3

9

最初に受信したキャラクターは、送信されたキャラクターにマッピングされているようです(不明な方法で)

いずれの場合も、TXバイトは1ビット左にシフトされてから反転されます。

例えば:

31 = 00110001 9D = 10011101

0x31 << 1 = 01100010

01100010の補数は0x9Dです

私は他のいくつかをチェックしました、それらすべてのために同じように見えます。2番目のバイトがどこから来ているのかわかりませんが、信号の反転が起こっている可能性があります。

RS485は差動信号を使用します。チップの反転出力を使用してRS232入力に接続したようなにおいがします。

信号をMCUまでトレースしましたが、正常に見えます(rxピンのビット値を確認しました)

グラウンドリファレンスとしてどの信号を使用しましたか?

于 2010-04-14T03:24:36.717 に答える
1

RS485は電気レベルでRS232とはかなり異なります(差動対シングルエンドおよび+/-6V対+15 / -3V)-通信リンクの両側で同じプロトコルを使用していますか?

于 2010-04-13T22:52:57.360 に答える
1

RS485の場合、バスの「デフォルト状態」は正しく設定されていますか?ストップビットの正しい数はどうですか?

于 2010-04-14T02:03:35.490 に答える