Hallo, ich habe auf Aliexpress ein kleines Board gefunden und will da ein bißchen experimentieren. Ich habe mal präventiv ein paar bestellt, die haben ja bis zu acht Wochen Lieferzeit. In www gibt es unterschiedliche Informationen über die Funktionen der Pins. Weiß jemand welche Pins man als Input und/ oder Outputs und welche Pins Interrupts verarbeiten können? https://de.aliexpress.com/item/1005006054605298.html?spm=a2g0o.order_list.order_list_main.35.3b085c5fl1BHSj&gatewayAdapt=glo2deu Vielen Dank für jede Antwort Hans
Schaltplan im Anhang, Datenblatt findest du hier: https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/hw-reference/index.html Beachten: Da drinnen werkelt ein Risc-V Core, Toolchain ist also eine andere als bei bisherigen ESP32. Sind aber nette Teile, und dass sie direkt USB unterstützen, und das Board deshalb den CH340 o.Ä. einsparen kann ist beim Stromsparen auch von Vorteil. Ach ja, die eigentliche Frage: Jeder GPIO-Pin ist interruptfähig.
:
Bearbeitet durch User
Hallo, da kopiert wieder jemand vom anderen. SeeedStudio bietet schon länger diesen Formfaktor. https://www.seeedstudio.com/Seeed-XIAO-ESP32C3-p-5431.html https://www.seeedstudio.com/MCU-c-1946.html?
Die lesen sich recht interessant, es gibt sogar schon MicroPython dafür.
Ich habe mal ein Mini-Benchmark ESP32-WROOM gegen ESP32-C3 laufen lassen: Micropython 1.21.0 auf beiden Boards installiert und per REPL Python laufen lassen:
1 | for i in range(10000000): # 10^7 Durchläufe |
2 | a=3**3 |
ESP32-WROOM brauchte 57 Sekunden, ESP32-C3 47 Sekunden, (evtl ist das Ergebnis nicht repräsentativ)
Hallo, dein ESP32C3 Board sollte gleich dem von XIAO sein. Deswegen frage ich einmal ob bei dir I2C in Hardware funktioniert oder nicht? "Wir" haben im Arduino Forum jemanden der bekommt sein I2C Display mit SSD1306 und u2g8 Lib per I2C Hardware nicht zum laufen. Nur per Software I2C. Mit Hardware I2C scheint es komplett einzufrieren. laut Aussage. Er sieht an den I2C Pins auch keine Signale. Die Frage wäre funktioniert bei dir irgendwas mit Wire.h Hardware I2C (RTC, Sensor, Display, etc.) und Ausgaben auf der Seriellen? Wenn ja könnte man den ESP32C3 als Problem ausschließen.
Mein Board habe ich bei Ali gekauft https://www.aliexpress.com/item/1005005955099518.html Ich arbeite nicht mit Arduino-... sondern mit Micropython. Tatsächlich kann man den Hardware-I2C nicht nutzen, SoftI2C geht einwandfrei.
1 | MicroPython v1.21.0 on 2023-10-06; ESP32C3 module with ESP32C3 |
2 | Type "help()" for more information. |
3 | >>> |
4 | >>> from machine import Pin, I2C |
5 | >>> i2c = I2C(scl=Pin(4), sda=Pin(3), freq=10000) |
6 | Warning: I2C(-1, ...) is deprecated, use SoftI2C(...) instead |
7 | >>> from machine import SoftI2C |
8 | >>> i2c = SoftI2C(scl=Pin(4), sda=Pin(3), freq=10000) |
9 | >>> i2c.scan() |
10 | [60] |
11 | >>> |
Auch die GPIOs funktionieren.
:
Bearbeitet durch User
Der esp32c3 ist kein herkömmlicher Esp32 (240mhz dual Core), sondern ein Singlecore risc-V, Soweit ich ich mich erinnere etwas mehr als die hälfte Taktrate. Das mit dem ssd1306 gab es auch schon auf Facebook, der erste mit Ahnung der das ausprobiert hatte, hat es dann doch schnell zum Laufen bekommen. Das Problem ist das man keinen echten Serial Port als Debug Port hat, da kommen viele dann nicht weiter. Der C3 hat einfach nur kleine Unterschiede im i2C.
Stephan S. schrieb: >>>> i2c = SoftI2C(scl=Pin(4), sda=Pin(3), freq=10000) P.S. Es funktioniert auch mit freq=100000 und 400000
Hallo, ich liebe solche Antworten. #Philipp K. schrieb: > Der esp32c3 ist kein herkömmlicher Esp32 (240mhz dual Core), sondern ein > Singlecore risc-V, Soweit ich ich mich erinnere etwas mehr als die > hälfte Taktrate. Das wissen wir schon. > Das mit dem ssd1306 gab es auch schon auf Facebook, der erste mit Ahnung > der das ausprobiert hatte, hat es dann doch schnell zum Laufen bekommen. Und wie hat er es zum Laufen gebracht? Doch nicht etwa mit Software I2C ... > Der C3 hat einfach nur kleine Unterschiede im i2C. Das wären genau? Das der RISC-V Kern alles intern irgendwie emuliert?
Veit D. schrieb: > Das wären genau? Das der RISC-V Kern alles intern irgendwie emuliert Also das weiß ich jetzt nicht, er hat aber ein i2c clock und Data Modul die eigenständig arbeiten. Wieso sollte das simuliert sein, und wenn ja wo ist dann das Problem?
Hallo, also mal Butter bei de Fische. Was weißt du wirklich? Hören sagen hilft hier nicht weiter. Das Datenblatt zum ESP32C3 hatte ich schon gelesen. Hilft mir bzw. dem anderen eigentlichen User mit XIAO ESP32C3 nicht weiter. Wo das Problem ist? I2C in Hardware funktioniert nicht bzw. blockiert andere Dinge wie die Serielle. Weil Software I2C und Serielle funktionieren. Das ESP Core Package für die Arduino IDE stammt von Espressif selbst. Jetzt kann darin ein Fehler sein oder der RISC-V Kern hat ein Problem. Letzteres glaube ich jedoch weniger. Ich hatte gehofft jemand sagt das Problem liegt genau da, Lösung x führt zum Erfolg oder es gibt dafür keine Lösung. Alles ist möglich. Ich bin nur neugierig, ich selbst habe das Teil nicht.
also es gibt eine zusätzlich Release binaries for Tasmota firmware 13.2.0 on ESP32 für den esp32c3 risc-v , dann aber läuft so manches andere nichtmehr. und der aus FB behält seine info wie er das zum laufen bekommen hat als GEHEIM. das hat er extra so beschrieben !!! der ist aber auch einer der professionell programiert. auch beschreibt er die probleme mit dem seriellen monitor. allerdings auch ohne eine lösung der probleme. dann gibt es die brzo_i2c-master.zip , ist aber auch keine sichere sache. denn die ist eigentlich für de esp8266 geschrieben , und in wiefern die sicher auf dem esp32c3 risc v läuft steht in den sternen. für privat als hobby ist das bestimmt so okay , wenn das ganze allerdings in eine fixe verkaufbare lösung werden soll , vergisses. manchmal läuft das ganze problemlos an , manchmal halt nicht und jedes mal zwischen boot und reset herum zu spielen ??? komisch ist nur !!! das keiner der Verkaufsfirmen ein beispiel für das Problem veröffentlicht. keiner bietet ein beispiel esp32c3 risc-v und ssd1306 ohne extra hardware an beschriebe probleme mit dem prozessor und der i2c gibt es zu haufe in den foren , ohne echte lösung
:
Bearbeitet durch User
das problem mit dem esp32c3 risc v prozessor ist das er keine der beschrieben ports , spi , i2c , tx/rx seriel HW ,in wirklichkeit hat !!! alles nur per Software in einem task mit den gpio's simuliert. genau deshalb gibt es diese probleme , sowohl mit der i2c als auch mit der spi und dem tx/rx als externe rs232. aber auch die serielle über den usb , ist nur eine JTAG , somit auch nur software. und da gibt einer der china ingenieuren zu erkennen das nicht sicher ist wiegut das programiert ist.
Veit D. schrieb: > also mal Butter bei de Fische. Ich befürchte das es jemand der Ahnung hat mit den ersten einschlägigen Google Ergebnissen oder Beachtung der vorhandenen issues der arduino-esp Repos in 20 Minuten hinbekommt. Nur tappt man da ohne ein paar Tests leider im Dunkeln wenn man helfen möchte und das gerät nicht hat. I2c ist halt kein Hexenwerk. Es kann halt soviel falsch laufen. Peter A. schrieb: > und der aus FB behält seine info wie er das zum laufen bekommen hat als > GEHEIM. Das war ironisch weil es wohl zu einfach ist, so habe ich das verstanden.
Gruss Ich frag mal. Und wie sieht es beim ESP32C3 für eine praktische Anwendung mit ADC, BLE und Smartphone aus? Informell bin ich bei den ESPs und ADC schon distanziert. Geht aber auch extern. Das microPython steht bei mir im Interesse, ( C(++) kann es durchaus auch sein.) Dirk St
anbei der FB Beitrag zu dem Display problem https://www.facebook.com/groups/808892179257035 XIAO ESP32-C3 I2C Oled
:
Bearbeitet durch User
Hallo, ich vermute der geheime Geheimprogrammierer hat das mit der Espressif IDE programmiert und mit der API dafür. https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/peripherals/i2c.html https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-reference/peripherals/i2c.html Gut zu wissen das es möglich ist wenn man weiß wie.
Dirk S. schrieb: > Gruss > > Ich frag mal. Und wie sieht es beim ESP32C3 ... Ich würde ja wenn dann den ESP32S3 nehmen. Der hat den Xtensa LX7 "ESP Standard-Core".
Veit D. schrieb: > https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-reference/peripherals/i2c.html This document is not updated for ESP32-C3 yet.
Stephan S. schrieb: > This document is not updated for ESP32-C3 yet. doch isses..bzw. gibts auch schon im Repo.. kommt man irgendwo ganz unten drauf. habe ich zwar mal drübergeschaut, konnte aber keine unterschiede finden.. da ich den nicht habe, auch nicht speziell gesucht....
:
Bearbeitet durch User
Da ich den Esp32-C3 sowieso mal ausprobieren wollte probierte ich das mit dem Display am Xiao-ESP32-C3. Das ganze war in 5 Minuten erledigt.. Ich brauchte das Board nur auspacken und 4 Jumper Kabel zum SSD1306 Display verstrippen. Dazu U8g2 HW-I2C Democode den ich mal etwas abgeändert habe genutzt (Ich vermute mal das klappt auch ohne abändern.) Es funktionierte, welch ein Wunder! Was etwas Übung forderte war über die SMD-Taster zwischen den Pin Headern in den Flashmode zu kommen.. ich musste doppelt resetten, bzw. das Board stromlos machen damit das Programm startete, trotz des SW-Reset am Ende vom Flashtool.
Philipp K. schrieb: > Was etwas Übung forderte war über die SMD-Taster zwischen den Pin > Headern in den Flashmode zu kommen.. ich musste doppelt resetten, bzw. > das Board stromlos machen damit das Programm startete, trotz des > SW-Reset am Ende vom Flashtool. Entspricht eigentlich allen "nackten" ESP's. Reset drücken und festhalten. Boot drücken und festhalten. Reset loslassen. Boot loslassen. Flashen....danach Reset drücken und er läuft. ;)
Veit D. schrieb: > "Wir" haben > im Arduino Forum jemanden der bekommt sein I2C Display mit SSD1306 und > u2g8 Lib per I2C Hardware nicht zum laufen. Nur per Software I2C. Mit > Hardware I2C scheint es komplett einzufrieren. laut Aussage. Mittlerweile gibt es da aber eine Lösung. Also u2g8 funktioniert auch am ESP32-C3 mit I2C Hardware.
:
Bearbeitet durch User
Dieter S. schrieb: > Veit D. schrieb: >> "Wir" haben >> im Arduino Forum jemanden der bekommt sein I2C Display mit SSD1306 und >> u2g8 Lib per I2C Hardware nicht zum laufen. Nur per Software I2C. Mit >> Hardware I2C scheint es komplett einzufrieren. laut Aussage. > > Mittlerweile gibt es da aber eine Lösung. > Also u2g8 funktioniert auch am ESP32-C3 mit I2C Hardware. Habe ich gelesen. :-) Sehr schön.
Dieter S. schrieb: > Reset drücken und festhalten. > Boot drücken und festhalten. > Reset loslassen. > Boot loslassen. > Flashen....danach Reset drücken und er läuft Das ist sooooo kompliziert, gibt es dafür keine App?
Steve van de Grens schrieb: > Das ist sooooo kompliziert, gibt es dafür keine App? Nö, aber man kann sich dafür zertifizieren lassen.
Die Probleme mit der Hardware-I2C lassen sich leicht lösen, wenn man sich das ESP32C3-Datenblatt ansieht. Darin heißt es, dass es sich bei den I2C-Leitungen um offene Drain-Pins handelt. Diese Pins müssen an VCC hochgezogen werden, damit sie ordnungsgemäß funktionieren. Beim XIAO ESP-C3 sind keine Pullups mit den Standard-I2C-Pins verbunden und diese müssen daher vom Benutzer hinzugefügt werden. Laut Espressif sollen die Werte bei einer Geschwindigkeit von 400kHz bei etwa 2K und bei einer Geschwindigkeit von 100kHz bei 5K liegen. Der ESP32-C3-(super)mini verwendet Pull-up-Widerstände mit einem Wert von 10K, die auf den Standard-I2C-Leitungen montiert sind. Hardware-I2C wird hier wahrscheinlich funktionieren, aber nur für niedrige Geschwindigkeiten (<50 kHz) und kurze Kabel. Es ist möglich, die I2C-Pins auf andere Pins zu verlegen, aber man sollte dann die benötigten Pull-up-Widerstände hinzufügen.
Jack D. schrieb: > Darin heißt es, dass es sich bei > den I2C-Leitungen um offene Drain-Pins handelt. Das ist bei I2C so und der ESP sollte da keine Ausnahme machen. > Diese Pins müssen an VCC hochgezogen werden, damit sie > ordnungsgemäß funktionieren. Das steht schon so in der I2C-Spezifikation (Kap. 3.1.1 SDA and SCL signals). Der ESP32C3 kann da nichts für. Das ist seit 42 Jahren so. https://www.nxp.com/docs/en/user-guide/UM10204.pdf
:
Bearbeitet durch User
Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 verbaut
Stephan S. schrieb: > Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 > verbaut Halt ein fauler Kompromiss, der für hohe Geschwindigkeit und lange Leitungen nichts taugt, aber bei anderweitiger Verwendung der Pins meist nicht stört. 10kΩ bei 3.3V ist für I2C schon heftig.
:
Bearbeitet durch User
Die 10k sind ein Kompromiss... diese "Arduino"-Platinchen werden gerne mit ähnlichen "Arduino"-I²C-Boards verknüpft, und dort sind auch jeweils 10k Pull-Up drauf. d.H. alles fein, zusammen sind das die geforderten 5k bei 100kHz. Wenn du zuviele von diesen Breakout-Boards parallel schaltest geht's halt nicht mehr. Und wenn du eigene Hardware/Platinchen über I²C anflanschen willst, musst du dich selber um die Pull-Ups kümmern.
Εrnst B. schrieb: > ... d.H. alles fein, zusammen sind das die geforderten 5k bei 100kHz. > Wenn du zuviele von diesen Breakout-Boards parallel schaltest geht's > halt nicht mehr. Wo hast du diese komische Forderung nach 5kΩ her. Damit bist du bei 3,3V mehr als einen Faktor 4 über dem laut Spezifikation zulässigen minimalen Wert und weit unter dem maximalen, der dann von deinem Aufbau abhängt. In der Abbildung in der I2C Spezifikation zum maximalen Pull-Up siehst du, dass der Widerstand von der kapazitiven Last abhängt und weit höher sein kann (I2C-Specifikationen Rev7 (*) in Figure 41. Rp(max) as a function of bus capacitance im Kap 7.1 Pull-up resistor sizing auf S.50) Um bei 3.3V die zulässigen 3mA zu überschreiten, müsstest du schon 10 oder mehr Busteilnehmer mit 10kΩ auf den Bus hängen. Das dürfte in der Breakout-Boards-Gemeinde dann doch schon eher selten sein. (I2C-Specifikationen (*) Fig. 42 im Kap 7.1 Pull-up resistor sizing, S.50) Die 3mA sind der Mindestwert, den ein Busteilnehmer im Fast- oder Standard-Mode schaffen können muss, d.h. selbst wenn der Strom höher ist, ist das noch lange keine Garantie, dass nichts mehr geht. Diejenigen, die mehr Teilnehmer auf den Bus hängen wollen, müssen dann zum Lötkolben greifen und ein paar Pull-Ups entfernen. *) https://www.nxp.com/docs/en/user-guide/UM10204.pdf
:
Bearbeitet durch User
Rainer W. schrieb: > Wo hast du diese komische Forderung nach 5kΩ her. Hierher, ohne die Quellen weiter zu kontrollieren: Jack D. schrieb: > Laut Espressif > sollen die Werte bei einer Geschwindigkeit von 400kHz bei etwa 2K und > bei einer Geschwindigkeit von 100kHz bei 5K liegen.
Meine Lieben, ich gebe gerne meinen Senf dazu, weil ich auch diese hübschen "ESP32C3 Super Mini" Boards bei Aliexpress gekauft habe: Die wichtigste Info und die häufigste Fehlerquelle ist m.E., dass das Pinout-Diagramm praktisch überall falsch ist (es sind sogar mehrere verschiedene im Umlauf), auch auf den Seiten der Aliexpress-Händler. Das "Drüberretten" mit Soft-I2C ist völlig unnötig: Nehmt das Pinout aus dem Schaltplan (rechts oben). Das stimmt. LG Ran PS:
... bei mir hat sich folgendes Pinout als stimmig erwiesen: https://microsoft.github.io/devicescript/devices/esp32/esp32c3-supermini
Wenn jemand schon ein Kicad7 schematic/footprint/3dModel gebastelt hat, würde ich mich über Link freuen. Möchte damit einen kleinen I2C Slave basteln und bei JLPCB mit ordern. Mit dual gate drivern (ucc37324: https://de.aliexpress.com/item/1005006041939790.html) ein paar Mosfets schalten.. Mein master board hat den S2Mini (https://github.com/RoboDurden/Esp32_20A_80V_dcdc) , da wäre Bluetooth5 vom C3Mini gar nicht verkehrt. Anbei das Produktphoto von 1,91€ AliExpress Verkäufer. Welche zwei I2C pins soll ich verwenden ? Mit 2000Hz, 50% duty pwm laden soll man die Zyklen von LiIon rund verdoppeln können: https://www.photovoltaikforum.com/thread/225892-liion-zyklenzahl-durch-gepulstes-laden-verdoppeln-2-khz-50-duty/ Ist für eBike Besitzer interessant, da wird kein LiFePo4 verbaut..
Gibts den für die Risc Variante die ganzen libs im Quellcode oder ist es da genauso wie bei den restlichen ESPxxx Chips? Ich frag mich nur immer wie da jemand garantiert, dass sich nicht in vielen Millionen Chips Hintertüren befinden die nur auf den Tag X warten. Bei jedem richtigen Computer schreit alles auf wegen jeder noch so kleinen Sicherheitslücke aber bei den Controllern hat keiner ein Auge drauf und alle linken die Firmware-Libs aus dem Expressiv SDK ohne irgendwas zu hinterfragen oder sich darüber Gedanken zu machen und hängen mit den Teilen in der Regel direkt am Internet.
Jürgen L. schrieb: > aber bei den Controllern hat keiner ein Auge drauf Doch durchaus. Sonst wären die ESP Chips in kommerziellen Geräten (die nicht aus China kommen) viel häufiger anzutreffen, als es derzeit der Fall ist.
Okay dann hab ich mal selber symbol/footprint/3dModel gebastelt, siehe Anhang. Bin noch totaler Anfänger mit KiCad, in der Zip sollten aber irgendwie alle daten drinne sein. Wäre halt für mich wichtig zu wissen, wenn die i2c pins nicht frei wählbar wären. Ebenso wenn nicht alle gpio pwm unterstützen. Wobei ich 2 kHz 50% duty zur not auch per interrupt schalten kann.
Das R. schrieb: > Wäre halt für mich wichtig zu wissen, wenn die i2c pins nicht frei > wählbar wären. Schick doch eine Adresse über den I2C raus. Dann siehst du, welche Pins wackeln.
Ich möchte mein pcb aber schon bei JLPCB bestellen, bevor ich so einen C3SuperMini testen kann.
JLPCB ist anscheinend zu preisgünstig geworden. Früher ging das andersrum.
Ja, fünfmal 10x10cm mit standard versand (9-12 Tage) für unter 4€. Mein Haupt-Board v2 möchte ich bestellen, also pack ich das i2c slave board kostenlos dazu. Drum wüsste ich immer noch gern, wo die i2c pins bei den aktuellen AliExpress 1,9€ Teilen sind.
Das R. schrieb: > Drum wüsste ich immer noch gern, wo die i2c pins bei den aktuellen > AliExpress 1,9€ Teilen sind. Hallo, ist alles aus dem Board Schaltplan ersichtlich.
Das R. schrieb: > Drum wüsste ich immer noch gern, wo die i2c pins bei den aktuellen Was passiert den wenn du einfach mal bei Google z.B. "ESP32-C3 datasheet" alternativ "pinout" eingibst? Einer der ersten Ergebnisse : https://www.studiopieters.nl/esp32-c3-pinout/ "The ADC (Analogue to Digital Converter) and DAC (Digital to Analogue Converter) features are assigned to specific static pins. However, you can decide which pins are UART, I2C, SPI, PWM, etc – you just need to assign them in the code. This is possible due to the ESP32-C3 chip’s multiplexing feature."
Stephan S. schrieb: > Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 > verbaut In diesem Thread stehen alt lauter unterschiedliche Angaben, was denn nun die standard gpio pins für i2c sind und ob da pullup widerstände auf der kleinen platine verbaut sind.
Das R. schrieb: > Drum wüsste ich immer noch gern, wo die i2c pins bei den aktuellen > AliExpress 1,9€ Teilen sind. Die kannst du selber bei den C3 super mini recht frei festlegen.
Das R. schrieb: > Stephan S. schrieb: >> Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 >> verbaut > > In diesem Thread stehen alt lauter unterschiedliche Angaben, was denn > nun die standard gpio pins für i2c sind und ob da pullup widerstände auf > der kleinen platine verbaut sind. Hallo, nun überlege einmal ganz scharf wie man mit einfachsten Mitteln feststellen kann an welchen Pin Pullup/Pulldown verbaut sind.
indem man bei JLCPCB bestellt und sich hinterher für zwei Pins entscheidet ;) edit: https://michiel.vanderwulp.be/domotica/Modules/ESP32-C3-SuperMini/#schema-and-connections-1
:
Bearbeitet durch User
Okay, in meinem Bahnhof hab ich schon so ein Teil liegen, und bis auf den vorigen Post sind alle hier alle I2C pin Angaben falsch. Einzig GPIO8 und GPIO9 haben 10k Widerstand zu 3.3V. Das wären also die Pins wenn man nicht selber für die pullups sorgen will und nur wenige i2c module ansteuern möchte. Da es in meinem Solarmobil mindestens 6 Stück werden, lege ich den i2c wohl besser auf andere pins. Häng morgen mal ein oled dran.. P.S. das rote Ding ist die bluetooth antenne ?
Das R. schrieb: > Okay, in meinem Bahnhof hab ich schon so ein Teil liegen, und bis auf > den vorigen Post sind alle hier alle I2C pin Angaben falsch. Stephan S. schrieb: > Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 > verbaut
Sorry, ich hatte den ganzen Thread nochmals überflogen und Deine Zeile übersehen.
Stephan S. schrieb: > Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 > verbaut wobei Pullups mit Werten von 10k für I2C bei 3.3 Volt viel zu hoch sind, auch wenn die Sensoren oft nochmals 4k7 haben, sind das gerade mal 3k2 gesamt. Bei 3.3 Volt braucht man für vernünftige Pegel eher um 1k, bei langsamem Clock kann es auch mehr sein.
Das R. schrieb: > und bis auf > den vorigen Post sind alle hier alle I2C pin Angaben falsch. Blödsinn! Ich habe gesagt, dass der Pins recht frei wählbar sind! Und dazu stehe ich auch. Benutze selber gerne GPIO 3+4 für I2C, weil sie so praktisch nah an GND und 3.3V liegen. Warum GPIO8 einen Pullup hat ist auch recht klar. Liegt da doch der Boot Taster drauf, welcher auch im Reset einen eindeutigen Pegel benötigt.
Echt seltsam was alles verschieden über das Ding im Netz zu finden ist: "Onboard LED blue light, GPIO8 pin" https://michiel.vanderwulp.be/domotica/Modules/ESP32-C3-SuperMini/#schema-and-connections-1in"
Stephan S. schrieb: > wobei Pullups mit Werten von 10k für I2C bei 3.3 Volt viel zu hoch sind Nicht nur für I²C. In der nähe der Antenne sind solche Eingänge empfänglich für das eigene Funksignal. Auch deswegen sind stärker Pull-Widerstände angeraten.
Das R. schrieb: > Ja, fünfmal 10x10cm mit standard versand (9-12 Tage) für unter 4€. Versuchst du wirklich irf3206 mit 3,3V Pins anzusteuern? Da sehe ich schwarz.
ja ja die neinsager.. Beitrag "Re: Wie 20-40A high side (n-Ch 2,4 mOhm) bei 20-60V und 2 kHz 50% duty pwm ?"
So, GPIO8 ist in der tat die kleine blaue onboard led und gipo9 der nutzbare button neben dem reset button. Finde ich dämlich, von den eh wenigen pins zwei für etwas zu verschwenden das eh nur auf dem board verwendung finden ? I2C funktioniert and sda=6 und scl=7 auf anhieb, mit dem kleinen oled auch ohne zusätzliche pullups: Für serial output per usb muss man im ESP32_C3_DevModule die option "USB CDC on Boot" auf Enabled setzen. Wenn man dann allerdings das terminal nicht öffnet, bleibt der ESP in der codeausführung hängen - seltsam Wenn man serial nicht initialisiert, läuft er problemlos.
1 | //#define SERIALDEBUG Serial // uncomment to enable serial 115200 baud debug output
|
2 | |
3 | #include "include.h" |
4 | |
5 | void setup() |
6 | {
|
7 | DEBUG( |
8 | SERIALDEBUG.begin(115200); |
9 | OUTN("ESP32 C3 Super Mini with i2c oled :-)"); |
10 | )
|
11 | |
12 | pinMode(PIN_LedBuiltin,OUTPUT); |
13 | pinMode(PIN_Button,INPUT); |
14 | |
15 | display.init(); |
16 | display.flipScreenVertically(); |
17 | |
18 | display.clear(); |
19 | display.setTextAlignment(TEXT_ALIGN_LEFT); |
20 | display.setFont(ArialMT_Plain_16); |
21 | display.drawString(0, 0, "Hello world"); |
22 | display.setFont(Dialog_plain_32); // ArialMT_Plain_10 |
23 | display.setTextAlignment(TEXT_ALIGN_CENTER); |
24 | display.drawString(60, 32,"ESP32 C2 :-)" ); |
25 | display.display(); |
26 | }
|
27 | |
28 | void PrintFloat(int x, int y, float f, int iDecimals=1, String sUnit="", int iMinWidth=3) |
29 | {
|
30 | char s[6]; //result string 5 positions + \0 at the end |
31 | dtostrf(f, iMinWidth, iDecimals, s ); |
32 | if (sUnit == "") |
33 | display.drawString(x, y,s ); |
34 | else
|
35 | {
|
36 | sUnit = String(s)+sUnit; |
37 | display.drawString(x, y,sUnit ); |
38 | }
|
39 | }
|
40 | |
41 | void Display() |
42 | {
|
43 | if (iNow < iTimeDisplay) return; |
44 | iTimeDisplay = iNow + TIME_Display; |
45 | |
46 | display.clear(); |
47 | display.setColor(WHITE); |
48 | |
49 | display.setFont(ArialMT_Plain_16); // Dialog_plain_32 ArialMT_Plain_10 |
50 | display.setTextAlignment(TEXT_ALIGN_RIGHT); |
51 | PrintFloat(40,0,fUin,1,"V"); |
52 | PrintFloat(82,0,fIout,1,"A"); |
53 | PrintFloat(128,0,fUout,1,"V"); |
54 | |
55 | display.setFont(ArialMT_Plain_24); // Dialog_plain_32 ArialMT_Plain_10 |
56 | display.drawString(128, 14,"Super Mini" ); |
57 | |
58 | display.drawString(64, 40,String(iNow%3000<1000 ? fUin : fUout) ); |
59 | display.drawString(128, 40,String(fIout) ); |
60 | display.display(); |
61 | }
|
62 | |
63 | void loop() |
64 | {
|
65 | iNow = millis(); |
66 | |
67 | if (!digitalRead(PIN_Button)) |
68 | iBlink = 200; |
69 | else
|
70 | iBlink = 1000; |
71 | |
72 | boolean bLedOn = (iNow%iBlink)<(iBlink/2); |
73 | digitalWrite(PIN_LedBuiltin, bLedOn ? LOW : HIGH); |
74 | |
75 | Display(); |
76 | }
|
1 | // include.h
|
2 | |
3 | #define PIN_LedBuiltin 8
|
4 | #define PIN_Button 9
|
5 | |
6 | #define PIN_SDA 6
|
7 | #define PIN_SCL 7
|
8 | |
9 | #define TIME_Display 200
|
10 | unsigned long iNow = 0, iTimeDisplay = 0; |
11 | unsigned int iBlink = 1000; |
12 | |
13 | float fUin=44.4, fIout=5.3, fUout=28.6; |
14 | |
15 | #include "SSD1306Wire.h" // legacy include: `#include "SSD1306.h"` |
16 | // custom fonts: http://oleddisplay.squix.ch
|
17 | #include "Dialog_plain_32.h" |
18 | |
19 | // Initialize the OLED display using Wire library
|
20 | SSD1306Wire display(0x3c, PIN_SDA, PIN_SCL); // I2C_Scanner: 0x3C |
21 | |
22 | #ifdef SERIALDEBUG
|
23 | #define DEBUG(code) {code}
|
24 | #define OUT(s) {SERIALDEBUG.print(s);}
|
25 | #define OUT2(s,i) {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);}
|
26 | #define OUT2T(s,i) {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);SERIALDEBUG.print(" ");}
|
27 | #define OUT2N(s,i) {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);SERIALDEBUG.println();}
|
28 | #define OUTN(s) {SERIALDEBUG.println(s);}
|
29 | #define OUTI4(i){if (i<10) SERIALDEBUG.print(" "); else if (i<100) SERIALDEBUG.print(" "); else if (i<1000) SERIALDEBUG.print(" "); SERIALDEBUG.print(i);}
|
30 | #else
|
31 | #define DEBUG(code)
|
32 | #define OUT(s)
|
33 | #define OUT2(s,i)
|
34 | #define OUT2T(s,i)
|
35 | #define OUT2N(s,i)
|
36 | #define OUTN(s)
|
37 | #define OUTI4(i)
|
38 | #endif
|
kompletter code hier: https://github.com/RoboDurden/Esp32_20A_80V_dcdc/tree/main/Arduino/ESP32C3_oled
:
Bearbeitet durch User
Beitrag #7655905 wurde vom Autor gelöscht.
Ich seh gerade im https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf das nur GPIO0 bis GPIO4 analogfähig sind. Und nicht zusätzlich GPIO5, wie in dem hübschen pinout bildchen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.