0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ESP32のTXDは弱い

Posted at

TL;DR

  • ESP32-WROOM-32EのTXDピンは駆動能力に劣る
  • UART使うなら別のピンを指定するとトラブルを避けられる

GPIO1として

SSD1306なOLEDディスプレイの電源を物理的な位置の関係からTX==GPIO1から取った
まともな動作が困難な程度には電流不足
別のピンを使うことで解決した

UARTのTXとして

Ender3にESP3Dを導入した時の話

ESP3DはESP32/8266のファームウェア
これを導入するとほぼ全ての3DプリンタをWiFiから制御できるようになる
プリンタ本体のファームウェアの書き換えは必要ない
cpuに繋がるUARTを引き出してESPに繋げて半ば乗っ取るような形で通信させる
(USB OTG付きのESP32ならUSBにさすだけで済むので引き出す必要ない?)

マザーボードv4.2.2のcpu(gd32f303)とUSBシリアル(ch340g)の間からUARTの線を引き出してESP32に繋げた

ESP32は正常に動いているがプリンタは完全にESP32を無視
コマンドを送っても反応がない

  • 引き出した線がダメなのでは
    →手持ちのシリアル変換と引き出した線で操作できる事を確認

  • ESP32のピンが死んでいるのでは
    →別の板に変えても動かなかった
    →pcでコンソールを見るとちゃんとコマンド吐いてる
    →書き込みができるのでそんなはずがない

ESP32とPCが繋がっている状態に引き出した線を繋ぐとPCからもESP32の吐くコマンドが見えなくなった
電流不足を疑ってお城を繋げた

TXはプルアップされているもの
他の機器の通信に割り込んで乗っ取るには、乗っ取られる側のTXのプルアップをも処理できる駆動能力が必要

別のピン(0)を使うことで解決した

どうして

データシートの最後の方に表IO_MUXがある

esp32にはpower domainという概念がある

power domainは3つあり
全てのピンはいずれか1つのpower domainに繋がれていて
同じpower domainに繋がれているピンは電流を共有している模様

問題のTXピンはVDD_3P3_CPUに繋がっていて
これが原因なのかそうでないのかは確かめていないので分からない

HIGHが40mAに対してLOWは28mAと書いてあるが絶対うそ

何か分かったら追記します

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?