Pirozeda-HAT: Unterschied zwischen den Versionen
Chris (Diskussion | Beiträge) (Aus Artikel Pirozeda extrahiert) |
Chris (Diskussion | Beiträge) (unnötige Überschriften entfernt) |
||
Zeile 1: | Zeile 1: | ||
− | + | Wie bereits im [[Pirozeda|Hauptartikel] und im Blog erwähnt, sind bei der ersten Leiterkarte ein paar Dinge unschön. | |
− | Wie bereits | ||
Deshalb habe ich mich noch einmal hingesetzt und ein Design mit anderen Kompromissen erstellt: | Deshalb habe ich mich noch einmal hingesetzt und ein Design mit anderen Kompromissen erstellt: | ||
Zeile 21: | Zeile 20: | ||
'''ACHTUNG: Die Hardware ist bis jetzt weder aufgebaut noch getestet. Leiterkarten sind auf dem Weg zu mir.''' | '''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: | 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. | 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. | 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. | ||
Zeile 72: | Zeile 71: | ||
|} | |} | ||
− | + | ==Variante 2: Optokoppler== | |
Dies entspricht weitestgehend dem Originaldesign. | Dies entspricht weitestgehend dem Originaldesign. | ||
Zeile 122: | Zeile 121: | ||
|} | |} | ||
− | + | ==Variante 3: ADUM-Isolator== | |
Die "zukunftssichere" aber gleichzeitig auch die teuerste Variante. | Die "zukunftssichere" aber gleichzeitig auch die teuerste Variante. | ||
Zeile 168: | Zeile 167: | ||
|} | |} | ||
− | + | =Bestückungsoptionen= | |
Da nicht jeder alle Funktionen braucht, hier noch die zusätzlichen Bestückungsoptionen: | Da nicht jeder alle Funktionen braucht, hier noch die zusätzlichen Bestückungsoptionen: | ||
Zeile 181: | Zeile 180: | ||
* Status-LEDs (blau) | * Status-LEDs (blau) | ||
− | == | + | ==HAT-ID== |
Die [https://github.com/raspberrypi/hats Raspberry Pi HAT Specification] schließt einen I²C-EEPRom ein. Dieser kann bei Bedarf bestückt werden: | Die [https://github.com/raspberrypi/hats Raspberry Pi HAT Specification] schließt einen I²C-EEPRom ein. Dieser kann bei Bedarf bestückt werden: | ||
Zeile 196: | Zeile 195: | ||
Aktuell gibt es noch keine weitere Unterstützung hierfür. | 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: | 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: | ||
Zeile 217: | Zeile 216: | ||
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. | 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: | 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: | ||
Zeile 242: | Zeile 241: | ||
|} | |} | ||
− | == | + | ==Status-LEDs== |
Macht einfach drauf was ihr wollt, solange es LEDs im 0603-Package sind und der Vorwiderstand (im 0603-Package) dazu passt. | Macht einfach drauf was ihr wollt, solange es LEDs im 0603-Package sind und der Vorwiderstand (im 0603-Package) dazu passt. | ||
==Firmware== | ==Firmware== | ||
Grundsätzlich läuft die Firmware des original-Adapters auch mit der HAT-Hardware. Allerdings bleiben die LEDs dunkel. | 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. | ||
[[Kategorie:AVR]] | [[Kategorie:AVR]] |
Version vom 10. Februar 2019, 23:37 Uhr
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.
Inhaltsverzeichnis
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.