Ich möchte gerne ein ESP-01 Modul (=ESP8266 mit AT Firmware) mit einem
Arduino Nano clone (=ATmega328 mit USB-UART) verwenden.
Das Modul soll über WLAN Kommandos vom Smartphone empfangen und Sachen
ferngesteuert an/aus zu schalten. Und das Smartphone soll den Zustand
von ein paar digitalen Eingängen abfragen können. Ich möchte mindestens
100 Kommandos pro Sekunde ausführen können - mein angestrebtes Ziel sind
1000.
Den USB Port brauche ich zum Flashen und um Debug Meldungen auszugeben.
Ein zweiter serieller Port ist leider nicht vorhanden.
Deswegen habe ich mir folgende Lösung ausgedacht:
1 | R4 2,2k
|
2 | _________ +---[===]---| _______
|
3 | | ESP8266 | | | CH341 |
|
4 | | | | R3 1k R1 1k | D+|-------o
|
5 | | RxD|--+-[===]-+ +------[===]----|RxD | USB zum PC
|
6 | | | | | R2 1k | D-|-------o
|
7 | | TxD|----|<|---|---|--+---[===]----|TxD |
|
8 | +--|Reset | D1 | | | |_______|
|
9 | | |_________| | | +---|>|--o
|
10 | | __|___|__|____ D2 3,3V
|
11 | +---[===]---o 3,3V | PD4 TxD RxD |
|
12 | | 10k | |
|
13 | +---|>|--------------| PD3 |
|
14 | D3 | | Dioden 3x 1N4148
|
15 | | ATmega328 |
|
16 | | 5V 16Mhz |
|
17 | |______________|
|
Vorgegeben ist:
CH341 und Atmega werden mit 5V versorgt, das ESP Modul aber nur mit
3,3V.
Die 1k Widerstände befinden sich auf dem Arduino Modul (wieso eigentlich
der obere?).
Das ESP Modul muss mit 115200 Baud angesprochen werden. Will ich nicht
ändern.
Ich habe mir dabei folgendes gedacht:
Mit PD3 kann ich den ESP resetten, und außerdem sorge ich durch den
Pull-Up Widerstand dafür, dass der ESP inaktiv ist, wenn ich den Atmega
über seinen Bootloader programmiere.
Meine Software kann über TxD Debug Meldungen in Richtung PC ausgeben,
und sie kann per Soft-Seriell über PD4 Kommandos and den ESP senden.
Der ATmega empfängt normalerweise nur Antworten und Ereignisse vom ESP.
Solange ich vom PC aus nicht dazwischen plappere, sollte das
funktionieren. Richtig?
Der Spannungsteiler R3 und R4 passt den Pegel für den RxD Eingang des
ESP an.
Die Diode D2 und R2 sorgen dafür, dass High pegel am TxD Pin des ESP
Modul nicht zu hoch sind.
Zur Spannungsversorgung des ESP Modul werde ich einen "externen" 3,3V
LDO verwenden, der interne Regler im CH341 Chip reicht dazu wohl nicht
aus.
Kann das so klappen, oder habe ich noch was wichtiges vergessen?