Pirozeda-HAT

Aus Hobbyelektronik.org
Version vom 10. Februar 2019, 22:37 Uhr von Chris (Diskussion | Beiträge) (unnötige Überschriften entfernt)

Wie bereits im [[Pirozeda|Hauptartikel] und im Blog erwähnt, sind bei der ersten Leiterkarte ein paar Dinge unschön.

Deshalb habe ich mich noch einmal hingesetzt und ein Design mit anderen Kompromissen erstellt:

  • Entspricht (größtenteils) den Raspberry Pi HAT-Spezifikationen (inkl. EEProm)
  • Neben dem Optokoppler kann man nun auch einen ADUM1301 verwenden
  • ...oder einfach Widerstände, wenn man sich der Sache sicher ist
  • Mit ADMUM1301 oder Direktverbindung können nun hardwareseitig einfach Firmware-Updates aufgespielt und der µC resettet werden
  • Am Mikrocontroller gibt es nun die Option für zwei, vom Raspi für eine Status-LED
  • Es gibt nun eine RTC (DS1307Z), um direkt nach einem Neustart oder bei fehlendem Netzwerk loggen zu können
  • Der I2C des Raspberry ist auf eine Stiftleiste herausgeführt, ideal für eines dieser kleinen OLED-Displays.
  • Ein GPIO des Raspberry ist auf einen Taster herausgeführt

Ein großer Kompromiss ist, dass das Layout (wieder) nicht so richtig für den Raspberry Pi B passt. Die Buchse für den Bus kann bei "normalem" Boardabstand (in der Höhe) nicht bestückt werden. Zwar kann ein Flachbandkabel direkt an die Kontaktflächen gelötet werden, so richtig schön ist das allerdings auch nicht.

Ich habe die verschiedenen Platzierungsmöglichkeiten durchprobiert aber mit dem Featureset ist es mir nicht gelungen, die Buchse an eine andere Stelle zu packen.

Die Mini-DIN-Buchse ist übrigens rausgeflogen, weil sie - neben dem großen Platzbedarf - keinen wirklichen Mehrwert hat. Konfektionierte Kabel konnte ich bis jetzt nicht finden und selber bauen ist eher fummelig. Da reicht es schon, einen Mini-DIN-Stecker zu löten. die Stiftwanne seitlich an die Leiterkarte zu Löten ist zwar geschmackssache aber in Hinblick auf Platz das beste, was mir eingefallen ist. Es steht natürlich jedem frei, das Design zu verbessern.

ACHTUNG: Die Hardware ist bis jetzt weder aufgebaut noch getestet. Leiterkarten sind auf dem Weg zu mir.

Bestückungsvarianten

Durch die verschiedenen Möglichkeiten für das Interface gibt es einige Bestückungsoptionen. Drei für das eigentliche Interface und je nachdem, wie viele Zusatzfeatures aktiviert werden sollen, noch ein paar mehr:

Variante 1: Direkt

Mit der Bestückungsvariante "direkt" kann ich nur abraten, habe sie aber der Vollständigkeit halber erstellt. Problem an ihr ist dass neben der gemeinsamen Masse mit der Solaranlage Backfeeding entstehen kann, wenn der Raspberry Pi keine Stromversorgung hat. Der Strom wird zwar über Widerstände begrenzt, Fehlfunktion kann aber nicht ausgeschlossen werden.

Die Variante ist eher für diejenigen, die sich der Sache sicher sind.

Einen Vorteil gibt es natürlich auch: es ist die günstigste Variante und wenn ein UART-Bootloader geflasht wurde lässt sich der AVR darüber updaten.

Menge Referenz Wert Package Reichelt Bestellcode
1 SV2 MA03-2 SL 2X40G 2,54
1 SV1 ML6S WSL 6G
3 R22, R26, R27 0 R0805 RND 0805 1 0
3 R18, R19, R20 100 R0805 RND 0805 1 100
4 C1, C5, C9, C10 100n C0603 X7R-G0603 100N
1 R1 10k R0603 RND 0603 1 10K
2 C3, C4 10p C0603 X7R-G0603 10p
1 Q2 12M HC49UP 12,0000-HC49-SMD
4 R14, R15, R16, R23 1k R0603 RND 0603 1 1,0K
1 C2 2u2 C0805 KEM X5R0805 2,2U
1 Q1 BSS138 SOT23 BSS 138 SMD
1 IC1 DS1307Z SO08 DS 1307Z
1 S1 KMR2 KMR231GLFS KMR 231 G LFS
1 IC3 MEGA48/88/168-AU TQFP32-08 ATMEGA 88PA-AU
1 X1 RPI_CONDENSEDZERO RPI_ZERO_THT BL 2X25G8 2,54

Variante 2: Optokoppler

Dies entspricht weitestgehend dem Originaldesign.

Heißt: optische Isolation, Firmware-Updates gehen nur über SPI oder drei bzw. 4 Jumper (R18, R19, R27 und ggf. R22).

Menge Referenz Wert Package Reichelt Bestellcode
1 SV2 MA03-2 SL 2X40G 2,54
1 SV1 ML6S WSL 6G
1 R21 0 R0805 RND 0805 1 0
4 C1, C5, C9, C10 100n C0603 X7R-G0603 100N
1 R1 10k R0603 RND 0603 1 10K
2 C3, C4 10p C0603 X7R-G0603 10p
1 Q2 12M HC49UP 12,0000-HC49-SMD
4 R14, R15, R16, R23 1k R0603 RND 0603 1 1,0K
1 R13 1k R0603 RND 0603 1 470
1 C15 1n C0603 X7R-G0603 1,0N
1 R17 2k2 R0603 RND 0603 1 2,2K
1 C2 2u2 C0805 KEM X5R0805 2,2U
1 OK2 6N137 DIL08 6N 137
1 Q1 BSS138 SOT23 BSS 138 SMD
1 IC1 DS1307Z SO08 DS 1307Z
1 S1 KMR2 KMR231GLFS KMR 231 G LFS
1 IC3 MEGA48/88/168-AU TQFP32-08 ATMEGA 88PA-AU
1 X1 RPI_CONDENSEDZERO RPI_ZERO_THT BL 2X25G8 2,54

Variante 3: ADUM-Isolator

Die "zukunftssichere" aber gleichzeitig auch die teuerste Variante.

Unterstützt Bootloader und gewährleistet die Isolation zwischen Solaranlage und Raspberry Pi.

Menge Referenz Wert Package Reichelt Bestellcode
1 SV2 MA03-2 SL 2X40G 2,54
1 SV1 ML6S WSL 6G
1 R21 0 R0805 RND 0805 1 0
2 R9, R10 100 R0603 RND 0603 1 100
4 C1, C5, C9, C10 100n C0603 X7R-G0603 100N
1 R1 10k R0603 RND 0603 1 10K
2 C3, C4 10p C0603 X7R-G0603 10p
1 Q2 12M HC49UP 12,0000-HC49-SMD
4 R14, R15, R16, R23 1k R0603 RND 0603 1 1,0K
1 C2 2u2 C0805 KEM X5R0805 2,2U
1 IC4 ADUM1301ARW SO-16W ADUM 1301 ARW
1 Q1 BSS138 SOT23 BSS 138 SMD
1 IC1 DS1307Z SO08 DS 1307Z
1 S1 KMR2 KMR231GLFS KMR 231 G LFS
1 IC3 MEGA48/88/168-AU TQFP32-08 ATMEGA 88PA-AU
1 X1 RPI_CONDENSEDZERO RPI_ZERO_THT BL 2X25G8 2,54

Bestückungsoptionen

Da nicht jeder alle Funktionen braucht, hier noch die zusätzlichen Bestückungsoptionen:

  • HAT-ID (violett)
  • Real-Time-Clock (orange)
  • I²C(-OLED) (grün)
  • Taster (cyan)
  • Status-LEDs (blau)

HAT-ID

Die Raspberry Pi HAT Specification schließt einen I²C-EEPRom ein. Dieser kann bei Bedarf bestückt werden:

Menge Referenz Wert Package Reichelt Bestellcode
1 IC2 24C32ASN SO-08 ST 24C32 MN6
1 R2 1k R0603 RND 0603 1 1,0K
6 C6 100n C0603 X7R-G0603 100N

Aktuell gibt es noch keine weitere Unterstützung hierfür.

Real-Time-Clock

Da die Pirozeda-Software für das Logging eine gültige Uhrzeit benötigt, und es nach einem Stromausfall nicht sichergestellt ist, dass sich der Pi sofort nach dessen Start synchronisieren kann, kann eine RTC bestückt werden:

Menge Referenz Wert Package Reichelt Bestellcode
4 R5, R6, R7, R8 3k3 R0603 RND 0603 1 3,3K
2 Q3, Q4 BSS138 SOT23 BSS 138 SMD
1 B1 3003 3003 KZH 20P
1 Q5 TC38_SMD TC38H_SMD AUR Q-32.768000K
1 C8 100n C0603 X7R-G0603 100N
1 IC1 DS1307Z SO08 DS 1307Z

Es ist noch anzumerken, dass der DS1307Z laut Datenblatt auch 3,3 V als IO-Spannung unterstützt. Zur Sicherheit habe ich für jedoch einen Levelshifter eingebaut (R5, R6, R7, R8, Q3, Q4), der jedoch durch die 0R-Widerstände R11 und R12 ersetzt werden kann.

Option: I²C(-OLED) + Taster

Um noch weitere I²C-Devices anzuschließen, ist der Port auf eine Buchsenleiste herausgeführt. Diese ist so ausgerichtet, dass z. B. eines dieser 0,96" 128x64 Pixel OLEDs direkt angeschlossen werden kann. Da wohl teilweise VCC und GND vertauscht sind, kann durch Drehen von R29 und R30 die Polarität geändert werden:

Menge Referenz Wert Package Reichelt Bestellcode
1 SV3 FE04-1R FE04-1R MPE 094-1-004
2 R29, R30 0 R0603 RND 0603 1 0

Ferner gibt es Platz für einen Taster, der GPIO22 mit Masse verbinden kann. Damit es im Falle einer Fehlkonfiguration nicht zu einem harten Kurzschluss kommt, ist ein 100 Ohm-Widerstand vorgesehen:

Menge Referenz Wert Package Reichelt Bestellcode
1 S1 KMR2 KMR231GLFS KMR 231 G LFS
1 R31 100 R0603 RND 0603 1 100

Status-LEDs

Macht einfach drauf was ihr wollt, solange es LEDs im 0603-Package sind und der Vorwiderstand (im 0603-Package) dazu passt.

Firmware

Grundsätzlich läuft die Firmware des original-Adapters auch mit der HAT-Hardware. Allerdings bleiben die LEDs dunkel.

Eine auf die neue Hardware angepasste Firmware ist aktuell in Arbeit.