VBus-Decoder/Adapter für den Raspberry Pi: Unterschied zwischen den Versionen

Aus Hobbyelektronik.org
K (Farbton)
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
''Dies ist ein Unterartikel von [[VBus-Decoder]]. Auf der Hauptseite gibt es weitere Informationen zum Thema.''
 
''Dies ist ein Unterartikel von [[VBus-Decoder]]. Auf der Hauptseite gibt es weitere Informationen zum Thema.''
 +
 +
'''Achtung: Diese Hardware ist etwas unter die Räder gekommen, es gibt ein paar Unzulänglichkeiten. Deshalb ist es empfehlenswert, entweder [[VBus-Decoder/Adapter_für_den_Raspberry_Pi_v1.3|Version 1.3]] oder zumindest [[VBus-Decoder/Adapter_für_den_Raspberry_Pi_v1.2#Die Enttäuschung - Teil 2|1.2b]] nachzubauen.'''
  
 
=Einleitung=
 
=Einleitung=
Zeile 6: Zeile 8:
 
Damit sie sowohl am B-Modell als auch auf den Zero montiert werden können, ist sie trennbar. Damit der untere Teil im Fall der Verwendung am Zero nicht im Müll landen muss, befindet sich auf der Unterseite ein Punktraster im Abstand von 1,27 mm. Dort lässt sich gut mit SMD-Bauteilen (z. B. im 0603- oder SO-Gehäuse) basteln oder zumindest das Löten üben.
 
Damit sie sowohl am B-Modell als auch auf den Zero montiert werden können, ist sie trennbar. Damit der untere Teil im Fall der Verwendung am Zero nicht im Müll landen muss, befindet sich auf der Unterseite ein Punktraster im Abstand von 1,27 mm. Dort lässt sich gut mit SMD-Bauteilen (z. B. im 0603- oder SO-Gehäuse) basteln oder zumindest das Löten üben.
  
Es war angedacht, die Leiterkarte abreißbar zu machen, was zumindest bei Version 1.0 nicht wirklich gut klappte. Bei Version 1.1 sind die Löcher etwas näher beieinander, daher sollte es hier besser funktionieren. Wer eine 1.0 bekommt und sie am Zero betreiben will, sollte sie auf jeden Fall mit der Säge kürzen.
+
=Versionen=
 +
* [[VBus-Decoder/Adapter für den Raspberry Pi v1.0|Version 1.0/1.1]]: Der erste Versuch - "never trust a x.0"
 +
* [[VBus-Decoder/Adapter_für_den_Raspberry_Pi_v1.2|Version 1.2]]: Besser, aber noch nicht gut
 +
* [[VBus-Decoder/Adapter_für_den_Raspberry_Pi_v1.3|Version 1.3]]: Die beste Version, die man aktuell haben kann ;)
  
<gallery>
+
=Einrichtung am Raspberry Pi=
    Vbuspi 1.1 assy sch.png|Schaltplan
+
==Raspbian==
    Vbuspi 1.1 assy top.png|Bestückungsplan Oberseite
+
Damit der UART unter Raspbian verwendet werden kann und es keine Kollision mit der Konsole gibt, muss diese in <code>/boot/cmdline.txt</code> deaktiviert werden.
    Vbuspi 1.1 assy bot.png|Bestückungsplan Unterseite
 
    Vbuspi 1.0 bare.jpg|Unbestückte Leiterkarte (v1.0)
 
    Vbuspi 1.1 assy zero.jpg|Bestücktge Leiterkarte auf einem Raspberry Pi Zero W
 
</gallery>
 
  
{| class="wikitable"
+
Dazu mittels <code>sudo nano /boot/cmdline.txt</code> die Datei öffnen und folgende Zeile löschen:
! Menge || Referenz      || Wert                || Package        || Reichelt Bestellcode
 
|-
 
| 2    || R10, R11      || 0                  || R1206          || RND 0805 1 0
 
|-
 
| 2    || C2, C3        || 100n                || C0603          || X7R-G0603 100N
 
|-
 
| 3    || R5, R7, R8    || 10k                || R0603          || RND 0603 1 10K
 
|-
 
| 1    || C5            || 10u/16V            || C1206          || KEM X7R1206 10U
 
|-
 
| 1    || R4            || 15k                || R0603          || RND 0603 1 15K
 
|-
 
| 2    || X1, X4        || 1751248            || 1751248        || AKL 059-02
 
|-
 
| 2    || R3, R6        || 18k                || R0603          || RND 0603 1 18K
 
|-
 
| 3    || R9, R24, R28  || 1k                  || R0603          || RND 0603 1 1,0K
 
|-
 
| 1    || C1            || 680p                || C0603          || X7R 0603 CG 680P
 
|-
 
| 1    || C4            || 1n                  || C0603          || X7R-G0603 1,0N
 
|-
 
| 1    || R1            || 6k8                || R0603          || RND 0603 1 6,8K
 
|-
 
| 1    || R2            || 68k                || R0603          || RND 0603 1 68K
 
|-
 
| 1    || OK1          || 6N136              || DIL08          || 6N 136
 
|-
 
| 3    || D1, D2, D5    || BAV99              || SOT23          || BAV 99 NXP
 
|-
 
| 1    || IC4          || LM393D              || SO08          || LM 393 D SMD
 
|-
 
| 1    || IC1          || LP2985IM5-5.0      || SOT23-DBV      || LP 2985 IM5-5.0
 
|-
 
| 1    || D3            || P6SMB 15A          || SMBJ          || P6SMB 15A SMD
 
|-
 
| 1    || X2            ||                    || RPI_UNIV_UART  || RND 205-00654
 
|-
 
| 1    || LED1          || gn                  || CHIP-LED0603  || LED EL 0603 GR1
 
|-
 
| 1    || LED3          || nicht bestücken!    || siehe Fehler  || -
 
|}
 
  
Achtung: Die Vorwiderstände für die LEDs sind nicht getestet, die Bauteile in der BOM sind nur exemplarisch.
+
<pre>
 +
console=serial0, 115200
 +
</pre>
  
=Fehler & Verbesserungen=
+
==Debian Bookworm==
 
+
Verwendet man Debian Bookworm, muss in <code>/boot/firmware/config.txt</code> enable_uart deaktiviert werden, also folgendes gesetzt werden:
Diese betreffen nur Leiterkarten der Version 1.0, in der noch nicht physisch vorhandenen 1.1 sollten sie behoben sein, eine Überprüfung steht aber noch aus.
 
 
 
* Leiterkarte ist nicht durch Abbrechen teilbar
 
* Das mittlere Montageloch ist um 0,5 mm nach unten versetzt
 
* Links oben ist die Leiterkarte nicht abgerundet (in den Gerber-Daten korrekt, in der Fertigung schief gegangen)
 
* Die Schaltung selbst ist größtenteils durch den Nano erfolgreich getestet, der Einfluss der LEDs jedoch nicht
 
* Mit bestückter LED3 werden die Low-Pegel des Optokopplers so weit nach oben gezogen, dass diese vom Raspi nicht mehr erkannt werden. Entweder nicht bestücken (R28 dito) oder einen FET (siehe Version 1.2) einfädeln.
 
 
 
=Leiterkarten=
 
 
 
Es gibt noch Leiterkarten. Wer eine haben möchte, kann sich gerne bei mir melden.
 
 
 
=Weiteres=
 
 
 
Die [[3D-Druck-Sammelsurium#Raspberry_Pi_Zero_Spacer|Raspberry Pi Zero Spacer]] passen auch hier.
 
 
 
=Kostenreduzierte Variante/v1.2=
 
 
 
Eine der Verbesserungspotenziale war, die Kosten durch einen TS 5205 CX533 etwas zu reduzieren.
 
 
 
==Die Enttäuschung==
 
 
 
'''Achtung: es gibt noch eine [[#Die Enttäuschung - Teil 2|weitere Enttäuschung]].'''
 
 
 
Um einer Enttäuschung beim Aufbau zu entgehen, ging der erste Schritt in die Simulation - die vielversprechend war. Bauteile auf die Leiterkarte und ab zum Solarregler.
 
 
 
Ergebnis bei der Messung: Mist. Die Spannung am Regler-Ausgang zappelt und verzieht dadurch die Schwellenwerte, die LED auf der RPi-Seite flackert zwar, der Low-Spannungspegel ist aber so hoch, dass der SoC garantiert nichts mehr damit anfangen kann. Im ersten Schritt kommt also die LED runter.
 
 
 
Aber zunächst zum Regler:
 
 
 
<gallery>
 
    vbuspi3v3_vout_ripple.png | Ch1: AC-Anteil der 3,3 V-Versorgung (IC1.5), Ch2: Ch2: AC-Anteil der Komparator-Referenz (IC4.5)
 
    vbuspi3v3_schwelle_orig.png | Schwellenwerte des Komparators - Ch1: Eingang am Komparator (IC4.6), Ch2: Komparator-Referenz (IC4.5), Ch3: Ausgang am Optokoppler (IC4.1)
 
</gallery>
 
 
 
Wie in den Screenshots zu sehen ist, zappelt die Referenz ganz ordentlich, wobei das nur die halbe Wahrheit ist: Die Kapazität der Oszi-Probe verändert das Signal. Ohne Probe 2 sieht man auf Kanal 2 einen doppelten Puls. Das darf nicht sein.
 
 
 
Die Peaks im 20 ms-Abstand sind vermutlich Artefakte vom Bus des [[ECL-Bus-Decoder|Heizungsreglers]], der seine Daten auf ein 50 Hz-Rechtecksignal moduliert und in meinem Setup auf einem benachbarten Adernpaar in der gleichen Leitung liegt.
 
 
 
Auch wenn ich mir nicht sicher bin, ob der Spannungseinbruch am Regler durch die zu geringe Ausgangskapazität oder durch eine Instabilität entsteht, nicht ganz unschuldig daran ist sicher der etwas höhere Strom des Optokopplers.
 
Mit einem deutlich größeren Ausgangskondensator am Regler entspannt sich die Lage ein gutes Stück, nicht getestet habe ich allerdings das Verhalten, wenn ein C am Bypass-Pins des Reglers angeschlossen ist.
 
 
 
Aber einen guten Punkt kann ich dem Bild abgewinnen: die stationären Werte der Schwellenspannungen passen (innerhalb der recht großen Messtoleranzen) ziemlich gut.
 
 
 
Auch wenn mit der deutlich besseren Glättung das Verhalten fast gut ist, ist es eben nur fast gut. Um das Zittern der Referenz am Komparator zu vermeiden, bekommt R4 einen Freund: ein 100 pF-Kondensator wird Huckepack aufgelötet.
 
 
 
Mit dem zusätzlichen Kondensator sieht es nun wie folgt aus:
 
 
 
<gallery>
 
    vbuspi3v3_100p_schwelle1.png | Schwellenverlauf des Komparators Ch1: Eingang am Komparator (IC4.6), Ch2: Komparator-Referenz (IC4.5)
 
    vbuspi3v3_100p_schwelle2.png | Schaltschwelle des Komparators im Überblick, Ch1: Eingang am Komparator (IC4.6), Ch2: Treiberausgang (IC4.1)
 
    vbuspi3v3_100p_schwelle3.png | Schaltschwelle des Komparators im Überblick (mit Cursor) Ch1: Eingang am Komparator (IC4.6), Ch2: Treiberausgang (IC4.1)
 
    vbuspi3v3_100p_schwelle4.png | Schaltschwelle des Komparators, fallende Flanke (mit Cursor) Ch1: Eingang am Komparator (IC4.6), Ch2: Treiberausgang (IC4.1)
 
    vbuspi3v3_100p_schwelle5.png | Schaltschwelle des Komparators, steigende Flanke (mit Cursor) Ch1: Eingang am Komparator (IC4.6), Ch2: Treiberausgang (IC4.1)
 
</gallery>
 
 
 
Wichtig ist nach wie vor, dass die Verzögerungen über den Optokoppler halbwegs symmetrisch sind, da es UART-Interfaces aus dem Tritt bringen kann.
 
 
 
<gallery>
 
    vbuspi3v3_delay1.png | Übersicht über ein Datenbit, Ch1: Kathode des Optokoppler (OK1.3), Ch2: Kollektor des Optokoppler
 
    vbuspi3v3_delay2.png | Verzögerung bei fallender Flanke: 2,11 µs, Ch1: Kathode des Optokoppler (OK1.3), Ch2: Kollektor des Optokoppler
 
    vbuspi3v3_delay3.png | Verzögerung bei steigender Flanke: 1,33 µs, Ch1: Kathode des Optokoppler (OK1.3), Ch2: Kollektor des Optokoppler
 
</gallery>
 
 
 
Es gibt also eine Asymmetrie von 0,78 µs, bei einer idealen Bitzeit von ca. 104 µs sind das 0,75 %. Nicht der Rede wert.
 
 
 
==Die (vermeintliche) Lösung==
 
 
 
Probleme sind dafür da, gelöst zu werden. Zwar kann die Leiterkarte der Version 1.0 so umgebaut werden, dass sie auch mit 3,3 V funktioniert, indem folgende Änderungen angewendet werden:
 
 
 
* R3: 15k
 
* R4: 33k
 
* R6: 15k
 
* C3: 4,7 µF-Kondensator
 
* Auf R4 einen 100 pF-Kondensator löten
 
* LED3 und R28: weglassen
 
* IC1: TS5205CX533
 
 
 
Im Grunde kann die untenstehende BOM auch für Version 1.0 der Leiterkarte verwendet werden.
 
 
 
Aber zumindest mein Anspruch ist etwas größer, also gibt es eine neue Revision der Leiterkarte:
 
 
 
<gallery>
 
    vbuspi3v3_1.2_sch.png | Schaltplan
 
    Vbuspi_1.2_assy_top.png | Bestückungsplan Oberseite
 
    Vbuspi_1.2_assy_bot.png | Bestückungsplan Unterseite
 
</gallery>
 
 
 
Die BOM ist nun ein bisschen günstiger:
 
 
 
{| class="wikitable"
 
! Menge|| Referenzen  || Wert                || Package        || Reichelt Bestellcode
 
|-
 
| 1    || C2          || 100n                || C0603          || X7R-G0603 100N
 
|-
 
| 1    || C6          || 100p                || C0603          || X7R 0603FCG 100P
 
|-
 
| 3    || R5, R7, R8  || 10k                || R0603          || RND 0603 1 10K
 
|-
 
| 1    || C5          || 10u/16V            || C1206          || KEM X7R1206 10U
 
|-
 
| 2    || R3, R6      || 15k                || R0603          || RND 0603 1 15K
 
|-
 
| 2    || X1, X4      || 1751248            || 1751248        || AKL 059-02
 
|-
 
| 2    || R24, R28    || 1k                  || R0603          || RND 0603 1 1,0K
 
|-
 
| 1    || C4          || 1n                  || C0603          || X7R-G0603 1,0N
 
|-
 
| 1    || R4          || 33k                || R0603          || RND 0603 1 33K
 
|-
 
| 1    || C7          || 470p                || C0603          || X7R-G0603 470P
 
|-
 
| 1    || C3          || 4u7                || C0603          || KEM X5R0603 4,7U
 
|-
 
| 1    || R9          || 680                || R0603          || RND 0603 1 680
 
|-
 
| 1    || C1          || 680p                || C0603          || X7R 0603 CG 680P
 
|-
 
| 1    || R2          || 68k                || R0603          || RND 0603 1 68K
 
|-
 
| 1    || OK1        || 6N136              || DIL08          || 6N 136
 
|-
 
| 1    || R1          || 6k8                || R0603          || RND 0603 1 6,8K
 
|-
 
| 3    || D1, D2, D5  || BAV99              || SOT23          || BAV 99 NXP
 
|-
 
| 1    || Q1          || BSS138              || SOT23          || BSS 138 SMD
 
|-
 
| 1    || IC4        || LM393D              || SO08          || LM 393 D SMD
 
|-
 
| 1    || D3          || P6SMB 15A          || SMBJ          || P6SMB 15A SMD
 
|-
 
| 1    || X2          || RPI_UART_CONDENSED  || RPI_UNIV_UART  || RND 205-00654
 
|-
 
| 1    || IC1        || TS5205CX533        || SOT23-5        || TS 5205 CX533
 
|-
 
| 1    || LED1        || gn                  || CHIP-LED0603  || LED EL 0603 GR1
 
|-
 
| 1    || LED3        || or                  || CHIP-LED0603  || LED EL 0603 OR
 
|}
 
 
 
==Die Enttäuschung - Teil 2==
 
 
 
Stefan schickte eine Mail mit einen sehr guten Verbesserungsvorschlag bzw. vielmehr Hinweis auf Fehler:
 
  
 
<pre>
 
<pre>
Ich würde an deiner Stelle bei der 3,3V Schaltung den Spannungsteiler R8/R5 anpassen.
+
enable_uart=0
An dessen Eingang können ~7V anliegen womit der OP dann 3,5V an seinem Eingang hat.
 
Das ist bei 3,3V Versorgungsspannung etwas über der Spezifikation des verwendeten OPs.
 
 
</pre>
 
</pre>
  
Das ist absolut richtig, die Spannung ist außerhalb der Spec.
+
In <code>/boot/firmware/cmdline.txt</code> muss der markierte Teil entfernt werden (überlebt Kernel-Updates nicht):
Der Fehler hat sich mit an Sicherheit grenzender Wahrscheinlichkeit eingeschlichen, weil beim Neudimensionieren der Schaltung nur die Teile berücksichtigt wurden, die direkt an +3V3 hängen.
 
 
 
Schaut man noch etwas genauer ins Datenblatt entdeckt man, dass die Eingänge des LM393 für eine korrekte Funktion einen gewissen Abstand zu V+ haben müssen. Bei der Variante von TI sind das VDD - 1,5 V.
 
 
 
Ok, das ist natürlich Mist. Aber beherrschbarer.
 
 
 
Im Prinzip müssen nur die Widerstände für die Spannungsteiler neu berechnet werden.
 
 
 
Jetzt kann man es sich natürlich einfach machen und die naheliegendsten Werte aus der E24-Reihe nehmen. Selbst für gut ausgestattete Widerstandslager zu Hause würde das eine Bestellung bei den üblichen Verdächtigen bedeuten. Dann hat man meistens noch die vermutlich selten genutzten Wert-Überreste in einer Schublade liegen und das Bestücken ist fehleranfälliger. Uncool.
 
 
 
Also warum nicht so lange mit den Bauteilwerten jonglieren, bis es eine gute Kombination gibt?
 
 
 
Kann man manuell machen, ist aber eher mühsam. Geht auch mit Excel, ist aber auch nicht das beste Tool dafür.
 
 
 
Ob JavaScript so wirklich dafür geeignet ist, sei mal dahingestellt - dafür spricht allerdings, dass mittlerweile fast jedes Endgerät mit Farbdisplay eine passende Laufzeitumgebung installiert hat.
 
 
 
Herausgekommen ist dieser [//hobbyelektronik.org/tools/komparator/ schlichte Rechner].
 
Zahlen eingeben und los geht's:
 
 
 
{| class="wikitable"
 
! Bezeichnung || Wert      || Kommentar
 
|-
 
| Versorgungsspannung Komparator || 3,3 V ||
 
|-
 
| Maximale Eingangsspannung Komparator || 1,8 V || (3,3 - 1,5) V
 
|-
 
| Maximale Signalspannung || 6,8 V || (8,2 - 1,4) V
 
|-
 
| Obere Schwelle || 4,5 V || aus der VBus-Spec
 
|-
 
| Untere Schwelle || 4,0 V || aus der VBus-Spec
 
|-
 
|}
 
 
 
Aktuell werden Widerstände aus der E6- und (damit es ein bisschen Mehr Auswahl gibt) E12-Reihe für die Bauteilsuche genutzt.
 
 
 
Für die eingegebenen Werte ergibt sich eine schöne Kombination aus der E6-Reihe, die nur drei unterschiedliche Werte benötigt:
 
 
 
{| class="wikitable"
 
! Referenz || Wert
 
|-
 
| R8 || 15 k
 
|-
 
| R5 || 4,7 k
 
|-
 
| R3 || 4,7 k
 
|-
 
| R4 || 2,2 k
 
|-
 
| R2 || 15 k
 
|}
 
 
 
Zur Gegenprobe - der Spannungsteiler gibt folgende Spannung aus:
 
 
 
<math>(\textrm{8,2 V} - \textrm{1,4 V}) \cdot \frac{\textrm{4,7 k}}{\textrm{4,7 k} + \textrm{15 k}} = \textrm{6,8 V} \cdot \frac{\textrm{4,7}}{\textrm{19,7}} = \textrm{1,62 V}</math>
 
 
 
Da ist noch gut Luft zu den Maximal 1,8 V - rechnet man rück, dürfte der Spannungsabfall über den Gleichrichter bis auf 0,65 (für beide Dioden) fallen, um auf eine Eingangsspannung von über 1,8 V am Komparator zu kommen
 
 
 
Der Kondensator für den Tiefpass kann übrigens gleich bleiben. Die Grenzfrequenz steigt zwar ein wenig, der Wert ist jedoch weniger kritisch.
 
 
 
Daraus ergibt sich folgender Schaltplan:
 
 
 
<gallery>
 
  Vbuspi_1.2b_assy_sch.png|Schaltplan Version 1.2b
 
</gallery>
 
 
 
Die aktualisierte BOM lautet wie folgt:
 
  
<tabs>
+
<code>
<tab name="Optoisoliert">
+
<span style="color: grey">console=tty0</span> <span style="background-color: #FFC9C9; text-decoration: line-through;">console=ttyS1,115200</span> <span style="color: grey">root=LABEL=RASPIROOT rw fsck.repair=yes net.ifnames=0 rootwait</span>
{| class="wikitable"
+
</code>
! Menge  || Referenzen  || Wert              || Package        || Reichelt Bestellcode   
 
|-
 
| 1      || C2          || 100n                || C0603          || X7R-G0603 100N 
 
|-
 
| 1      || C6          || 100p                || C0603          || NPO-G0603 100P 
 
|-
 
| 1      || C5          || 10u/16V            || C1206          || KEM X7R1206 10U
 
|-
 
| 3      || R2, R6, R8  || 15k                || R0603          || RND 0603 1 15K 
 
|-
 
| 2      || X1, X4      || 1751248            || 1751248        || AKL 059-02     
 
|-
 
| 1      || R9          || 1k                  || R0603          || RND 0603 1 1,0K
 
|-
 
| 1      || C4          || 1n                  || C0603          || X7R-G0603 1,0N 
 
|-
 
| 2      || R4, R7      || 2k2                || R0603          || RND 0603 1 2,2K
 
|-
 
| 1      || C3          || 3u3/10V            || C0603          || X5R-G0603 3,3/10
 
|-
 
| 2      || R3, R5      || 4k7                || R0603          || RND 0603 1 4,7K
 
|-
 
| 1      || OK1        || 6N136              || DIL08          || 6N 136         
 
|-
 
| 1      || R1          || 6k8                || R0603          || RND 0603 1 6,8K
 
|-
 
| 3      || D1, D2, D5  || BAV99              || SOT23          || BAV 99 NXP     
 
|-
 
| 1      || IC4        || LM393D              || SO08          || LM 393 D SMD   
 
|-
 
| 1      || D3          || P6SMB 15A          || SMBJ          || P6SMB 15A SMD 
 
|-
 
| 1      || X2          || RPI_UART_CONDENSED  || RPI_UNIV_UART  || RND 205-00654 
 
|-
 
| 1      || IC1        || TS5205CX533        || SOT23-5        || TS 5205 CX533 
 
|}
 
</tab>
 
<tab name="Direkt">
 
{| class="wikitable"
 
! Menge  || Referenzen  || Wert                || Package        || Reichelt Bestellcode   
 
|-
 
| 2      || R10, R11    || 0                   || R1206          || RND 0805 1 0   
 
|-
 
| 1      || C2          || 100n                || C0603          || X7R-G0603 100N 
 
|-
 
| 1      || C6          || 100p                || C0603          || NPO-G0603 100P 
 
|-
 
| 2      || C5          || 10u/16V            || C1206          || KEM X7R1206 10U
 
|-
 
| 3      || R2, R6, R8  || 15k                || R0603          || RND 0603 1 15K 
 
|-
 
| 1      || X1/X4      || 1751248            || 1751248        || AKL 059-02     
 
|-
 
| 1      || C4          || 1n                  || C0603          || X7R-G0603 1,0N 
 
|-
 
| 2      || R4, R7      || 2k2                || R0603          || RND 0603 1 2,2K
 
|-
 
| 1      || C3          || 3u3/10V            || C0603          || X5R-G0603 3,3/10
 
|-
 
| 2      || R3, R5      || 4k7                || R0603          || RND 0603 1 4,7K
 
|-
 
| 3      || D1, D2, D5  || BAV99              || SOT23          || BAV 99 NXP     
 
|-
 
| 1      || IC4        || LM393D              || SO08          || LM 393 D SMD   
 
|-
 
| 1      || D3          || P6SMB 15A          || SMBJ          || P6SMB 15A SMD 
 
|-
 
| 1      || X2          || RPI_UART_CONDENSED  || RPI_UNIV_UART  || RND 205-00654 
 
|-
 
| 1      || IC1        || TS5205CX533        || SOT23-5        || TS 5205 CX533 
 
|}
 
</tab>
 
</tabs>
 
  
Damit sollte nun der Komparator glücklich sein. Auch in der Simulation in LTspice passen die Schwellen und das Verhalten der Schaltung.
+
Alternativ kann man wie folgt vorgehen:
  
Hierzu hatte Stefan folgende Anmerkung:
+
Die Datei <code>/etc/default/raspi-firmware</code> wird beim Kernel Update verwendet, um die Datei <code>/boot/firmware/cmdline.txt</code> neu zu schreiben. Hier muss die Konsole fest auf (nur) "tty0" gesetzt werden:
  
 
<pre>
 
<pre>
Nicht gefallen tut mir der C6 von 100pF.
+
CONSOLES="tty0"
Dadurch wird zwar die Referenz stabiler aber die Schwellenumschaltung beim Pegelwechsel wird langsamer.
 
Damit reduziert sich die Störfestigkeit des Eingangssignals. Ich hätte es aber vermutlich auch so gemacht.
 
 
</pre>
 
</pre>
  
Ja, das ist richtig - und auch ich war/bin über den Kondensator nicht so richtig glücklich.
+
Nach einem Kernel Update oder dem Ausführung von <code>update-initramfs -k all -u</code> (dauert mind. 40 Sekunden) sollte sich in der Datei <code>/boot/firmware/cmdline.txt</code> kein "ttyS1" mehr wiederfinden (Beispiel):
Das Bauteil ist meiner Meinung allerdings ein sehr einfacher und effektiver Weg, das beschriebene Problem - besonders im bereits existierenden Design - einfach zu umgehen.
 
 
 
Da die Versorgung nicht 100 %ig stabil war, hatte er noch folgenden Ratschlag:
 
 
 
 
<pre>
 
<pre>
Noch eine Anmerkung zu deiner Kostenreduktion mit dem TS5205 CX533.  
+
console=tty0 root=LABEL=RASPIROOT rw fsck.repair=yes net.ifnames=0 rootwait
Ich vermute dass der Ausgangskondensator (C3) nicht passt (ESR zu hoch).
 
LowDrop Regler sind bei zu hohem ESR instabil.
 
Manchmal hilft ein 2ter Kondensator parallel zu C3 (so 10nF bis 100nF) um den Regler stabil zu bekommen.  
 
 
</pre>
 
</pre>
  
Was ich versucht habe aber nicht zum gewünschten Erfolg verhalf. Das Problem ist vermutlich eher, dass die Schaltung bei aktivem Optokoppler gänzlich aus den Bulk-Kondensatoren gespeist werden müssen.
+
Vielen Dank an Jörg für den Hinweis!
  
Da hilft nur mehr Kapazität am Eingang, weswegen als Workaround C5 "aufgedoppelt" werden sollte (Stapeln zweier Kondensatoren). Das ist zwar nicht so richtig schön, aber sollte in den meisten Fällen helfen.
+
=Weiteres=
 
+
Die [[3D-Druck-Sammelsurium#Raspberry_Pi_Zero_Spacer|Raspberry Pi Zero Spacer]] passen auch hier.
Aufgrund der verschiedenen Unzulänglichkeiten - und um den bei manchen Reglern erforderlichen Rückkanal zu haben - gibt es eine verbesserte Version der Hardware: [[VBus-Decoder/Adapter_für_den_Raspberry_Pi_v1.3|Version 1.3]]
 
 
 
 
 
=Downloads=
 
* [[Datei:Vbus_pi.zip]] EAGLE-Dateien Adapter für den Raspberry Pi
 
* [[Datei:vbus_pi_v1.2_3v3.zip]] EAGLE-Dateien und LTspace-Simulationsdaten für die 3,3 V-Version des VBus-Adapter für den Raspberry Pi
 
  
 
[[Kategorie:Raspberry Pi]]
 
[[Kategorie:Raspberry Pi]]

Aktuelle Version vom 24. Februar 2023, 23:28 Uhr

Dies ist ein Unterartikel von VBus-Decoder. Auf der Hauptseite gibt es weitere Informationen zum Thema.

Achtung: Diese Hardware ist etwas unter die Räder gekommen, es gibt ein paar Unzulänglichkeiten. Deshalb ist es empfehlenswert, entweder Version 1.3 oder zumindest 1.2b nachzubauen.

Einleitung

Die meisten werden ihre Solaranlage vermutlich über den Raspberry Pi (oder kompatbile) ins Netz bringen wollen. Deshalb gibt es nun auch eine Variante für den Kleincomputer.

Damit sie sowohl am B-Modell als auch auf den Zero montiert werden können, ist sie trennbar. Damit der untere Teil im Fall der Verwendung am Zero nicht im Müll landen muss, befindet sich auf der Unterseite ein Punktraster im Abstand von 1,27 mm. Dort lässt sich gut mit SMD-Bauteilen (z. B. im 0603- oder SO-Gehäuse) basteln oder zumindest das Löten üben.

Versionen

Einrichtung am Raspberry Pi

Raspbian

Damit der UART unter Raspbian verwendet werden kann und es keine Kollision mit der Konsole gibt, muss diese in /boot/cmdline.txt deaktiviert werden.

Dazu mittels sudo nano /boot/cmdline.txt die Datei öffnen und folgende Zeile löschen:

console=serial0, 115200

Debian Bookworm

Verwendet man Debian Bookworm, muss in /boot/firmware/config.txt enable_uart deaktiviert werden, also folgendes gesetzt werden:

enable_uart=0

In /boot/firmware/cmdline.txt muss der markierte Teil entfernt werden (überlebt Kernel-Updates nicht):

console=tty0 console=ttyS1,115200 root=LABEL=RASPIROOT rw fsck.repair=yes net.ifnames=0 rootwait

Alternativ kann man wie folgt vorgehen:

Die Datei /etc/default/raspi-firmware wird beim Kernel Update verwendet, um die Datei /boot/firmware/cmdline.txt neu zu schreiben. Hier muss die Konsole fest auf (nur) "tty0" gesetzt werden:

CONSOLES="tty0"

Nach einem Kernel Update oder dem Ausführung von update-initramfs -k all -u (dauert mind. 40 Sekunden) sollte sich in der Datei /boot/firmware/cmdline.txt kein "ttyS1" mehr wiederfinden (Beispiel):

console=tty0 root=LABEL=RASPIROOT rw fsck.repair=yes net.ifnames=0 rootwait 

Vielen Dank an Jörg für den Hinweis!

Weiteres

Die Raspberry Pi Zero Spacer passen auch hier.