ArduinoのデジタルピンとICの間の時間はどれくらいですか?


9

現在のプロジェクトでは、74HC595シフトレジスタを使用してLEDディスプレイを制御していますが、ディスプレイはArduinoボードから最大5メートルほど離れている場合があります。計画は、Arduinoのボックスとディスプレイのエンクロージャーの間にいくつかのDB9 / RS232ケーブルを使用することです。デジタル信号が劣化せずにデジタル出力ピンからシフトレジスタに移動するには長さが長すぎますか?


伝送のビットレート/速度は何ですか?試しにスコープの波を見たことがありますか?
内石

特にMarkとjustjeffの皆様、ありがとうございました。いくつかの測定を行うための実際のオシロスコープがないので、明日ワイヤーを購入して、何が起こるかを確認します。

回答:


7

74HC595はCMOSテクノロジーであるため、電流を駆動するのにほとんど何も必要がないため、IRドロップは問題になりません。

信号の周波数を100kHz以下に保つ限り、伝送ラインの影響を心配する必要はありません。LEDの目的のオブザーバーが人間の目であると想定すると、とにかく高速を心配する必要はありません。たとえば、7セグメントで8桁、小数点はそれぞれ64個のLED要素であり、わずか9600 bpsで、7ミリ秒未満で表示を更新できます。

私が心配するのは、Arduinoからのデジタル高出力レベルがシフトレジスタの高入力として登録されるかどうかだけです。シフトレジスタが5V電源で動作している限り(6のような奇妙なものではありません)、それでも問題ありません。(これが問題になる場合は、わずか10cmのワイヤーに現れるので、簡単に確認できます)

短い答え:arduinoからケーブルまで74HC595に移動できる可能性は非常に高いです。


5

私はあなたがこの長さで大丈夫であるべきだと感じています。あなたの最善の策は、それを試してみて、それが機能するかどうかを確認することです。

機能しない場合は、次のことを実行してください。-シールドされたツイストペアケーブルを使用するか、ケーブルを一緒に使用します。-最後に小さなキャップ(0.01 uF程度)を付けます。これは、ノイズの一部をキャンセルするのに役立ちます(大きすぎるコンデンサを使用しても機能しないので、この場合は、大きすぎるのは良くありません)。-プルダウンに通常よりも少し低い値の抵抗を使用します。-低インピーダンスケーブルを使用してください。

データポイントとして、Arduinoはシールドされていないケーブルで9600シリアルを50分間(多分もっと?)実行できます。


5

いずれにしても、正しく機能することを確認するためにスコープを設定する必要がありますが、伝送ラインの影響を判断するために考慮する必要がある思考プロセス/計算を以下に示します。

  • エッジの立ち上がりと立ち下がり時間は、ここに投稿されたものとは反対に、伝送ラインの影響を考慮する必要がある場合を決定するときに、信号の周波数はまったく問題になりません。一般に、高周波信号は立ち上がり/立ち下がり時間が短いですが、低周波数信号は、スルーレートが高いトランシーバーによって低周波数で駆動されている場合、立ち上がり時間と立ち下がり時間が非常に速い場合があります。使用しているパーツの仕様内に収まるように、可能な限り最も遅い立ち上がり/立ち下がり時間を使用するので、ソースでRCフィルターを使用して立ち上がり時間と立ち下がり時間を短縮できます。一般に、ワイヤの長さがTr /(2 * Td)よりも長い場合、Tr =ソースでの信号の立ち上がり時間に、Td =ケーブルの単位長あたりの伝播遅延に、伝送ラインの影響を考慮する必要があります。使用しています。負荷の容量性が非常に高い場合は、信号線をより短いケーブルで適切に終端する必要がある場合もあります。このようなシステムには容量性効果のあるアイテムが多数あるため、これを事前に計算するのは困難です。この問題があると、信号にリンギング(エッジのアンダーシュートとオーバーシュート)が発生します。

  • ケーブル内の電流。これは、受信ICのスペックシートで入力電流として定義されます。これとケーブルの抵抗を組み合わせることで、受信側ICの仕様で電圧降下が許容範囲内かどうかがわかります。これは現在の平均値です。実際のピーク電流は、使用する終端のタイプに依存する可能性があり、駆動ICが負荷を処理できるかどうか、またはラインドライバーが必要かどうかを判断するときに考慮する必要があります。ピーク電流は、回路の往復伝搬遅延がある限りのみ継続する必要があります。

伝送ラインの影響を考慮する必要がある場合は、ケーブルの特性インピーダンスと駆動ICの出力インピーダンスも知る必要があります。

伝送ラインの影響を処理する必要がある場合は、終端スタイルのオプションがいくつかあります。私が検討する唯一の2つは、電源終端とACバイアス終端です。

ソース終端では、ケーブルの特性インピーダンスから駆動ICの出力インピーダンスを差し引いた値に等しい値で、駆動ICのできるだけ近くに抵抗を配置する必要があります。ケーブルコネクタのインピーダンスもシステムに影響を及ぼし、常に反射を低減するために、駆動および受信用ICをコネクタのできるだけ近くに配置します。これがおそらく最も簡単な方法であり、この場合はおそらく最良の方法です。ピーク電流は(Vhigh-Vlow)/(2 * Z0)で、Z0 =ケーブルの特性インピーダンスになります。

ACバイアスエンドターミネーションでは、受信ICのできるだけ近くで信号線に接続し、コンデンサをグランドに接続した状態でコンデンサと直列に抵抗を接続します。抵抗の値はケーブルの特性インピーダンスでなければなりません。コンデンサの値は信号の周波数によって決定されます(RとCはローパスフィルターを形成します)。ピーク駆動電流はソース終端の場合と同じです。平均駆動電流は信号のデューティサイクルに依存し、50%に非常に近い場合、受信ICの入力電流にほぼ等しくなり、50%を超える場合、平均駆動電流が高くなります。 。RとCがローパスフィルターを形成するため、この終端スタイルは高周波ノイズをフィルターで除去します。

覚えておくべき他の事柄をいくつか:

  • シングルエンド信号にツイストペアを使用しても、ノイズのピックアップはまったく減少しません。これにより、伝送ラインの特性インピーダンスがより一定になります。これにより、実際に信号を適切に終端しなければならなかったが、そうしなかった場合に、出力の見栄えが良くなる場合があります。それはラインの外部EMノイズを減らすために何もしません。

  • シングルエンドシステムでシールドケーブルを使用することは、せいぜい危険なことです。多くの場合、外部ノイズが容量的にシールドに結合し、結果としてシールドに電流が流れ、信号線に結合する状況が発生します。差動信号を使用しない限り、シールドケーブルを使用する必要はありません。また、高周波ノイズに対するシールドの有用性は、グランドへのインダクタンスに依存します。低インダクタンスのパスには通常、特別なコネクタが必要です。

ケーブルや2インチのPCBトレースなど、どのラインでも同じ思考処理を使用できます。


かなりの数のコメントがありますが、今すぐ入力できる時間は1つだけです。信号の周波数とは、信号の周波数成分を指します。これは、デジタル信号の立ち上がり/立ち下がり時間によって完全に決定されます。
Kortuk

私は投稿全体のデジタル信号を想定しています。デジタル信号の「周波数」とは、信号の最大スイッチング周波数を指します。一方、周波数領域でアナログ信号の内容を議論することは一般的ですが、その領域でデジタル信号を議論することは一般にそれほど役に立ちません。
マーク

4

その長さのケーブルを駆動するには、おそらくバッファが必要になります。74HC244バッファ/ラインドライバのようなものが適切です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.