esp32 für die Modellbahn

Die Arduino DUE, sowie die ESP32, ESP8266 und sonstige.
Benutzeravatar
e69-fan
Beiträge: 282
Registriert: Mi 20. Jan 2021, 10:32
Wohnort: Murnau am Staffelsee

esp32 für die Modellbahn

Beitrag von e69-fan »

Hallo,

die https://github.com/MicroBahner/MobaTools wurden für den Einsatz von esp32 erweitert. Interessant erscheint mit die Ansteuerung von Servos.

Eine gute Einführung hierzu habe ich unter https://www.user.tu-berlin.de/lieske/dE ... -ebook.pdf gefunden.

Es könnte u.a. https://www.az-delivery.de/collections/ ... v-kit-c-v4 verwendet werden.
Grüße aus der Heimat der E69
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

Hööö,
ich habe dir gerade eine Mal geschrieben, um zu erfahren wie es dir geht. Aber dann gehts wohl wieder besser. :oo:

Ja, ESP32 habe ich bisher immer ausgeklammert. Die waren einfach immer völlig unnötig. Aber ok, ich schaue mir das mal an. Vielleicht habe ich Lust mal was damit zu tun.

Franz
Benutzeravatar
e69-fan
Beiträge: 282
Registriert: Mi 20. Jan 2021, 10:32
Wohnort: Murnau am Staffelsee

Re: esp32 für die Modellbahn

Beitrag von e69-fan »

Servus,

ich finde halt das ebook toll, alles verständlich beschrieben.

Mir ist klar, das ist eine andere Welt - aber viele Pins ev. sogar zweimal I2C aber zu viele Beigaben, die ich noch lange nicht brauche.

Der Preis scheint mir fair zu sein, wenn man die Preissteigerungen der nanos in letzter Zeit anschaut.

:agt: Chipmangel - hahaha - clevere Frühlingsrollen.


Servus
Grüße aus der Heimat der E69
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

Ich habe mal ein paar wichtige Merkmale rauskopiert aus dem Handbuch, das mir auch recht gut gefällt :(V):

• 32-Bit Xtensa RISC-CPU: Dual-Core Mikrocontroller Tensilica Xtensa LX6
• Betriebsgeschwindigkeit von 160 … 240 MHz
• 520 KB SRAM
• 448 KB ROM
• 16 KB SRAM (in der RTC)
• IEEE 802.11 b/g/ne/I-WLAN
• Bluetooth 4.2
• 12-Bit-ADC mit 18 Kanalen
• 8-Bit-DAC mit 2 Kanalen
• 10 Touch-Sensoren
• Temperatursensor
36 GPIOs
• 4 x SPI
• 2 x I2C
• 2 x I2S
• 3 x UART
• 1 x CAN Bus 2.0
• SD-Speicherkarten-Unterstutzung
• Betrieb mit 2,2 … 3,36 V
• RTC-Timer und Watchdog
• Hall-Sensor
• 16 PWM-Kanale
• Ethernet-Schnittstelle
• Interner 8-MHz- und RC-Oszillator
Das offizielle ESP32-Handbuch

• Externer 2 … 60-MHz- und 32 kHz Oszillator
• Kryptografische Hardware-Beschleunigung (AES, HASH, RSA, ECC, RNG)
• IEEE 802.11 Sicherheitsmerkmale
• 5 μa Stromaufnahme im Sleep-Modus
Tabelle 1.1 Vergleich der Grundeigenschaften von ESP32- und ESP8266-Prozessoren.
Technische Daten ESP32 ESP8266
CPU 32-Bit Xtensa L106 Single-Core 32-Bit Xtensa LX6 Dual-Core
Betriebsfrequenz 160 MHz 80 MHz
Bluetooth Bluetooth 4.2 nein
WLAN Ja (HT40) Ja (HT20)
SRAM 512 KB 160 KB
GPIOs 36 17
Hardware-PWM 1 nein
Software-PWM 16 8
SPI/I2C/I2S/UART 4/2/2/2 2/1/2/2
CAN 1 nein
ADC 12-bit 10-bit
Touch-Sensor 10 nein
Temperatursensor 1 nein
Ethernet-MAC-Schnittstelle 1 nein
Tabelle 1.2. Vergleich von ESP32 und ESP8266
1.2 Die Architektur des ESP32
Bild 1.1 zeigt die Funktionsblocke des ESP32-Prozessors (siehe ESP32-Datasheet, Espressif
Systems, 2017). Im Mittelpunkt befindet sich die Dual-Core-CPU Xtensa LX6 mit
dem Speicher. Auf der linken Seite sind die peripheren Schnittstellenblocke wie SPI, I2C,
I2S, SDIO, UART, CAN, ETH, IR, PWM, Temperatursensor, Touch-Sensor, DAC und ADC zu
sehen. Die Bluetooth- und WLAN-Module befinden sich oben in der Mitte des Blockschaltbildes,
der Taktgenerator und der HF-Transceiver rechts daneben. In der rechten Mitte sind
die Module fur kryptographische Hardware-Beschleunigung wie SHA, RSA, AES und RNG zu
sehen. Und ganz unten befinden sich RTC, PMU, Co-Prozessor und der Recovery-Speicher.

KAPITEL 1 • DER ESP32-PROZESSOR
Bild 1.1. Funktionsblöcke des ESP32-Prozessors
Bild 1.2 zeigt die Struktur des Systems, bestehend aus der Dual-Core-CPU mit Harvard-Architektur
mit den Bezeichnungen PRO_CPU (fur Protokoll-CPU) und APP_CPU (fur Applikations-
CPU). Die Module dazwischen sind beiden CPUs gemeinsam. Detaillierte Informationen
zur internen Architektur des ESP32 erhalten Sie im ESP32 Technical Reference
Manual (Espressif Systems, 2017). Einige Informationen uber die internen Module finden
Sie weiter hinten in diesem Buch.
Bild 1.2. Systemstruktur
1.2.1 Die CPU
Die CPU kann mit bis zu 240 MHz betrieben werden und unterstutzt 7-stufiges Pipelining mit
einem 16/24-Bit-Befehlssatz. Gleitkomma-Operationen und DSP-Befehle wie 32-Bit-Multiplikator,
32-Bit-Teiler und 40-Bit-MAC werden unterstutzt. Es stehen bis zu 70 externe und
interne Interrupt-Quellen mit 32 Interrupt-Vektoren zur Verfugung. Das Debugging kann
uber die JTAG-Schnittstelle erfolgen.
Das offizielle ESP32-Handbuch

1.2.2 Interner Speicher
Auf dem Chip gibt es 520 KB SRAM und 448 KB ROM (zum Booten). Das RTC-Modul enthalt
je 8 KB langsamen und schnellen Speicher. Es ist 1 Kbit eFuse verfugbar, wobei 256 Bits
fur die MAC-Adresse und die Chip-Konfiguration reserviert sind, wahrend die restlichen
768 Bits fur User-Anwendungen offenstehen.
1.2.3 Externer Speicher
Es werden bis zu 4x16 MB externer Flash- und SRAM-Speicher unterstutzt, auf den uber
einen High-Speed-Cache zugegriffen werden kann. Bis zu 16 MB des externen Flash-Speichers
werden auf den CPU-Code-Raum, bis zu 8 MB des externen Flash/SRAM-Speichers
auf den CPU-Datenraum abgebildet. Das Lesen von Daten ist sowohl vom Flash als auch
vom SRAM moglich, wahrend Daten nur auf das SRAM geschrieben werden konnen.
1.2.4 Universal-Timer
Vier 64-Bit-Universal-Timer konnen im ESP32-Prozessor software-gesteuert werden. Die
Timer verfugen uber 16-Bit-Vorteiler (2 … 65535) und Auto-Reload-Auf- und Abwartszahler.
Die Timer konnen, wenn so konfiguriert, Interrupts erzeugen.
1.2.5 Watchdog-Timer
Drei Watchdog-Timer mit programmierbaren Timeout-Werten stehen zur Verfugung. Zwei
der Watchdog-Timer sind sogenannte „Main Watchdog Timer" und befinden sich im Block
der Universal-Timer, wahrend der dritte, der „RTC Watchdog Timer", sich im RTC-Modul
befindet. Bei einem Reset der Watchdog-Timer konnen ein Interrupt, ein CPU-Reset, ein
Core-Reset und ein System-Reset erzeugt werden.
1.2.6 Der Systemtakt
Wenn der Prozessor zuruckgesetzt wird, ubernimmt ein externer Quarztakt das System-
Timing. Die Taktfrequenz betragt typischerweise 160 MHz und wird mithilfe einer PLL
konfiguriert.
Ein genauer interner Takt (8 MHz) ist ebenfalls moglich. Dem Programmierer steht es frei,
einen externen oder internen Takt zu wahlen.
Die RTC kann mit einem externen 32-kHz-Quarz, einem internen RC-Oszillator (typischerweise
150 kHz) oder einem internen 8-MHz-Oszillator getaktet werden. Durch eine Teilung
des internen 8-MHz-Taktes durch 256 ist auch eine Taktung der RTC mit 31,25 kHz moglich.
1.2.7 Transceiver
Der ESP32-Prozessor verfugt uber interne 2,4-GHz-Sende- und Empfangsmodule fur
WLAN- und Bluetooth-Kommunikation.
1.2.8 Universal-Ein- und Ausgänge (GPIOs)
Es gibt 34 GPIOs, die fur den digitalen, analogen oder den Einsatz als kapazitiver Touchscreen
konfiguriert werden konnen. Digitalen GPIOs konnen durch Konfiguration interne
Pull-up- oder Pull-Down-Widerstande hinzugefugt oder ein hochohmiger Zustand zugewiesen
werden. Eingangs-Pins konnen so konfiguriert werden, dass sie Interrupts als Flanken
oder Pegelanderung akzeptieren.

KAPITEL 1 • DER ESP32-PROZESSOR
1.2.9 Analog-Digital-Wandler (ADC)
Der ESP32-Prozessor enthalt einen 12-Bit-A/D-Wandler mit 18 Kanalen. Um niedrige Analogspannungen
zu messen, konnen einige der Eingange als programmierbare Verstarker
konfiguriert werden.
1.2.10 Digital-Analog-Wandler (DAC)
Der ESP32-Prozessor verfugt uber zwei unabhangige 8-Bit-D/A-Wandler.
1.2.11 Hall-Sensor
Der Prozessor verfugt uber einen resistiven Hall-Sensor. Befindet sich der Sensor in einem
Magnetfeld, erzeugt er eine kleine Spannung, die vom A/D-Wandler gemessen werden
kann.
1.2.12 Temperatursensor
Weiterhin steht ein interner analoger Temperatursensor fur Temperaturen im Bereich von
-40 … +125 °C zur Verfugung. Die gemessene Temperatur wird vom A/D-Wandler digitalisiert.
Die Messung wird von der Temperatur des Chips und seiner aktiven Module beeinflusst,
so dass der Temperatursensor nur zur Messung von Temperaturschwankungen und
nicht der absoluten Temperatur geeignet ist.
1.2.13 Touch-Sensor
Der Anschluss von bis zu zehn kapazitiven Touch-Sensoren ist moglich. Die GPIO-Pins konnen
die kapazitiven Anderungen erfassen, die durch den direkten Kontakt mit einem Finger
oder einem anderen geeigneten Objekt erzeugt werden.
1.2.14 UART
Fur die serielle Kommunikation (RS232, RS485 und IrDA) sind drei UARTs mit Geschwindigkeiten
von bis zu 5 Mbps vorgesehen.
1.2.15 I2C-Schnittstelle
ESP32-Prozessor bietet bis zu zwei I2C-Bus-Schnittstellen, die im Master- oder Slave-Modus
konfiguriert werden konnen. Die Schnittstellen unterstutzen den 400-Kbit/s-Fast-Transfer-
Modus mit sieben oder zehn Bit breiter Adressierung. Auf diese Pins konnen externe Bauteile
mit I2C-Bus-kompatibler Schnittstelle angeschlossen werden.
1.2.16 I2S-Schnittstelle
Der ESP32-Prozessor unterstutzt bis zu zwei I2S-Bus-Schnittstellen im Master- oder Slave-
Modus, im Voll- oder Halbduplex-Betrieb. Die Taktfrequenz kann 10 kHz bis 40 MHz
betragen.
1.2.17 Infrarot-Controller
Bis zu 8 Kanale einer programmierbaren Infrarot-Fernbedienung werden vom ESP32 unterstutzt.
Die Wellenformen beim Senden und Empfangen konnen im gemeinsam genutzten
512x32-Bit-Speicher niedergelegt werden.
1.2.18 Pulsweitenmodulation
Pulsweitenmodulation (PWM) wird verwendet, um Gerate wie Motoren, elektrische Heizungen,
intelligente Leuchten und Ahnliches zu steuern. Der ESP32 stellt dazu ein programmierbares
Hardware-PWM-Modul und 16 per Software konfigurierbare PWM-Module bereit.
1.2.19 LED-PWM
Mit der LED-PWM konnen bis zu 16 unabhangige digitale Wellenformen mit konfigurierbaren
Tastverhaltnissen und Perioden erzeugt werden. Das Tastverhaltnis lasst sich per
Software in einem Schritt-fur-Schritt-Modus andern.
1.2.20 Impulszähler
Es gibt bis zu acht Impulszahler-Kanale, um Impulse zu erfassen und Impulsflanken zu
zahlen. Wenn der Zahler einen vordefinierten Wert erreicht, kann ein Interrupt erzeugt
werden.
1.2.21 SPI-Schnittstelle
Bis zu vier SPI-Schnittstellen im Master- und Slave-Modus werden vom ESP32 unterstutzt.
An diese Pins konnen externe Bauteile mit SPI-Schnittstelle angeschlossen werden.
1.2.22 Hardware-Beschleuniger
Der ESP32 unterstutzt Hardware-Beschleuniger fur mathematische Operationen mit Algorithmen
wie AES, SHA, RSA und ECC. Diese Beschleuniger helfen, die Verarbeitungsgeschwindigkeit
zu erhohen und auch die Komplexitat der Software zu verringern.
1.3 ESP32-Entwicklungsboards
Der ESP32-Chip ist sehr komplex und lasst sich nicht ohne Hilfsmittel erforschen. Deshalb
gibt es auf dem Markt mehrere Entwicklungsboards auf der Basis des ESP32-Chips. Diese
Entwicklungsplatinen enthalten einen ESP32-Chip und die dazugehorige Hardware, um die
Entwicklung von Projekten auf Basis des ESP32 zu vereinfachen. In diesem Kapitel wollen
wir uns die Eigenschaften einiger popularer ESP32-Entwicklungsboards ansehen.
1.3.1 SparkFun ESP32 Thing
Auf diesem Entwicklungsboard (siehe Bild 1.3) gibt es einen FTDI-Chip, der USB in serielle
Signale umwandelt, damit der Computer mit dem Board kommunizieren kann. Zur Unterstutzung
der Projektentwicklung gibt es LEDs und Tasten auf dem Board. Ein LiPo-Lademodul
ist ebenfalls enthalten, so dass die Platine mit einer geeigneten Batterie versorgt
werden kann. Das Board bietet 28 GPIO und 4 MB Flash-Speicher.
.
.
ESP32_DEVBOARD_Forum.jpg
ESP32_DEVBOARD_Forum.jpg (172.59 KiB) 1695 mal betrachtet
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

Ich habe mir mal 5 Stück von AZ-Delivery geschossen. 6,- Euro das Stück.

Ich habe hier noch eine PDF zu diesen ESP32 von AZ Delivery

Besonderheiten:
Wie beim Vorgängermodell ESP8266 ist die WLAN-Funktionalität direkt in den SoC implementiert,
jedoch mit zusätzlicher Bluetooth Funktion (incl. BLE).
Der verwendete ESP32-Prozessor vereint in einem einzelnen Mikrocontroller-Chip
eine CPU mit 2 Tensilica-LX6-Kernen,
getaktet mit bis zu 240 MHz,
und 512 Kilobyte SRAM.
Dazu integriert er eine Funkeinheit für WLAN (nach 802.11bgn)
und Bluetooth (Classic und LE).

LG
Franz :(V):

PS: Zwei könntest du haben. Ich habe fünf genommen, weil es dann Portofrei ist. Also wenn du noch keine hast, dann sind zwei übrig, 6,- Euro das Stück.
Benutzeravatar
e69-fan
Beiträge: 282
Registriert: Mi 20. Jan 2021, 10:32
Wohnort: Murnau am Staffelsee

Re: esp32 für die Modellbahn

Beitrag von e69-fan »

:(V):

Ich würde Dir gerne einen abkaufen

Servus
Grüße aus der Heimat der E69
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

OK, ich sage bescheid wenn ich sie da habe. Zustellung ist für Freitag angekündigt.

Schönen Abend
Franz

PS: Die ESP32 Boards habe ich in der IDE schon mal installiert. Bin gespannt ob das Programmieren gleich klappt :O: Bisher hatte ich nur die ESP8266 Boards installiert. Aber auch die habe ich noch nicht getestet. :agt:
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

Habe die Dinger vor einer Std. bekommen. Habe mal einen ausgepackt, angeschlossen, ein kleines Blink Programm ein paarmal geändert und wieder geladen. Geht Easy. Ich muss mir nur noch ein Testboard machen, dass ich wieder wie üblich Testaufbauten machen kann. Also so wie hier der Nano. Nur dass dann hinter der weissen Front ein DC/DC Wandler werken wird, der aus den 5 Volt 3,3 Volt macht. So kann ich das Ding wie alle anderen Testboards die ich mir da gebaut haben, auch an 5 Volt anschließen, aber nur 3,3 Volt an dem kleinen Messgerät angezeigt werden, und alles was da vorne drauf ist, dann mit 3,3 Volt versorgt wird.
.
Nano mit Sensor_Shield_und Uhr.JPG
Nano mit Sensor_Shield_und Uhr.JPG (411.58 KiB) 1730 mal betrachtet
Habe mir jetzt noch zwei von den Dingern hier bestellt. Das ich wieder wie gewohnt Testaufbauten machen kann.

Und zwei Oled Displays habe ich auch noch bestellt. Dann bin ich wieder bereit für neue Ziele :oo:

Und ich muss mal Schauen was ich da für ein Display dranhängen kann. Die Scheiß Dinger haben ja 3,3 Volt :xx:

Grüße
Franz
Benutzeravatar
Admin
Administrator
Beiträge: 1196
Registriert: Mo 20. Apr 2020, 09:47
Wohnort: 82441 Ohlstadt
Kontaktdaten:

Re: esp32 für die Modellbahn

Beitrag von Admin »

Ich habe gerade in Arduino.CC Forum einen Tipp bekommen. Das sollte man gleich machen, wenn man diese Dinger gekauft hat. einen 10mycroFarad Elko zwischen "EN" und "GND" löten. Sonnst kann es beim Laden der Programme zu einem Fehler kommen.

Dann steht da: "Beim Hochladen des Sketches ist ein Fehler aufgetretten"

Das lässt sich mit dem Elko beseitigen. Offenbar nicht neu der Fehler, aber die Hersteller sind zu blöd um diesen Fehler zu korrigieren.

Das schaut dann so aus:
.
ESP32_REP01.jpg
ESP32_REP01.jpg (216.42 KiB) 1721 mal betrachtet
Benutzeravatar
e69-fan
Beiträge: 282
Registriert: Mi 20. Jan 2021, 10:32
Wohnort: Murnau am Staffelsee

Re: esp32 für die Modellbahn

Beitrag von e69-fan »

Hallo Franz,

:sad:
Dann steht da: "Beim Hochladen des Sketches ist ein Fehler aufgetretten"
:lol:
Zitat- az-delivery
Wenn der Upload nicht beim ersten Versuch funktioniert, könnte es helfen
den "Boot-Knopf" auf dem Modul während des Uploads zu drücken. Bitte
benutzen Sie ein USB 2.0-zertifiziertes Kabel für die Programmierung.
---------------------------------------------------------------------------------------------------------------------------
Ich schaue mir mal die PIN-Belegung an - da ist ja einiges zu beachten:
Folgende Pins werden verwendet, um den ESP32 in den Bootloader- oder
Flash-Modus zu versetzen:
GPIO 0, GPIO 2, GPIO 4, GPIO 5 (muss beim Booten HIGH sein), GPIO 12
(muss beim Booten LOW sein), GPIO 15 (muss beim Booten HIGH sein)
https://github.com/espressif/esptool/wi ... -Selection
Der ESP32 hat 18x12 Bit ADC (Analog-Digital-Wandler) Eingangskanäle
Es gibt 2 x 8 Bits DAC (Digital-zu-Analog-Wandler) Kanäle auf dem ESP32,
um digitale Signale in analoge Spannungssignalausgänge zu konvertieren.
Dies sind die DAC-Kanäle:
DAC1 (GPIO25), DAC2 (GPIO26).
:oo: Ich könnte am Anfang 18 PINs für meine Standardanwendungen belegen und spare mir einen Portexpander - oder ???
Grüße aus der Heimat der E69
Antworten

Zurück zu „Programmierung der 32Bit Controller“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste