Drucken

Nachdem man seine ersten Schritte mit dem ESP8266-Entwicklungsboard hinter sich hat, kommt man an den Punkt, dass man den ESP8266 in eigene Schaltungen integrieren möchte. Dazu muß man wissen, welche Pins Vorbelegungen beim Boot oder Betrieb haben müssen. Einige Pins sind für Sonderfunktionen reserviert und dürfen nicht für eigene Schaltungen verwendet werden. Nach Analyse der ESP-Unterlagen und einiger DEV-Boards habe ich eine funktionierende Minimalschaltung entwickelt. Basis ist der ESP8266-12E/F (unterscheidet sich nur durch die PCB-Antenne), weil dort die meisten Pins herausgeführt werden.

Beschaltung

Pins für Boot und Run

Es gibt drei verschiedene Modi für Run und Boot:

Modus GPIO #0 GPIO #2 GPIO #15
Serial Programming 0 1 0
Normal Run 1 1 0
SD-Card-Boot 0 0 1

Den SD-Card-Boot habe ich noch nirgends in Verwendung gesehen, aber die ersten beiden Modi werden benötigt. Drei GPIO-Pins werden zur Steuerung beim Boot abgefragt: GPIO #0, #2, #15. Normal Run und Serial Programming unterschieden sich nur durch den Pegel für GPIO #0: 0=Programming und 1=Run. Die GPIO-Pins dürfen NICHT direkt an GND oder 3.3V gelegt werden, es ist ein Vorwiderstand von 10kOhm zu verwenden. Bei GPIO #0 kommt eine 10KOhm-Widerstand und ein Taster nach GND zum Einsatz. Damit lässt sich der Mode per Taster wählen.

Wer den "Flash"-Mode per LED darstellen möchte, kann auch eine Serienschaltung einer LED mit einem 470 Ohm-Widerstand als Pullup verwenden (siehe Schaltplan).

Reset

Für den Reset ist ein 10KOhm-Pullup mit einem Taster nach GND vorzusehen. Ohne Pullup funktioniert es meist auch, aber manchmal boote der ESP8266 unmotiviert durch. Nach Einsatz des Pullup war dieses Verhalten nicht mehr zu beobachten

I2C-Schnittstelle

Für die I2C-Schnittstelle müssen zwei Pullup-Widerstände verwendet werden. In der Praxis (mehrere I2C-Devices) sind 10KOhm-Widerstände zu hochohmig. Ich habe mit 4,7KOhm-Widerständen gute Erfahrungen gemacht.

Pin I2C-Funktion
#2 SDA
#4 SCL

 

Stützkondensator

Um Transienten in der Versorgungsspannung abzufangen, empfiehlt sich der Einsatz eines keramischen 100nF-Kondensator zwischen GND und 3.3V, so nahe wie möglich an den ESP-Pins plaziert.

Power-On LED

Wer mag kann eine Serienschaltung aus LED und 470 Ohm-Widerstand als Betriebsanzeige verwenden. Soll Strom gespart werden (Batteriebetrieb) ist diese Schaltung wegzulassen.

 

Minimalschaltung ESP8266-12

Die oben gestellten Anforderungen lassen sich mit diesem Schaltplan umsetzen:

BILD

Hardwareaufbau

Da ein ESP8266-12 ein 2mm-Rastermaß hat, lässt er sich nicht direkt auf dem Breadboard einsetzen. Ich habe deshalb einen kleinen Adapter entwickelt, welche die gezeigte Schaltung umsetzt:

BILD Leerplatine

BILD Bestückungsseite

BILD Lötseite

Die Bauteile sind als 1206-SMD-Bauteile ausgeführt. und lassen sich einfach bestücken.

Die Platine kann über folgenden Shop bezogen werden: Ebay-Link

 

Anschluß eines FTDI-Adapters

Um den ESP8266 programmieren zu können, muß ein serieller USB-Adapter angeschlossen werden. Der ESP8266 ist ausschließlich mit 3.3V zu betreiben bei Ein- und Ausgängen müssen evtl. Pegelwandler eingesetzt werden. Für die Programmierung ist ein FTDI-Adapter mit 3.3V zu verwenden.

ACHTUNG: Ein 3.3V-FTDI-Adapter hat einen Vcc-Spannungsausgang, der KEINESFALLS als Versorgungsspannung für den ESP8266 verwendet werden darf. Der Adapter gibt bei Vcc 5Volt Betriebsspannung aus, der ESP8266 wird zerstört. Es muß also eine 3.3V-Versorgung für den ESP8266 zur Verfügung stehen.

Folgende Verbindungen sind herzustellen:

Verbindung FTDI-Adapter ESP8266
Receive TxD RxI
Transmit RxD TxO
Ground GND GND
Verbindung Netzteil ESP8266
Ground GND GND
3.3Volt 3.3V Vcc