UARTを直接つないでもよい?

このQ&Aのポイント
  • マイコン(atmega328p Vcc=3.3V)とPCをUSB/UART変換ケーブル(TTL-232R-3V3)でつなごうとしています。
  • マイコンのUART用のピンと、ケーブルのピンは直接つないでもよいものでしょうか?
  • マイコン側の3.3Vは、ケーブルの5Vから私の作っている回路にのせるレギュレータでつくっていて、ケーブル側の3.3Vはケーブルに内蔵しているFT232RQを使ってつくっているので、元の5Vが同じとはいえ微妙に異なる可能性があります。これがどういう問題につながりえるのでしょうか?そして簡単な回路で問題なく通信できるようにするにはどういった回路を入れればよいのでしょうか?
回答を見る
  • ベストアンサー

UARTを直接つないでもよい?

マイコン(atmega328p Vcc=3.3V)とPCをUSB/UART変換ケーブル(TTL-232R-3V3 http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf) でつなごうとしています。 マイコンのVccは、このUSB/UART変換ケーブルのVccピン(5V)をレギュレータを使って3.3Vに落としてつくろうとしています。 この時、マイコンのUART用のピンと、ケーブルのピンは直接つないでもよいものでしょうか? マイコン側の3.3Vは、ケーブルの5Vから私の作っている回路にのせるレギュレータでつくっていて、 ケーブル側の3.3Vはケーブルに内蔵しているFT232RQを使ってつくっているので、 元の5Vが同じとはいえ微妙に異なる可能性がありますが、 これがどういう問題につながりえるのでしょうか? そして簡単な回路で問題なく通信できるようにするにはどういった回路を入れればよいのでしょうか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • unagi-pie
  • ベストアンサー率41% (166/397)
回答No.4

No.2補足欄 >> ここで1つ問題に気付きましたが、「UART と同じ電源を取り出して使う」のは可能か?ですね。 >ケーブルに入っているものを取り出せない、という条件で考えています。 3.3V版の場合もケーブルに出てる電源は元の5Vらしいのでいずれにせよ3.3Vを使えませんね。 >1!OE, 2!OE: UARTのVccを反転させて入力する(負論理なので) 125 でなく 126 というタイプだと Highアクティブなので反転不要です。 ですが細かく見ると電源が低い時にONするのかOFFするのか?という曖昧さが残ります。 >この場合、Vcc がオフの間に !OE に 3.3V 入力しても問題ない、 >と考えてよいのでしょうか。 No.1補足欄 >SN74LVC2G125のデータシートに >VO Voltage range applied to any output in the high-impedance or power-off state(2) -0.5 - 6.5 >となっているので大丈夫と考えてよいのでしょうか。 に関係しますが、内蔵のクランプダイオードが効くことで端子が保護されます。ただし >IIK Input clamp current max50mA クランプダイオードに流れる電流が50mA を越えてはいけないので、 例えば他の電源を直結するようだと強力に駆動されるので大電流が流れます。 電流制限のために1kΩ以上の抵抗を入れるといいです。(1kΩなら3.3Vでも 3.3mA) あまり抵抗値が大きいと、浮遊容量との影響で波形のエッジが鈍りますが。 No.3補足欄 >使用しているマイコンのデータシートには以下のようにダイオードが入っています。 >http://gyazo.com/39f876f4147354da1b534d4b72cfc60f 保護用ダイオードが入ってるんですね。 >が、これは電源オフ時に入力端子にVccレベルの電圧がかかった時にも機能するのでしょうか。 もちろんです。単体のダイオードと同じです。 UART の方にも入ってると思いますので、125 や 126 の使用はやめ、 クランプダイオードを頼りにするだけでも充分かも。電流制限抵抗は入れるとして。

m_i_t_s_u_b_a
質問者

お礼

長々とおつきあいいただきありがとうございました! 非常にわかりやすかったです。

その他の回答 (3)

  • unagi-pie
  • ベストアンサー率41% (166/397)
回答No.3

No.1>方法2. クランプダイオードを入れ高い電圧をカット について。 実は大抵のICの入力端子には保護用クランプダイオードが入っていて、 端子にVcc以上の電圧がかかるとVccラインに逃がす事で端子電圧が上がらないように働きます。 もちろん強力に駆動されれば大電流が流れ壊す事になります。 これを防ぐ為に電流制限として100オーム程度の抵抗を入れておくといいです。 (100オームなら5Vでも5mA) トライステートコントロールでなくこれだけでも充分かも知れません。

m_i_t_s_u_b_a
質問者

お礼

回答ありがとうございます。 使用しているマイコンのデータシートには以下のようにダイオードが入っています。 http://gyazo.com/39f876f4147354da1b534d4b72cfc60f が、これは電源オフ時に入力端子にVccレベルの電圧がかかった時にも機能するのでしょうか。

  • unagi-pie
  • ベストアンサー率41% (166/397)
回答No.2

No.1 です。 追加回答遅くてすみません。 また少し調べてから書き込みます。 >この4つの信号それぞれについて、マイコン側の電源がOFFの間、ケーブル側のHighがマイコンに入らないようにすればよい、ということですね? そういう事です。 >UARTの場合には、TX,RX,RTS,CTSともに通信のない時にHighになっていると思いますが、 UARTの出力 TX,RTS# の2つについて、相手(マイコン)の電源OFF状態を考慮する必要があります。 RX,CTS 入力については、逆方向の考慮が要ります。 >"トライステートゲート"というのは、 >http://www.ti.com/product/sn74lvc2g125 >このようなICでしょうか。 そうです。 74LVC2G125 の電源は、出力信号を出してる回路と同じものを使います。 つまり RX,CTS# はマイコンと同じ電源、TX,RTS# はUARTと同じ電源を使います。 相手の電源ONを確認するまでは出力バッファをHigh-Z に維持する、というコントロールを 行います。マイコン出力の場合は、ポート初期化により出力がONするのを待てばよいです。 ここで1つ問題に気付きましたが、「UART と同じ電源を取り出して使う」のは可能か?ですね。 あと、自分で書いておいて何ですが、2つの3.3V電源、両方共シリーズレギュレータで得てるなら時間差は殆どなく問題ないとも思います。 気にしてたのはスイッチング電源やDC/DCコンバータなど、起動に少々時間がかかる電源の場合なので。 更に、ICによっては電源OFFの間にある程度のHighレベルが与えられても平気なものもある(うろ憶え)ので これの場合はハイインピーダンスコントロールは不要です。 インターフェースICなどは殆どそうです。相手の電源が入ってないのは普通にありますし。 また、製品用でなくあくまでホビー用に、と割り切れば、多少のストレスなら耐えるので 目をつぶるのもアリだと思います。

m_i_t_s_u_b_a
質問者

お礼

ご返答ありがとうございます。 何度もすみません。 > ここで1つ問題に気付きましたが、「UART と同じ電源を取り出して使う」のは可能か?ですね。 ケーブルに入っているものを取り出せない、という条件で考えています。 > つまり RX,CTS# はマイコンと同じ電源、TX,RTS# はUARTと同じ電源を使います。 これは以下のような理解であっていますか? マイコン側の 74LVC2G125 は Vcc: マイコンのVcc 1A: マイコンからTX 2A: マイコンからRTS# 1Y: UARTのRX 2Y: UARTのCTS# 1!OE, 2!OE: UARTのVccを反転させて入力する(負論理なので) ケーブル側の 74LVC2G125 はその逆。 というつなぎ方であっていますか? この場合、Vcc がオフの間に !OE に 3.3V 入力しても問題ない、 と考えてよいのでしょうか。 > あと、自分で書いておいて何ですが、2つの3.3V電源、両方共シリーズレギュレータで得てるなら時間差は殆どなく問題ないとも思います。 これは両方ともレギュレータです。 おそるおそる試したところ問題なく動くのですが、、、 安全な方法があれば考えたいです。

  • unagi-pie
  • ベストアンサー率41% (166/397)
回答No.1

>元の5Vが同じとはいえ微妙に異なる可能性がありますが、 3.3V電源が2つあり、電圧の差を気にされてるようですが、 電圧差はごく僅かなのでこれは問題ありません。 高い電源電圧側の出力端子がHighを出し、これを低い電源電圧側が受ける時に 「信号電圧が電源電圧より高いとNG」に該当しそうですが、大抵は電源電圧+0.5V程度は 大丈夫です。 むしろ、問題点は「2つの電源ON/OFFが完全に同時でない」ことにあります。 「一方が電源ONだが他方がOFF」という状態が、短時間でもある事がまずいです。 電源ON側回路がHighを出し、これを電源OFF側回路が受けると 「信号電圧が電源電圧より高いとNG」に該当します。 このような結線の場合の対策として 方法1. 受側回路の電源がONになるまでは出力をLowかHigh-Z(ハイインピーダンス)に保つ トライステートゲートを挿入しハイインピーダンスコントロールを行うとか マイコンの汎用IOなら相手電源がOFFなら出力をHigh-ZかLowに保つようソフトウェアを作るとか 方法2. クランプダイオードを入れ高い電圧をカットする。電流制限の為に抵抗器を入れる。

m_i_t_s_u_b_a
質問者

補足

回答ありがとうございます。 "2つの電源ON/OFFが完全に同時でない"問題の解決方法についてもう少し詳しく教えていただけますか。 UARTの場合には、TX,RX,RTS,CTSともに通信のない時にHighになっていると思いますが、 この4つの信号それぞれについて、マイコン側の電源がOFFの間、ケーブル側のHighがマイコンに入らないようにすればよい、ということですね? "トライステートゲート"というのは、 http://www.ti.com/product/sn74lvc2g125 このようなICでしょうか。 このICのVccをマイコン側の電源につないでおき、以下のようにつなぐと マイコン側と SN74LVC2G125 は同時に電源がONになるので問題は回避できる、という理解であっていますか? マイコン TX -> A SN74LVC2G125 Y -> ケーブル側 RX マイコン RTS -> A SN74LVC2G125 Y -> ケーブル側 CTS マイコン RX <- Y SN74LVC2G125 A <- ケーブル側 TX マイコン CTS <- A SN74LVC2G125 Y <- ケーブル側 RTS ただこの場合、SN74LVC2G125 は電源OFFの間ケーブル側のHighが入ってきますが、、 SN74LVC2G125のデータシートに VO Voltage range applied to any output in the high-impedance or power-off state(2) -0.5 - 6.5 となっているので大丈夫と考えてよいのでしょうか。

関連するQ&A

  • dspicからpicへのUARTでの信号送信

    現在,dspic33fj32mc202を使用して回路を作成しています。 ピンの都合から、UART機能を利用して、dspicのTXピンから,pic16f690のRXピンに信号を送りたいと考えています。 しかしdspic33fは3.3Vで、pic16f690は5Vです。 上記のようなことは可能なのでしょうか?

  • 1Vで動作するマイコン

    電圧1Vで動作するマイコンってありますでしょうか。 ・電源、I/O電圧とも1V ・速度は数MHz以上あれば理想的ですが、もっと遅くてもかまわない。 ・C言語でプログラムできる ・1個から(多くても数十個単位)で手に入る(個人では買えなくても商社を通して買えればいいですが) ・フラッシュROM(何度も書き直せる) ・ライタが簡単に手に入る(or簡単な回路で書き込める) ・PCと簡単につなげる。(UARTとかがあればいいです。)  (超理想的には)USBとかでつながって、しかもマイコン上にレギュレータ(or DC-DCコンバータ)ものってて、USBバスパワーから1Vも作れる、とか都合がいいものがあるといいんですが。。 まあ、条件を全部満たしていなくても、とりあえず、1Vで動作するマイコンで使いやすそうなのがある、という情報だけで結構です。 よろしくお願いします。

  • カウンタ回路について

    現在カウンタIC(74161)を使用し、4ビットをLEDに出力する簡単なカウンタ回路を製作しています。 今のところ74HC161のでは動作させる事は出来たのですが、74LS161を使用した回路がうまく動作してくれなくて困っています。 どちらの回路もほぼ同じ構成で、違うのはLEDのところに入れている抵抗ぐらいです。 オシロスコープで確認してみたところ、出力にデータシートで書いてくれているだけの電圧(TTL時予定2.7V、実際0.6V程度)が出ていませんでした。 入力側のピンにもVCCで5Vを抵抗100kΩ通し電圧をかける予定なのですが0.6V程度しか電圧がきてませんでした。その代わりリセットのところへ残りの電圧がかかっていました。 やはり同じシリーズといってもTTLとCMOSは同じ回路で使用は出来ないのでしょうか? どのような対処をすれば動作させる事ができそうでしょうか? ご回答どうぞよろしくお願いします。 ちなみに、 74161のピン配置 1.CLR(反転)  16.VCC 2.CK       15.CO 3.A        14.QA 4.B        13.QB 5.C        12.QC 6.D        11.QD 7.ENP      10.ENT 8.GND      9.LOAD(反転) VCC(5V)より100kΩを通し、 3,4,5,6,7,9,10,16番ピンに。 CK(2ピン)はファンクションジェネレータ(CMOS時0~4V、TTL時0~3Vあたり)に。 リセットピンはスイッチにつなぎ片側オープンもう一方をGND、リセットとスイッチの間にVCCより100kΩを通し接続。 LEDへの出力の11~14ピンは抵抗(CMOS時520Ω、TTL時80Ω)を通しLED(VFは2.3)へ。 ICのVCC(16ピン)付近にコンデンサ(0.1u)を入れGNDへ。 COは今回使用する予定がないので何もつないでいません。 ICのGND(8ピン)をLEDのカソードをGNDへ。 AAでうまく回路を書けそうになかったので文章説明にしてしまいました。。。 分かりづらいと思いますが、ご回答いただければ幸いです。

  • macでUSBシリアルポートを使いたい。

    秋月で売っているTTL-232R-3V3 FTDI Chip USB-シリアルTTLコンバータケーブル 黒 1.8m TTL-232R-3V3 FTDI Chip https://www.amazon.co.jp/dp/B01HI99QEQ/ref=cm_sw_r_tw_dp_U_x_gW2rEb2J09TZK @amazonJPさんから このUSBケーブルをmacbookに接続して、ESP32の基板とUART通信の信号を受信できるようにしたいのですが、 windowsのようにmacでもUSBデバイスのドライバが不足していないかなどを確認できるデバイスマネジャみたい機能はありますでしょうか? どうぞ、ご教示の程よろしくお願い致します。

  • 減算回路

    センサーで値をとり、ある範囲の電圧だけズームアップすることを考えております。 より具体的には、センサーの出力が0-5V程度で、これにオペアンプによる減算増幅回路をつけて (1)センサーの値が0-2Vのとき0V出力 (2)センサーの値が2-3Vのとき増幅されて、0-3.3V出力 (3)センサーの値が3-5Vのとき3.3V出力 するようにしたいと考えております。 電源はPCのUSBでマイコンにつなぎマイコンのVCC(3.3V)及びGNDからとりたいです。 出力先はマイコンのADコンバータで 次のHPで解説されているオペアンプの減算回路http://wave.iobb.net/doc/opamp/3.htmlで、 V1=2V、V2=センサー出力、Rf=3.3kΩ、R1=1kΩ、R2=1kΩ、R3=3.3kΩ オペアンプ:単電源のもの としたとき、目的の値を出力する回路になるでしょうか? また、抵抗の値などは適切でしょうか? その他もっと良いと思われる回路等ございましたら教えていただきたいです。 どうぞよろしくお願いいたします。

  • AE-ATMEGA328 MINI外部電源について

    秋月で購入したAE-ATMEGA328 MINI(Arduino pro mini互換)です LED(抵抗入り)が交互に点滅するスケッチを書き込み無事点滅しました。 USBシリアル変換モジュールを抜いてVINに9Vを挿してみましたが点滅しません VINから電源が供給されてない様に思います。 何か使い方間違えているのでしょうか? Arduino pro miniはVCCではなく "RAW"ピンに接続してくださいという記事は見ましたが "RAW"ピンと云うのは見当たらないです。 どなたかよろしくお願いします。

  • マイコンのポートについて(CMOS?TTL?)

    マイコンのポートについて確証がもてず質問させてください。 マイコンのシリアル、I/Oなどの外部ポートは、CMOSレベルなのかTTLレベルなのか どちらなのでしょうか? 事の発端は、シリアルポートに電圧の異なる回路を接続しなければならず、レベルシフトICの使用を 検討していて、入力がTTL対応のもの(HD74LV1GT125ACM)を見つけました。 このICの入力(TTL)をマイコンに接続しようとしたときに、 マイコン側はCMOSレベルの信号なのか、TTLレベルの信号なのか疑 問がわき、データシートで確認することにしました。 直接名称の記載はありませんでしたが、付録の回路図を見たところCMOSの記号があり 電気特性でも入出力のレベルはCMOSの値(Vccを基準としたレベル)であったので、 このマイコンのシリアルポートはCMOSレベルの信号であると思いました。 念のため、このことを先輩へ確認したところ、 「シリアルポートはTTLレベル」といわれてしまいました。 そこでもう一度、データシートを確認しましたが、 電気特性はVccに対する比率(という表現でよいのかわかりませんが)で Hi、Loのレベルが規定されているのでCMOSレベルで間違いないと思いますが、 回路図のほうは入力(RXD)側のみ論理回路を通っていたため この部分がTTLレベルなのか?でも、どこにもそのような記載は見当たらないしと混乱しています。 ロジックICであればシリーズ(TTL-ICであればスタンダード、74LSなど、 CMOSであれば74HC、74LVC)で確認しやすいものもありますが、 マイコンの場合はどうやって確認するのでしょうか? 上記のように、データシートの回路図や電気特性から判断する方法でよいのでしょうか。 確認したマイコン H8/36064(参照頁は、回路図:付録38、電気特性は、21-4~21-6)を確認しました。

  • 三端子レギュレータについて

    三端子レギュレータ7805(1A)で12Vを5Vに変換するオーソドックスな回路を作りました。入力側に22μF、出力側に100μFの電解コンデンサ、入出力端子両方に0.1μFのセラミックコンデンサを取り付け、レギュレータの2倍くらいの大きさの方熱器を取り付けました。 5Vの出力ではPICマイコンを制御しているのですが、このレギュレータを高温になる場所で使用すると当然レギュレータの放熱効果が下がって出力できる電流量は減りますよね?ちなみに摂氏80℃で使用するとして、レギュレータでPICマイコンを動作させるのに充分な電力を取り出す事は可能でしょうか? (PICマイコンの動作温度は考えない)

  • バイクのバッテリーから三端子レギュレータで5V

    バイクのバッテリー(12V、5Ah)から三端子レギュレータを使って5V500mAのUSBバスパワーを取り出したいのですが、回路がいまいちよくわかりません。 このような回路で合っていますか? コンデンサを3番ピン側に2つ繋ぐ回路図と、1番ピンと3番ピンのそれぞれに繋ぐ回路図の2通りが出てきて混乱しています。 またコンデンサの容量はどの程度を選べば良いのでしょうか? 他にもアドバイスがあればよろしくお願いします。

  • h8/3694fで文字送信のために作った回路について不具合

    h8/3694fのシリアル通信で文字を送信するための回路(マイコンでの書き込みはマザボでやるんで送信のみ)を作成したんですが送信できません。 回路はVccとAVccに5V(GNDもきちんとつないでいます)を入れて、RXD、TXDおよびGNDをrs232cに接続しているだけの簡単な回路です 一応、sの文字を連続的に送るプログラムを組んで試してみたんですが送信されませんでした。(実行中マイコンのピンに触れたときsでなくFという文字がかわりに連続的にでましたが、ビットレートはあっているので回路がおかしいんだと思います) もしどこがいけないかわかれば教えていただきたいんですが。 よろしくお願いいたします