I²C Bastellprojekt

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi Leute Ich hab vor mal ein kleines Projekt mit einem Alten TV Receiver und der Rasberry 3B+ zu machen.

    Es für mich zum lernen der TV Receiver ist alt geht aber noch. Er hat einen I²C Bus der auf der Platine auch mit 12/0V Data und CL gekennzeichnet ist.

    Ich würde Ihn gerne mit dem Raspberry verbinden und mit der IR Fernbedinung die Sender schalten und das Signal von I²C Bus mitloggen.

    Ziel soll es sein das ich auch Die Sender später über die Rasperry schalten kann.

    Ich suche einen Denkansatz wie ich so etwas umsetzen kann?

    Da der Receiver über eine eigene CPU verfügt darf ich den CL der Raspberry dann anklemmen der Takt ist sicher anders?

    Oder benötige ich so was wie einen Buskoppler um zwischen den zwei I²C Bussen zu kommunizieren

    2 Mal editiert, zuletzt von Radix75 (27. April 2019 um 18:46)

  • Sowas heisst "i2c Sniffer/Logger"

    Wird als zusärtlicher i2c Slave in den i2c Bus gehängt und loggt den Datenverkehr der eingestellten Adressen mit.

    Wird am Pi alleine aber nicht realisierbar sein; am Pi gibt es nur einen i2c Master.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo Radix75,

    erst mal solltest Du klären ob der Receiver als Slave laufen kann.

    Ich denke die Schnittstelle wurde mal dafür gemacht was anzuhängen und nicht um den Receiver zu steuern.

    Oder ist das irgendwo beschrieben?

    Wenn der Receiver als Slave läuft horcht er auf den CL vom Raspi.

    Größtes Problem wird der Pegelunterschied sein, außer Du erwartest keine Daten vom Receiver zurück, dann musst DU die 3,3V vom Raspi über Transistor "hochpumpen", vielleicht reichen ja auch nur Dioden und Pullups, müsste man ausprobieren.

    Was steht denn für eine Spannung am SCL und SDA an und wie ändert sie sich wenn Du eine 50kOhm Widerstand gegen 12V einbaust.

    Daran könnte man schon sehen ob der Receiver selbst schon Pulls hat.

    Viele Grüße

    Thotaa

  • Hi Leute erst mal Danke für die vielen Antworten!

    Ein paar Fragen habe ich noch dazu.

    Fragen zu Beitrag von

    schnasseldag

    <<< gäbe es einen "billigst" I2C Sniffer, mit dem Du das Protokoll mitschneiden könntest.

    Das Gerät liest also nur die Daten mit? Ich kann darüber keine Befehle zurücksenden?

    Gibt es noch Geräte die mehr können? Ich würde ja später über ein Python ein Programm auf der Raspberry schreiben

    welches den entsprechenden I²C Code auf den Bus schreibt.

    Fragen zu Beitrag von

    Thotaa

    "erst mal solltest Du klären ob der Receiver als Slave laufen kann."

    Kannst du mir das ausführlicher erklären wie bekomme ich das Raus?


    "Was steht denn für eine Spannung am SCL und SDA an und wie ändert sie sich wenn Du eine 50kOhm Widerstand gegen 12V einbaust.

    Daran könnte man schon sehen ob der Receiver selbst schon Pulls hat."


    Masse zu DATA 9,42 V ohne Wiederstand

    Masse zu CLK 9,54 V ohne Wiederstand

    mit Wiederstand 50,17 KOhm

    Masse zu DATA 9,43 V

    Masse zu CLK 9,56 V

  • Hallo Radix75,

    ganz sicher weiß man es nur wenn es in der Anleitung geschrieben steht.

    Die Messwerte sprechen dafür dass der Receiver Master sein möchte er hat wohl schon Pullups intern verbaut, sonst wären die Messwerte mit und ohne Widerstand deutlich unterschiedlicher.

    Es kann auch 2 Master (oder mehr) innerhalb eines I2C-Busses geben, nur müssen die das gegenseitig wissen.

    Dabei werden über Protokolle die Zeiten gemanagt wer wann den Takt (SCL) bedient, also echter Master ist.

    Ob das der Raspi kann weiß ich nicht, müsste man mal googeln.

    Viele Grüße

    Thotaa

  • Die 12 V am Tuner werden wohl weniger fur den i2c Bus benötgt, als für die Stromversorgung von LNB und Tuner, samt LNB Schaltsignalen.

    Im I2C Multimaster Mode muss immer ein Master darauf lauschen, ob nicht ein anderer Master gerade den Bus verwendet. Wenn Du am I2C Bus an einem Consumer Gerätes herumfummeln willst, musst Du zuerst den I2C Bus verstehen, oder Dich damit vertraut machen.

    Wenn Du vom Pi aus den Sat Receiver schalten willst, dann wäre die Verwendung des IR Fernbedienungskreises die bessere Wahl. Nicht nur, weil sich IR rx/tx über die GPIOS steuern lässt, sondern weil es auch ein Linux-Infrared-Remote-Controll [LIRC] fertig gibt.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hi RTFM

    Es ist mir schon bewusst das es andere Möglichkeiten zur Steuerung über IR gibt

    Ich möchte mit dem Projekt aber lernen wie ich etwas mit dem I2C Bus steuern kann.

    der Receiver ist alt und ich kann so noch etwas lernen.

    Ich habe mir mal den Modem Bausatz von Horter&Kalb bestellt.

    https://www.horter.de/i2c/i2c-usb-modem/i2c-usb-modem_1.html

    Wenn ich ihn fertig habe kann ich damit mal die Sniffer Funktion austesten.

    Hast Du dazu noch weiterführende Literatur ? Die PDFs habe ich schon geladen

    Schön währen noch Infos zur Programmerstellung. Und ob der Raspberry die Signale auch auf den Bus schreiben kann wenn beide Master sind so wie es Thotaa vermutet.

    Vielleicht gibt es ja noch die alternative das Modem an der Raspberry zu betreiben?

  • Du musst zuerst den I2C Bus verstehen, was der wie macht, den Unterschied zwischen Single-Master und Multi-Master.

    Und ja, Du wirst den Tuner wahrscheinlich vom Pi aus über einen Level-Shifter (3,3 <--> 5,0 V) bedienen können. Nur nicht gemeinsam mit dem Mikrokontroller des Receivers, sondern an seiner Stelle. Dazu brauchst Du vorerst ein Datenblatt des Tuners (das ist das kleine Blechkasterl an dem die F-Buchse fürs LNB Kabel eingebait ist). Am Tuner stehl allerhand drauf, einschliesslich Erzeuger und Produktkennung. Google einfach danach, bis Du ein Datenblatt dafür findest.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Habe mir Folgendes durchgelesen

    https://www.darc.de/fileadmin/_mig…I2CTheorie1.pdf

    Faragen habe Ich zu:

    Thotaa Multi-Master

    "Ob das der Raspi kann weiß ich nicht, müsste man mal googeln."

    Laut Google kann der Rasbery Pi3B+ Multi-Master ob alle Treiber das unterstützen ist allerdings umstritten.

    Hat noch jemand genauere Infos dazu?

    RTFM

    "Und ja, Du wirst den Tuner wahrscheinlich vom Pi aus über einen Level-Shifter (3,3 <--> 5,0 V) bedienen können. "

    Warum zu 5V ich habe ja 9,56 V als höchste Spannung am Bus gemessen?

    habe so einen Level-Shifter gefunden Lieferzeit aber 6 Wochen

    https://www.ebay.de/itm/2x-Level-S…UYAAOSwxH1T2d~7

    Einmal editiert, zuletzt von Radix75 (30. April 2019 um 19:10)

  • Warum zu 5V ich habe ja 9,56 V als höchste Spannung am Bus gemessen?

    I2C wurde zu einer Zeit erfunden, als TTL (Transistor to Transistot Logik) generell mit 5 V "Logiklevel" funktionierte. Erst im Zuge der Miniaturisierung wurden weitere Logiklevel definiert. Die liegen aber alle darunter.

    Im Datenblatt des verbauten Tuners, das Du Dir wahrscheinlich schon besorgt hast, wirst Du auch die 5 V am I2C (Clock und Data) erkennen.

    Wenn Du 9,56 V gemessen hast, war das keine I2C Leitung, oder Du hast "schlampig" gemessen, d.h. das Multimeter ist noch hin- und hergesprungen, bevor es erst stabil den Wert angezeigt hat.

    Servus !.

    RTFM = Read The Factory Manual, oder so

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!