chottoshitahanashi’s diary

基本的に間違ったことばかり書いてるブログ。検索ひっかかるな

UART 5V 3.3V レベル変換

UARTの電圧とレベル変換|電子工作の知恵袋
ダイオードで逆電圧がかかってる時に断線するのでプルアップ、ダウン抵抗を介したVCC, GND電圧になる。
カソード側にTXがありLOWの時ダイオードがONになり、

VCC(3.3V)->プルアップ抵抗->ダイオード->TX(0V-5V)

と電流が流れ、RXはハイインピーダンスなのでダイオードによる電圧上昇0.7VくらいにしかならずLOWが検出される。
TX3.3V->RX5Vは直結するとしてTX5V->RX3.3Vはこれでいいかな。抵抗分圧でもいいけど。レベル変換モジュールは持ってないし。


【Arduino】ESP-WROOM-02( ESP8266 )を使ってWifiで無線通信する - おもちゃラボ
ここによると

実はレベルシフタがなくても動作しますが、データの受信時に不安定になる傾向があります。

やっぱり~。ボーレートの設定まで完了。応答がなくてかなり悩んだがESPがブレッドボードにちゃんと刺さってないだけだった。
あとショットキーバリアでなく普通のダイオードにしたけどHIGHの電圧降下が大きくなるだけでそこまで悪くないよね?直結だと動くけどリンク先の回路にすると動かない、なんで?→いや、3.3VTxがダイオードの電圧降下で2.5前後になってしまう。回路ちょっと変えて5Vにプルアップするようにしよう。やってみた、リンク先の3.3VTx配線のダイオードの向きを反転、0Vプルダウンを5Vプルアップに変えると動いた。
んー面倒だからとりあえず直結でいいや。


追記:3.3V->5Vはトランジスタ使った。
3.3V 5V レベル変換