FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: manne44 am 10 Februar 2020, 01:20:43

Titel: [Gelöst] I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 10 Februar 2020, 01:20:43
Hallo,
ich habe beim Wechsel vom Banana Pi zum Raspberry Pi 4 ein Problem festgestellt, für das ich keine Erklärung habe:
Ich habe einen Arduino Nano, der analoge und digitale Werte erfasst und über die I2C-Schnittstelle an FHEM auf dem Raspberry bzw. Bananna Pi überträgt. Die Übertragung erfolgt alle 5 s durch Request.
Beim Banana Pi war da seit einigen Jahren kein Problem, aber nach dem Wechsel stelle ich fest, dass der RPI überhaupt nicht anfängt zu booten nach der Spannungsabschaltung und wieder -einschaltung. Ein angeschlossener Monitor zeigt nichts, das Teil steht. Das ist natürlich nicht akzeptabel. Beim Zuschalten des Arduino nach dem Start des RPI ist alles in Ordnung. Auch das Verzögern der Meldung des Arduino (Wire.begin(I2C_ADDRESS);) hat keine Auswirkung. Die pure Anschaltung scheint hier das Problem zu sein. Selbstverständilich über 5V zu 3.3V Pegelwandler.
Deshalb habe ich erst einmal eine PowerBank dazwischen geschaltet, also der RPI geht erst nach langer Stromunterbrechung aus.
Ich kann mir das nicht erklären und weiß keinen Rat. Alles ist auf aktuellstem Stand FHEM und Buster. Vielleicht hat das schon jemand erlebt und kann dazu was sagen. Vielen Dank.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Wernieman am 10 Februar 2020, 07:46:25
Wen der PI nicht mal anfängt zu booten würde ich von einem Hardwareproblem ausgehen. Zieht Deine Hardwarekonstruktion zu viel Strom?
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Frank_Huber am 10 Februar 2020, 08:31:39
Sag uns vielleicht mal noch was das genau für eine Schaltung ist.
welche Pins des PI sind belegt?
Wie wird die Schaltung mit Strom versorgt?
Was machen die LEDs vom PI?
Was für eine Stromversorgung hast dran?
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 10 Februar 2020, 10:31:57
Hallo, erst einmal vielen Dank für die Antworten.
Am RPI sind folgende Pins belegt: Pin 11, Pin 13 als Input und Pin13, Pin 21 als Outputs. Pin 3 (SDA) und Pin 5 (SLC) für den I2C, die über einen handelsüblichen Pegelwandler auf den Arduino geschaltet sind. Außerdem befindet sich eine SSD am USB-3-Anschluß des RPI, von der auch teilweise gebootet wird, also erst einmal von der Micro-SD, die dann während des Bootvorgangs an die SSD übergibt. USB-Boot des RPI4 funktioniert noch nicht. Stromversorgung über das stärkere originale PRI-4-Netzteil. Also alles so, wie das am BananaPi auch war, nur dass die SSD an der SATA-Schnittstelle hing, die der RPI leider nicht hat, und das Netzteil schwächer war. Der Arduino hat ein eigenes 5V-Netzteil, nimmt dem RPI also keinen Strom weg.
Die Stromaufnahme kann ich leider so einfach nicht messen, weil ich kein zusätzliches USB3-Kabel habe, das ich auftrennen könnte bzw. einen microUSB-USB3-Adapter, an den ich dann ein normales micro-USB-Kabel hängen könnte. Eine Spannungsmessung beim Boot-Stillstand oder beim Lauf mit I2C ergeben keine Unterschiede, als kein Spannungseinbruch wegen zu hoher Stromaufnahme beim Boot-Stillstand. Spannung beträgt immer rd. 5.16 V.
Beim normalen Booten ist die rote LED an und die gelbe flackert, nach kurzer Zeit beginnen auch die LEDs an der Netzwerkbuchse zu flackern. Beim Boot-Stillstand leuchtet die rote LED und sonst nichts.
Ich hoffe, dass ich alle genau beschrieben hab, so dass alle Klarheiten beseitigt sind.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Frank_Huber am 10 Februar 2020, 10:42:32
OK, das klingt mal nicht falsch.
Hast Du über raspi-config I2C aktiviert?
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 10 Februar 2020, 10:50:28
Selbstverständlich, ansonsten würde das ja nie funktionieren. Denn wenn ich nach dem Hard-Reset, also Spannung weg und wieder an, der I2C nicht funktionieren wenn ich anschließend den Arduino zuschalte.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Wernieman am 10 Februar 2020, 10:55:44
Trennst Du den Arduino komplett oder nur i2c damit es funktioniert?
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 10 Februar 2020, 11:00:38
Ich lege den Arduino still, also ziehe die Stromversorgung ab.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Wernieman am 10 Februar 2020, 11:02:56
probiere mal, nur i2c zu trenne.

Wenn es geht = Liegt an I2C
Wenn nicht, liegt es im Strombereich ...
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 10 Februar 2020, 14:39:03
Also Trennung von SDA oder SCL (Pin3 und Pin5) bringen keine Änderung. Trennung der Versorgungsspannung 5V von Pegelwandler führte zum normalen Booten. Seltsam ist es, dass es einen verkehrten Stromfluß zwischen dem 3.3V-Pin-1 des RPI von rd 120mA gibt, wenn der Bootvorgang stoppt. Es fließen also 120 mA vom Ground zum 5V-Pin des Arduino. Unklar. Wird der Arduino nach dem Booten des RPI zugeschaltet, dann kommt kaum ein Stromfluß zwischen dem 3.3V-Pin und dem Pegelwandler zustande. Warum beim Start und dann nicht mehr?
Vielleicht ist der Pegelwandler defekt, aber wenn alles läuft, dann werden die Pegel wunschgemäß von 5 auf 3.3V gewandelt (mit Oszilloskop kontrolliert), also alles ok.
Ich habe jetzt erst mal keinen Ersatz für den Pegelwandler und lasse es erst einmal so wie es ist. Offenbar ist der Pegelwandler das Problem und nicht der für mich neue RPI4, was ich zuerst dachte.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: Wernieman am 10 Februar 2020, 15:25:39
Würde auf verschiedene "Grounds" durch verschiedene Stromversogungen Tippen. Kannst Du es nicht auf eine Begrenzen?
Als Schnellcheck: Drehe mal ein Netzteil in der Steckdose, so das die Pole vertauscht sind ...

Mir persönlich würde so ein Stromfluß nicht gefallen, da er ein Fehler darstellt.
Titel: Antw:I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 13 Februar 2020, 11:19:17
Also ich habe mal den Pegelwandler ausgetauscht und siehe da, alles wie gewünscht. Weil ich den RPI4 nicht kannt, dachte ich erst daran, dass der Eumel daran schuld wäre, denn mit dem BanandPi ging das jahrelang gut.
Vielen Dank nochmals für Eure Hilfe.
Gruß
Manne
Titel: Antw:[Gelöst] I2C blockiert beim RPI4 booten
Beitrag von: QuaLinux am 26 Juni 2022, 15:14:35
Guten Tag,
ich habe zwei Jahre später ein ähnliches Problem und würde daher gern wissen, um welchen Typ Pegelwandler es sich gehandelt hat.
Danke im Voraus,
#Griß
Peter
Titel: Antw:[Gelöst] I2C blockiert beim RPI4 booten
Beitrag von: manne44 am 26 Juni 2022, 17:04:03
Das kann ich nicht sagen, irgendein low-cost 4-Kanal Level Converter aus China. Bis jetzt funktioniert er einwandfrei.