ESP8266 - GPIOs erweitern?

Gast #5113791
Lesenswert?

Hallo Forum,

ich experimentiere seit gestern Abend mit einem kleinen ESP8266-Board 
(ESP-01) herum.
Da dieses Board ja nur über zwei GPIOs verfügt, hätte ich eine Frage:

Die beiden GPIOs kann man als I²C-Schnittstelle nutzen. Dies habe ich 
auch vor, um ein Display über I²C anzusteuern. Das passende Display habe 
ich auch dafür, da ich das Ganze schon einmal mit einem Arduino getestet 
habe.

Wie aber kann ich die doch "sehr wenigen" GPIOs erweitern, um neben dem 
I²C (welcher beide GPIOs "belagert") auch einfache I/Os (und evtl. sogar 
PWM-Ausgang) habe?

Gibt es einen Art "Multiplexer", den man dann auch per I²C an die beiden 
Pins anschließt?

Wie würdet ihr das Ganze lösen?


Vielen Dank!
Gast #5113919
Lesenswert?

Pete K. schrieb:
> mit ganz vielen I/Os:
Vielleicht dein "viele".
Mein "viele" sieht anders aus.

1. Einige brauchen beim Boot bestimmte Pegel, sind damit für manche 
Anwendungen verdorben

2. Einige zappeln beim Boot rum, sind damit für manche Anwendungen 
verdorben

3. Einige gehen fürs Flash drauf. Davon könnte man 2 frei schaufeln.

4. Zwei klemmen fest am CH340G

Nee...
Im Endeffekt ist es nur eine kleine Handvoll.
#5113933
Lesenswert?

>Das Nodemcu Board gibt es für kleines Geld mit ganz vielen I/Os:
NaJa, 11 IOs und davon auch noch welche doppelt belegt.
Aber schon viel besser als 2 IOs.
Andere esp Boards wie das "Witty Cloud" und das "WEMOS" haben auch 
Vorteile.

Oder im nächsten Schritt auf den esp32 wechseln.
Der hat die doppelte Anzahl an IOs.
Gast #5113972
Lesenswert?

Das ESP-01 Modul hat 4 GPIO Ports, nicht zwei. Und die kann man auch 
alle 4 tatsächlich benutzen - wenn man für den normalen Betrieb keine 
serielle Schnittstelle braucht.

Wenn Dir die üblichen I²C Port Expander nicht gefallen bietet sich ein 
zweiter Mikrocontroller an. Da hast du hunderte zur freien Auswahl, 
irgendeiner wird zusammen mit deiner selbst zu schreibenden Firmware 
dann wohl auch das können, was du brauchst.

Die Kommunikation zwischen ESP-Modul und Mikrocontroller kann ja 
weiterhin I²C, oder UART sein. Wenn du ein ESP-07 oder ESP-12 Modul 
verwendest, könntest du auch SPI verwenden, da wäre die schnellste 
Variante.
#5114030
Lesenswert?

André R. schrieb:
> Wie schnell kann der ESP den I²C
> eigentlich beschicken?

Das Arduino Framework mit, laut Doku, ca. 450kHz.
Hier hat einer was darüber geschrieben:
https://tech.scargill.net/faster-esp-i2c/

Sowas gibt es aber auch:
https://github.com/pasko-zh/brzo_i2c
> 800 KHz @ 80 MHz CPU frequency
> 1 MHz @ 160 MHz CPU frequency

EDIT: Beim esp32 sieht es so aus:
>ESP32 has two I2C bus interfaces which can serve as I2C master or slave 
>depending on the user’s configuration.
>The I2C interfaces support:
>•Standard mode (100 kbit/s)
>•Fast mode (400 kbit/s)
>•Up to 5 MHz, but constrained by SDA pull up strength
>•7-bit/10-bit addressing mode
>•Dual addressing mode
>Users can program command registers to control I2C interfaces to have more 
>flexibility.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren