Hier mal eine Lösung für das Problem mit den wenigen bzw. je nach Modul überhaupt nicht vorhandenen frei beschaltbaren GPIOs, vielleicht kann es ja jemand brauchen.
Ich wollte das Board zwar generell eher einfach halten, ein paar Dinge hab ich dann aber doch integrieren müssen.
Etwas das ich bspw. unbedingt haben wollte ist die Möglichkeit den MCP23017 sowohl mit 3.3V als auch mit 5V betreiben zu können. Allerdings wollt ich aus Platzgründen nicht zusätzlich noch einen 5V Regler verbauen sondern hab das so gemacht dass man den MCP einfach per Jumper entweder mit den 3.3V aus dem LM1117 oder der Eingangsspannung direkt versorgen kann.
Man braucht also wenn der MCP mit 5v betreiben werden soll auch eine Eingangspannung von 5V. Ich verwende da ein einfaches USB Netzteil (Handy Ladegerät).
Ist die Eingangsppannung höher als 5V muss der MCP daher auf jeden Fall mit 3.3V betrieben werden.
Die maximale des Reglers (LM1117) liegt zwar theoretisch bei 15V (ich hatte fälschlicherweise im Kopf es wären 16v), praktisch wird sich das allerdings wegen der dann enstehenden Hitze nicht ausgehen. (Muss aber noch schauen wie hoch man sicher gehen kann). Ich würd daher sagen am besten extern runter auf ~5V reglen und dann erst auf das Board gehen.
Da die 3.3V Pegel des ESP theoretisch nur bis zu einer MCP Versorgungsspannung von ~4.5V reichen hab ich um auch bei 5V auf der sicheren Seite zu sein eine Pegelwandlung integriert. Eine einfache aus 2 Mosfets und 4 Widerständen bestehende Lösung hab ich hier entdeckt: http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
Aktuelle Version
Auf den Bildern sieht man aktuell die Version 0.2. Angehängt ist aber auch schon die Version 0.3. Allerdings hab ich die bisher noch nicht getestet. Da es da aber nur ein paar kleine Änderungen gab hab ich da überhaupt keine Bedenken und würde auch empfehlen dass ihr die fertigen lässt, hauptsächlich weil die Bohrlöcher für das ESP Modul bei der 0.2er gerade etwas zu klein sind.
Falls ihr euch fragt was mir der ersten Version passiert ist:
Da ich den Pegelwandler bevor ich die Platinen gemacht hab nicht ausgiebig getestet hab und zumindest ein "frickelloses" Board haben wollte, hab ich mir einfach gleich 2 Versionen(bzw. Varianten) gemacht und bei der ersten die Pegelwandlung weggelassen. Da der Pegelwandler aber funktioniert wie er soll hab ich die Variante ohne Pegelwandler nicht auch noch angehängt.
Leider ist sich das mit dem frickellos dann doch nicht ganz ausgegangen da mir durch ein Missgeschick der Plus Pin(VBUS) der Micro USB Buchse abgerissen ist. Konnte das aber einfach mit einer kleinen Drahtbrücke richten, wie man auf dem Bild sehen kann.
Änderungen Version 0.3
* Beim zusammenbauen ist mir aufgefallen dass der MCP doch recht nahe beim ESP-01 sitzt, den Abstand hab ich etwas größter gemacht.
* Der Footprint vom Tantal Kondensator war etwas zu klein
* Die Bohrlöcher für das ESP Modul waren auch etwas zu klein
* Falsche maximale Einganspannung korrigiert
* Bestückungsdruck und ein paar Routen optimiert
* C5 durch einfachen Pin Header ersetzt
Ideen für die nächste Version
* Pegelwandler einfacher überbrückbar machen (Ist aber auch so schon recht einfach möglich)
* Jemand Ideen/Wünsche?
Bauteilliste:
* ESP-01
* MCP23017 + Sockel(28pin) [DIP]
* LM1117-3.3(AMS1117-3.3) [SOT-223]
* 10µF Kermik Kondensator am Eingang[0805]
* 100µF Tantal Kondensator am Ausgang [1210 / Case B]
* 100nF Kermik Kondensator jeweils am MCP und ESP-01 [THT]
* Micro USB Buchse (so eine) [SMD]
* Terminal Block (3.5mm) [THT]
* 2x Taster "Tactile" (GPIO0, Reset) [THT]
* SMD LED (1206) + passender Vorwiderstand für 3.3V (0805)
* 2x 10K Widerstand [THT]
* 4x 4K7 Widerstand (0805)
* 2x BSS138 (Oder bspw. 2n7000) (SOT-3)
* Zusätzlicher I2C Header um bspw. noch ein weiteres MCP23017 Board ranzuhängen
* Ein paar 2.54mm Stift- und Buchsenleisten
Falls mir noch was wichtiges einfällt werd ich es ergänzen.
Sollte was unklar sein einfach Fragen. :thumbs1:
Bilder
Ein kleines LED Addon das ich mir zum testen gemacht hab
(OT PS: Der erwähnte Temp Logger kommt als nächstes. )