Forum: Mikrocontroller und Digitale Elektronik Schaltplan so in Ordnung: ESP8266 + AVR "Koprozessor"


von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte mir Platinen erstellen, an die ich Sensoren anschließen kann 
(sowohl Digitale als auch Analoge). Bei gewissen Grenzwertveränderungen 
soll das Ergebnis per WLAN auf einen Server übertragen werden. Das Ganze 
soll per Batteriebetrieb laufen, also stromsparend sein.

Als Architektur habe ich mir einen ESP8266 für die WLAN Funktionen 
vorgestellt. Um den Stromverbrauch gering zu halten (der ESP8266 
unterstützt kein interruptgesteuertes Aufwachen) habe ich einen 
ATTiny13A davor geschaltet. Dieser kann die Signale auslesen, auswerten 
und bei Bedarf per Resetimpuls den ESP8266 aufwecken. Per Software-UART 
übermittelt der ATTiny13 dann seine ausgelesen Daten, und der ESP8266 
schickt sie an den Server.

Dazu habe ich den angehängten Schaltplan erstellt. Folgende Pinheader 
verwenden verwendet:

- ESP_ISP (Programmieren und Debuggen des ESP8266)
- DISPLAY_PWR (an einem Sensor soll ein Display hängen, welches 
zeitgesteuert Inhalte anzeigt. Über diesen Pinheader kann es komplett 
ein- und ausgeschaltet werden)
- ESP_I2C (für spätere Erweiterungen: I2C Schnittstelle des ESP)
- AVR_DW (zum Debuggen möchte ich einen ATTiny am Anfang mit aktiviertem 
Debugwire auflöten. Hier würde ich den AVR Dragon verbinden.)
- SENSOR1/SENSOR2: Anschlussmöglichkeiten für die Sensoren
- PWR (hier kommt die Stromversorgung in Form eines Step-Down Converters 
dran)

Könnt ihr bitte mal drüberschauen, ob es aus eurer Sicht noch Fehler 
oder etwas zu verbessern gibt, bevor ich Platinen erstelle und in 
Auftrag gebe?

Danke :)

von Forist (Gast)


Lesenswert?

Jan schrieb:
> Dazu habe ich den angehängten Schaltplan erstellt.

Da hat was mit dem Anhang nicht geklappt. Ich sehe nur eine graphisch 
unterstützte Netzliste.

von Dr. No (Gast)


Lesenswert?

Wieso hängen beide MCUs an SENSOR1/2?

von Wolfgang (Gast)


Lesenswert?

Q? steht auf dem Kopf. Und Gnd zu schalten, gibt meist nur Probleme.

von Jan (Gast)


Lesenswert?

Dr. No schrieb:
> Wieso hängen beide MCUs an SENSOR1/2?

gerade für die (Software-) Entwicklungsphase möchte ich, dass der ESP 
das Signal vom Sensor ebenfalls erfassen kann, und der ATTiny nicht 
alles per Software-UART an den ESP über den einen Kommunikationspin 
schicken muss.

Wolfgang schrieb:
> Q? steht auf dem Kopf. Und Gnd zu schalten, gibt meist nur Probleme.

Oh, da habe ich vergessen den Plan zu annotieren. Wie genau meinst Du 
das mit "steht auf dem Kopf"? Ich habe hier in der Artikelsammlung 
Transistor gelesen, dass es zum Schalten sinnvoll ist die Last an den 
CKllector zu hängen (Emitterschaltung). Was genau habe ich falsch 
gemacht?

von Timmo H. (masterfx)


Lesenswert?

Jan schrieb:
> Um den Stromverbrauch gering zu halten (der ESP8266
> unterstützt kein interruptgesteuertes Aufwachen)
Naja Interrupt nicht direkt, aber über den Reset-Pin kannst du ihn 
wieder aus dem Deep-Sleep (~20µA) aufwecken. Oder er weckt sich selbst 
über die interne RTC via GPIO16 (an Reset) auf. Dabei geht natürlich der 
RAM-Inhalt verloren. Wichtige Variablen kannst du aber im RTC Memory 
ablegen (512 Bytes)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Wenn du schon einen AVR mit On-Board hast, würde ich damit die 
Stromversorgung des ESP Chips komplett unterbrechen. Denn auch wenn 
Espressif immer wieder mit der angeblich niedrigen Standby Stromaufnahme 
prahlt: Das Ding braucht viel mehr Strom als jeder andere 
Mikrocontroller.

Mir ist da noch aufgefallen, dass da alles an 3,3V hängt. Für 
Batteriebtrieb würde ich den AVR direkt an die Batterie hängen. Dann 
sparst Du Dir die Stromaufnahme des Spannungsreglers.

von Wolfgang (Gast)


Lesenswert?

Jan schrieb:
> Wolfgang schrieb:
>> Q? steht auf dem Kopf. Und Gnd zu schalten, gibt meist nur Probleme.
>
> Oh, da habe ich vergessen den Plan zu annotieren. Wie genau meinst Du
> das mit "steht auf dem Kopf"?

Üblicherweise zeichnet man Schaltungen so, dass die Spannungen von oben 
nach unten abnehmen, d.h. ein NPN-Transistor in Emitterschaltung mit 
Emitter unten und Kollektor oben.

> Ich habe hier in der Artikelsammlung Transistor gelesen, dass es zum
> Schalten sinnvoll ist die Last an den CKllector zu hängen
> (Emitterschaltung). Was genau habe ich falsch gemacht?

Das kommt auf die Last drauf an. Das Label "Display_Pwr" deutet darauf 
hin, dass es sich um ein Display handelt. Wenn das Ding noch über 
irgendwelche Datenleitungen mit der Schaltung verbunden ist, kann ein 
Auftrennen der Masse üble Folgen haben, i.e. Versorgung über Datenpins 
o.ä.

Was schaltest du da genau?

von Jan (Gast)


Lesenswert?

Timmo H. schrieb:
> Naja Interrupt nicht direkt, aber über den Reset-Pin kannst du ihn
> wieder aus dem Deep-Sleep (~20µA) aufwecken.

das funktioniert leider für analoge Daten schlecht. In einem Szenario 
hängt an dem einen Sensor ein Fotowiderstand, und der ESP soll 
Helligkeitsabhängig schalten. Hier benötigte ich also einen ADC und eine 
"Logik" ob der ESP aufwachen soll oder nicht. Bei rein digitalen 
Signalen hast Du natürlich recht.

Stefan U. schrieb:
> Wenn du schon einen AVR mit On-Board hast, würde ich damit die
> Stromversorgung des ESP Chips komplett unterbrechen. Denn auch wenn
> Espressif immer wieder mit der angeblich niedrigen Standby Stromaufnahme
> prahlt: Das Ding braucht viel mehr Strom als jeder andere
> Mikrocontroller.

gut zu wissen, danke, ich dachte das würde keinen Unterschied machen 
(und ich spare mir so einen Transistor).

Stefan U. schrieb:
> Für
> Batteriebtrieb würde ich den AVR direkt an die Batterie hängen. Dann
> sparst Du Dir die Stromaufnahme des Spannungsreglers.

guter Hinweis, danke!

Wolfgang schrieb:
> Üblicherweise zeichnet man Schaltungen so, dass die Spannungen von oben
> nach unten abnehmen, d.h. ein NPN-Transistor in Emitterschaltung mit
> Emitter unten und Kollektor oben.

war mir nicht bewusst, aber darum schreibe ich ja hier um solche guten 
Hinweise zu bekommen, danke!

Wolfgang schrieb:
> Das kommt auf die Last drauf an. Das Label "Display_Pwr" deutet darauf
> hin, dass es sich um ein Display handelt. Wenn das Ding noch über
> irgendwelche Datenleitungen mit der Schaltung verbunden ist, kann ein
> Auftrennen der Masse üble Folgen haben, i.e. Versorgung über Datenpins
> o.ä.
>
> Was schaltest du da genau?

Das ist ein OLED mit SSD1306 Controller, welches über I2C gesteuert 
werden kann. Sollte ich hier besser die Masse trennen? Hier würde dann 
doch aber der Basisstrom durch die Last fließen, was man laut 
Transistorartikel hier vermeiden sollte, oder?

von Wolfgang (Gast)


Lesenswert?

Jan schrieb:
> Sollte ich hier besser die Masse trennen?

In deine Schaltung trennst du mit dem Transistor die Masse vom 
Display.

von Jan (Gast)


Lesenswert?

Wolfgang schrieb:
> In deine Schaltung trennst du mit dem Transistor die Masse vom
> Display.

Du hast vollkommen recht. Aber was ist mit den beiden I2C Pins, die mit 
einem Pullup verbunden sind? Ist es da nicht sinnvoller die Masse zu 
trennen? Oder sollte ich doch besser die Versorgungsspannung trennen 
(und was ist dann mit der Regel von der Transistorseite, oder kann ich 
das vernachlässigen?)

von Markus S. (acepilot)


Lesenswert?

Jan schrieb:
> Könnt ihr bitte mal drüberschauen, ob es aus eurer Sicht noch Fehler
> oder etwas zu verbessern gibt, bevor ich Platinen erstelle und in
> Auftrag gebe?

Ich würde zusätzlich für das ESP Board noch einen entsprechenden 
Kondensator vorsehen. Die Dinger sind ja nach wie vor extrem pingelig 
bei der Betriebsspannung und wenn diese durch das Senden per WLAN mal 
etwas absinkt geht das Ding schnell durch den Reset.

Bei meinen Spielerein mit dem ESP haben sich zur Puffern der Spannung 
für den ESP 1x 100nf + 1x 10uf Keramisch und 1x 470uf als normaler 
Kondensator bewährt.

von Stefan F. (Gast)


Lesenswert?

Pingelig sind sie nicht. Bei meinem letzten Versuch lief das Ding bis 
2,5V runter noch problemlos weiter.

Problem sind eher die extremen Stromschwankungen, die zusammen mit 
Leitungswiderständen, Induktion und trägen Spannungsreglern zu starken 
Einbrüchen der Versorgungsspannugn führen.

Wie dem auch sei, ein Elko ganz nahe zum ESP Modul platziert hat sich 
bewährt, um sporadische Aussetzer loszuwerden. Ich nehme immer 100µF. 
Und da wir hier aber kein fertiges Modul haben, sondern einen losen 
Chip, würde ich Markus Vorschlag folgen, noch einen weiteren kleinen 
Elko und einen Keramik-Kondensator zu verwenden.

von Sascha W. (sascha-w)


Lesenswert?

Jan schrieb:
> Wolfgang schrieb:
>> In deine Schaltung trennst du mit dem Transistor die Masse vom
>> Display.
>
> Du hast vollkommen recht. Aber was ist mit den beiden I2C Pins, die mit
> einem Pullup verbunden sind? Ist es da nicht sinnvoller die Masse zu
> trennen? Oder sollte ich doch besser die Versorgungsspannung trennen
> (und was ist dann mit der Regel von der Transistorseite, oder kann ich
> das vernachlässigen?)
Ich würde die Betriebsspannung des Displays und die beiden Pullups des 
I2C verbinden und abschaltbar machen. Den Transistor kannst du dir 
sparen die paar mA die so ein OLED braucht liefert auch der Portpin.

Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.