Forum: Mikrocontroller und Digitale Elektronik STM32, ESP8266 Dev-Board


von Marcel S. (lineage91)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte hier gerne mein STM32/ESP8266 Dev-Board vorstellen.

Zuerst nur der Schaltplan (an dem noch ein paar Erweiterungen 
vorgenommen werden), da das Layout noch nicht fertig ist.

Ich möchte die erfahreneren STM32 Nutzer bitten, besonders auf die 
Beschaltung des Prozessors zu achten, da dies meine erste Eigene Platine 
mit STM32 Prozessor ist.

Das Board beinhaltet einen Schaltregler für die 3,3V Versorgung des 
Prozessors und des ESP8266.

Ein ULN für die Ausgänge, 2 Schalter und Zwei LEDs.
Programmiert wird über SWD, möglich ist aber auch die Nutzung des UART 
Bootloaders.

Es fehlt noch die Batterie für die RTC und Stecker um die 3,3V heraus zu 
führen.

Das Board soll Steckbrett tauglich sein und möglichst Stromsparend, 
damit es in späteren IoT Anwendungen sinnvoll eingesetzt werden kann.

von Dr. Sommer (Gast)


Lesenswert?

Wenn man es schon wagt von seinem geliebten AVR 8-Bit Controller 
wegzugehen, kann man auch von der AT-Commands-Krücke ESP8266 weggehen 
und gleich einen TI CC3200 nehmen, ein ARM Cortex-M4 Controller mit 
integriertem WiFi Controller. Da hat man dann mehr Flexibilität und 
volle Kontrolle über den ganzen Netzwerk Stack.

von Marcel S. (lineage91)


Lesenswert?

Mit TI Controllern habe ich bis jetzt garkeine erfahrung?
wie sehen da die möglichkeiten des Programmierens/Debuggens aus?

Wie sieht die Beschaffbarkeit aus?

bis jetzt kann ich alle Bauteile (außnahme ist der ESP, der in der Bucht 
günstig zu bekommen ist) bei Tante A. bestellen.

Nachtrag: Ich sehe den gibt es nur im QFN Gehäuse, grundsätzlich benutze 
ich gerne SMD-Bauteile, aber QFN mit über 60 pins zu Hause löten stelle 
ich mir Schwierig vor.

: Bearbeitet durch User
von Schaulus Tiger (Gast)


Lesenswert?

Na gut, du hast es so gewollt ;)

* ST empfiehlt direkt am NRST-Pin einen 100n, aber keinen
  externen Pullpup

* der UART-Bootloader funktioniert nur mit USART1 (PA9, PA10).
  Flashen per WLAN wäre nett, aber der ESP muss wahrscheinlich
  initialisiert werden. USART3 für den ESP scheint mir günstiger.
  PA2,PA3 sind ziemlich universelle Pins mit USART2, ADC und Timer,
  deswegen wäre USART2 für den ESP Verschwendung.

* BOOT0 wird doch nur für den UART-Bootloader gebraucht, gehört
  das Signal nicht eher auf einen Stecker mit USART1?

* dann wäre auf X5 ein Pin frei für TRACESWO (PB3). Mit einem
  guten Debugger könnte das Signal nützlich sein, z.B. ITM-printf

* wenn X4 auch GND und idealerweise die Eingangsspannung raus
  führen würde, brauchte man nur ein Kabel zu Relais- usw.-Platinen

* wenn die Pins knapp werden: BOOT1 (PB2) kann als Ausgang benutzt
  werden, z.B. für eine LED

* was bedeutet I2C_IO12 an PA8? Laut meinem Datenblatt ist das der
  MCO-Ausgang - sehr nützlich, wenn man an der Taktfrequenz zweifelt

* Vor dem Schaltregler wäre ein wenig Eingangsfilter nett

* Ich würde einen Schaltregler mit weniger Power vorziehen, in der
  Hoffnung, dass bei Kurzschlüssen nicht ganz soviel abbrennt.

duckundweg

von Marcel S. (lineage91)


Lesenswert?

Vielen Dank für die ausführlichen Hinweise:

Schaulus Tiger schrieb:
> Na gut, du hast es so gewollt ;)
>
> * ST empfiehlt direkt am NRST-Pin einen 100n, aber keinen
>   externen Pullpup
mein Fehler, habe ich korrigiert.

> * der UART-Bootloader funktioniert nur mit USART1 (PA9, PA10).
>   Flashen per WLAN wäre nett, aber der ESP muss wahrscheinlich
>   initialisiert werden. USART3 für den ESP scheint mir günstiger.
>   PA2,PA3 sind ziemlich universelle Pins mit USART2, ADC und Timer,
>   deswegen wäre USART2 für den ESP Verschwendung.
ESP auf USART3 Verlegt

> * BOOT0 wird doch nur für den UART-Bootloader gebraucht, gehört
>   das Signal nicht eher auf einen Stecker mit USART1?
Zusätzliche Stiftleiste mit USART1 und Boot0 eingeführt

> * dann wäre auf X5 ein Pin frei für TRACESWO (PB3). Mit einem
>   guten Debugger könnte das Signal nützlich sein, z.B. ITM-printf
Da ich nicht vor hatte mir einen vollwertigen Debugger zuzulegen, für 
mich uninteressant (wenn ich die Funktion richtig verstanden habe)

> * wenn X4 auch GND und idealerweise die Eingangsspannung raus
>   führen würde, brauchte man nur ein Kabel zu Relais- usw.-Platinen
Da die Platine Später "Huckepack" auf die z.b. Relaisplatine soll, nicht 
notwendig.

> * wenn die Pins knapp werden: BOOT1 (PB2) kann als Ausgang benutzt
>   werden, z.B. für eine LED


> * was bedeutet I2C_IO12 an PA8? Laut meinem Datenblatt ist das der
>   MCO-Ausgang - sehr nützlich, wenn man an der Taktfrequenz zweifelt
IO12/IO22 sollten zusätzliche I/O Pins sein für mögliche I2C 
Erweiterungen, kann also bei Bedarf auch anderweitig genutzt werden

> * Vor dem Schaltregler wäre ein wenig Eingangsfilter nett
>
> * Ich würde einen Schaltregler mit weniger Power vorziehen, in der
>   Hoffnung, dass bei Kurzschlüssen nicht ganz soviel abbrennt.

Eingangsfilter kommt (muss ich noch ein bisschen was zur Dimensionierung 
lesen, da fehlt mir die Erfahrung für).
Der Schaltregler wurde bewusst sehr großzügig dimensioniert, um ggf. 
neben dem ESP auch noch eine SD-Karte und ein Display betreiben zu 
können.
Außerdem habe ich diesen Schaltregler schonmal benutzt.

Wenn du einen bestimmten im Sinn hast, der von der Leistung besser passt 
und leicht beschaffbar ist (für Privat) wäre ich dir natürlich dankbar.

Neuer Schaltplan wird nachgereicht ;-)

Gruß
M. Scheibenzuber

von Marcel S. (lineage91)


Angehängte Dateien:

Lesenswert?

So, die Änderungen sind Teilweise umgesetzt.

Der Eingangsfilter fehlt noch.

Der ESP wurde doch auf USART1 belassen, da PB10/PB11 (USART3) für I2C 
benötigt werden.

Der Boot0 Pin wurde auf den Stecker des ESP verlegt, so kann man bei 
Bedarf den ESP Stecker abziehen und über den Stecker Programmieren.

Außerdem wurde noch ein SPI EEPROM hinzugefügt, auf dem dann Daten 
abgelegt werden, die öfter mal geändert werden.
Da der Flash des STM32 immer nur Blockweise gelöscht/Beschrieben werden 
können, wollte ich den Prozessor nicht mit Daten belasten die sich 
häufig ändern.

Der Stecker X4 hat nun doch Masse und die Betriebsspannung spendiert 
bekommen, man weiß ja nie wann man es doch mal braucht.

Die Zusätzlichen Stecker vür 3,3V dienen hauptsächlich als mechanische 
Stütze der Platine, da sich beim Layout eine etwas ungleiche Verteilung 
der Stiftleisten ergeben hat.

Außerdem wurde der Batteriehalter entfernt, da er viel Platz einnimmt.
Der VBAT Pin wurde über Dioden zum einen mit 3,3V verbunden und zum 
anderen mit einer Stiftleiste um Extern eine Batterie anschließen zu 
können. Solange die Betriebsspannung vorhanden ist, wird so die Batterie 
nicht Belastet.

Gruß
M.Scheibenzuber

von Schaulus Tiger (Gast)


Lesenswert?

Marcel Scheibenzuber schrieb:

> Der Schaltregler wurde bewusst sehr großzügig dimensioniert,
> um ggf. neben dem ESP auch noch eine SD-Karte und ein Display
> betreiben zu können.
> Außerdem habe ich diesen Schaltregler schonmal benutzt.

Argumente; da will ich nicht widersprechen.

> Außerdem wurde noch ein SPI EEPROM hinzugefügt, auf dem dann Daten
> abgelegt werden, die öfter mal geändert werden.
> Da der Flash des STM32 immer nur Blockweise gelöscht/Beschrieben
> werden können...
und zum Löschen eine halbe Ewigkeit brauchen = Guter Plan!

Inzwischen kommen ja FRAM in Mode, am SPI 2MByte/s schreiben hat was :) 
Anscheinend sind die vor allem im 0.15" breiten SO-8 lieferbar, aber den 
25AA512 gibt's ja auch in dem Gehäuse ;)

> Der Stecker X4 hat nun doch Masse und die Betriebsspannung spendiert
> bekommen, man weiß ja nie wann man es doch mal braucht.
doch, schon, sobald die Platine fertig ist weiß man was fehlt...

> Außerdem wurde der Batteriehalter entfernt, da er viel Platz einnimmt.

Es gibt stehende Knopfzellenhalter, z.B. Bürklin 28A166. Und liegende 
mit Pins haben manchmal 2.5mm Luft unten drunter. Und 15mm dicke 
Rundzellen mit angeschweißten Lötpins sind eigentlich auch nur 5mm 
breit, weil 3D-mässig rund. Na gut, ich hör schon auf.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> AT-Commands-Krücke ESP8266 weggehen

ESP8266 kennt keine "AT-Commands", nur weil die china-händler
module mit AT-firmware eindrehen möchten muss man es nicht benutzen.

> und gleich einen TI CC3200 nehmen, ein ARM Cortex-M4 Controller mit
> integriertem WiFi Controller. Da hat man dann mehr Flexibilität und
> volle Kontrolle über den ganzen Netzwerk Stack.

auch wenn man es tatsächlich braucht, sind die 18EUR aufpreis viel

von Marcel S. (lineage91)


Lesenswert?

Zu den Knopfzellen: stehende Halter fallen raus, da sie zu hoch 
aufbauen,  vielleicht neben dem Modul auf der Platine die das board 
trägt.
fest eingelötete Knopfzellen mag ich persönlich nicht besonders, wegen 
der "erschwerten" auswechselbarkeit.
Außerdem kann man so auch statt der Knopfzellen z.b. einen goldcap 
verbauen, der von den 3,3 V geladenen wird.

zu Thomas R. :
sehe ich genauso.
fürs erste wollte ich die at-command firmware drauf lassen,  bei bedarf 
ist der code ja im sdk enthalten und kann angepasst werden.

Gruß
M. Scheibenzuber

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.