Hallo, ich bräuchte Ideen oder eine Lösung für I2C Bus. Aufbau: Raspberry im Metall case (inkl. Sensoren, Lüfter, Steuerungen etc.). Am i2c bus hängen insgesamt 2 Geräte dran und eigentlich das oled Display. Alle i2c Geräte sind ohne Widerstand am Bus dran. Zuerst hatte ich nur versuchsweise das Display angesteuert, da war noch alles Fliegend verdrahtet und funktionierte wunderbar. Seit ich aber alles zusammen gebaut habe, ist eine addresierung am Bus nicht mehr möglich, das oled erzeugt Fehler auf den Bus. Meine Frage ist daher was ich gegen den Fehler unternehmen könnte... Würde mir nen 4k7 Widerstand am oled was bringen? Oder weitere/andere Ideen? Gruß Daniel
Daniel schrieb: > Meine Frage ist daher was ich gegen den Fehler unternehmen könnte... erst einmal nachmessen, was Sache ist. Im Moment ist die Form der Flanken auf dem I²C Bus am interessantesten. > das oled erzeugt Fehler auf den Bus. Wie genau ist das zu verstehen? Du solltest vielleicht wenigstens die Produkte konkret benennen und dein Blockschaltbild zeigen, damit potentielle Helfer nicht ausschließlich auf ihre Phantasie zurückgreifen müssen. Fotos vom Aufbau wären auch gut.
Raspberry pi 4 I2C: Geekworm X708 usv Modul APDS-9960 Ssdp1306(128x64px) Anschluß Plan: GPIO27 -> 3v3 SSDP1306 (gpio27 muss eingeschaltet werden) GND -> GND SSDP1306 SCL -> SCL SSDP1306 SDA -> SDA SSDP1306 Fotos gibt es zwar, aber das Display ist einfach viel zu versteckt eingebaut...Das oled wurde vom kleber an der schaltung entfernt sodas der screen vorne zu sehen ist und die schaltung im Inneren....
Noch das Bild von vorne und oben hinzugefügt. Es halt wirklich schwer zu erkennen wo die schaltung vom oled sitzt
a) zeige dein Blockschaltbild b) messe das Signal, zeige wie dessen Flanken und das Timing aussehen c) beantworte die Frage, was "das oled erzeugt Fehler auf den Bus" bedeutet d) werfe deine Kamera weg oder benutze sie nie wieder Immerhin kann man sehen, dass es nur um wenige Zentimeter Leitungslänge geht. Ansonsten sehe ich viel bunte Knete. Aus deinem Blockschaltbild sollten Position und Größe der Pull-Up Widerstände hervor gehen. Wenn du keine hast, lies mal die Spezifikation vom I²C Bus (UM10204). Das steht alles Wissenswerte gut verständlich drin, sofern man englisch kann.
a) zeige dein Blockschaltbild Habe kein Schaltplan. Es ist doch bloß direkt am raspberry angeschlossen. b) messe das Signal, zeige wie dessen Flanken aussehen Hab natürlich kein Oszilloskop zur Verfügung.
Der RasPi hat schon mal keine Pullups. Bzw die internen (wenn aktiviert) sind um die 50k. Haben deine Devices Pullups? Wenn nicht kann jeweils ein 2-5k Pullup an SDA und SCL sicherlich nicht schaden
Schonmal danke für den Hinweis mit den i2c Spezifikationen. Mit den Pullup Widerständen hab ich gerade nachgelesen, das die doch sinnvoll sein könnten... Die Devices haben keinen Pullup Widerstand, bzw. beim X708 Modul könnte ich es gar nicht beantworten. Ich hoffe ich finde gleich zwei 2-5K Widerstände, dann probier ich das direkt mal aus. Dankeschön
Daniel schrieb: > Mit den Pullup Widerständen hab ich gerade nachgelesen, das die doch > sinnvoll sein könnten... Eher notwendig... Daniel schrieb: > Ich hoffe ich finde gleich zwei 2-5K Widerstände, dann probier ich das > direkt mal aus. Die müssen nicht dynamische Werte haben. 2.7k, 3.3k oder 4.7k sind okay. Selbst 10k ist besser als gar nichts (zumindest sollte 10k für Low-Speed ~100kHz reichen)
:
Bearbeitet durch User
Mit zwei 4,7k Widerständn wird die addresse vom oled gar nicht mehr erkannt 😕 Hab ich es vielleicht doch geschrottet? 🤔
Daniel schrieb: > Mit zwei 4,7k Widerständn wird die addresse vom oled gar nicht mehr > erkannt 😕 Wie hast du die angeschlossen? Die müssen jeweils vom Signal SDA bzw. SCL nach +3,3V gehen. NICHT gegen GND! Ein Oszi, und sei es noch so einfach, wäre jetzt viel Wert. Oder du mußt versuchen, die I2C Pins als Open Drain Ausgänge zu konfigurieren und per Hand/Konsole auf HIGH und LOW zu schalten. Da kann man mit einem Multimeter messen, ob gescheite HIGH und LOW Pegel erreicht werden.
Achso, die müssen gegen Spannung gehen 😅 Hatte das so verstanden, daß die in die SCL bzw SDA Leitung zwischen master und Sklave kommen. Oh man jetzt mach ich ja echt viel falsch 😅
Nur zur Sicherheit etwas bildlich dargestellt: Raspi SDA----------------SDA Oled | | | | 5KOhm | | | | Raspi VCC---------------VCC (3,3 oder 5V) Raspi SCL----------------SCL Oled | | | | 5KOhm | | | | Raspi VCC---------------VCC (3,3 oder 5V)
Kleiner Nachtrag, das Display ist ja liebevoll mit Heißkleber auf die Blechkiste gepappt, auf der Rückseite sind ja Leitfähige Bauteile- Anschlüsse, die könnten das Blech kontaktieren. Weiterhin sieht die Kabeldurchführung für das Flexkabel auch optimierungsbedürftig aus. Wenn das Blech scharfkantig ausgeschnitten ist, könnte das Kabel dort auch ungewollten Kontakt zum Gehäuse haben. PS: Nicht in den falschen Hals kriegen, ich mag auch manchmal den "rustikalen Bastlerstyle".
Ja, hab ich genauso angeschlossen gehabt. Auf der Rückseite des screens befindet sich nur ein blech, bei der Durchführung der Kabel geb ich dir recht. Ich kann nicht 100%ig ausschließen, das es dort beschädigt ist. (aber ich hab die Durchführung etwas angefeilt) auch im Gehäuse inneren ist die Isolierung und Befestigung: Heiß kleber. Für Ideen wie ich ein Display an der Front befestige, bin ich offen. War die "akzeptabelste" Idee die mir eingefallen war
Zumindest weiß ich jetzt, daß das ssd1306 Display ohne Probleme den Backofen bei 60-70 °C übersteht um den kleber zwischen Platine und Glas zu lösen. Aber kleine mechanische belasse ist echt tödlich, falls ich es geschrottet hab, wäre es mein zweites oder drittes 🙄
Timmo H. schrieb: > Der RasPi hat schon mal keine Pullups an den default I2C Anschlüssen schon 1,8k pullups, kann man messen! Der Beweis: Daniel schrieb: > Zuerst hatte ich nur versuchsweise das Display angesteuert, da war noch > alles Fliegend verdrahtet und funktionierte wunderbar. masterfx ich bin ja Fan seit deinem Zerlegen vom AES3 und anderen Dingen (Timer) aber dem armen PI keine pullups an SDA und SCL anzudichten ist stark! https://www.raspberrypi.org/forums/viewtopic.php?t=7664 LG
:
Bearbeitet durch User
Daniel schrieb: > a) zeige dein Blockschaltbild > Habe kein Schaltplan. Es ist doch bloß direkt am raspberry > angeschlossen. Der ist aber zum Verständnis des Aufbaus wichtig. Zu dem solltest du doch die Produkte bennenen. Bekommen habe ich Chip-Nummern. Du hast sicher mehr als nur nackte Chips angeschlossen. Und genau dieses mehr ist der entscheidende Punkt für die Fehleranalyse. > b) messe das Signal, zeige wie dessen Flanken aussehen > Hab natürlich kein Oszilloskop zur Verfügung. Dann kaufe oder leihe dir eins. Zur Not tut es ein DSO138, das kann sich jeder leisten. > Für Ideen wie ich ein Display an der Front befestige, bin ich offen. Klebe es mit doppelseitigem Klebeband auf eine größere Trägerplatte aus Kunststoff oder dicker Pappe. Dann hast du rundherum genug Platz, Montagelöcher zu bohren. Schrauben zur Befestigung kann mit 2-Komponenten Kleber unsichtbar an die Innenseite des Gehäuses kleben. Es gibt alternativ dazu selbstklebende Platinenhalter in unterschiedlichen Längen, die dazu taugen: http://shop.griederbauteile.ch/product_info.php?products_id=23532
A) Ich hab nur die Chips angeschlossen, ich brauch ja auch nur die I/O der Chips. Klar sind auf anderen Pins auch kleine Transistor schaltungen dran, aber die diese schalten nur Lüfter an/aus. Selbst dabei könnte ich nicht sagen welche Widerstände oder Kondensatoren verwendet wurden. B) Oszilloskop und Signal Prüfung ist einfach nicht mein Ding, das lohnt sich auch nicht. Entweder hab ich nen "einfachen" Fehler gemacht, wie z.B. die PullUps oder defekt. C) Vom Grundsatz her kenne ich das Vorgehen daß du beschreibst, finde ich auch schöner gelöst, wenn das Display auf der Platine verbleibt. Nur der Platz im case 😅 - da ist einfach kein Platz für da. Es ist schon absicht im minimal case alles unterzubringen. Minimalistisch und trotzdem luftig. Ich weiß das es alles nicht gerade ordentlich dokumentiert ist, aber eigentlich hatte ich gehofft, keinen Fehler beim Einbau gemacht zu haben 🙄 Aber irgendwas ist ja immer. Für mich sind es eben nur Hardware Module, die Signale empfangen bzw verschicken, die ich für die Programmierung und Steuerung benötige
Daniel schrieb: > Oszilloskop und Signal Prüfung ist einfach nicht mein Ding, das lohnt > sich auch nicht. Doch, das lohnt sich gerade für Fälle wie diesem sehr. Wir reden hier von 20 Euro als Bausatz bzw. 30 Euro als Fertiggerät, ist dir das bewusst?
Ja, das ist mir bewusst. Aber bei nen rund 2€ Display, rechnet es sich nicht. Ich bastel zwar "jährlich was neues", aber normalerweise geht nix kaputt - aber wenn dann richtig 🙄 War irgendwie nie interessant genug um als Bausatz bei mir zu landen.
Daniel schrieb: > Aber bei nen rund 2€ Display, rechnet es sich nicht. Es geht nicht um die 2€, sondern darum, ob dein Projekt scheitert oder nicht. Es sei denn, dein Projekt ist, das Display irgendwie anzusteuern. Du hast dir ja auch einen Lötkolben gekauft, um Bauteile zu verarbeiten, die einzelne Cent kosten. Werkzeug kostet halt Geld.
Daniel, ich habe meine OLED Klasse anlässilich deiner Reklamation nochmal auf einem Arduino Nano geprüft. Sie funktioniert. Auf der Seite http://stefanfrings.de/arduino_oled/index.html siehst du ein Foto vom Aufbau und da kannst du auch den exakten Quelltext von meinem Test downloaden. Dein Speicherproblem wird damit wohl nicht gelöst. Ich wollte nur zurück melden, dass der Code funktionsfähig ist.
Ich hab da mal ne Idee. Er hat ein METALL-Gehäuse. Ein Display verbaut man normal in ein Gehäuse. Da die Hersteller in den seltensten Fällen von Metall ausgehen, denke ich mal da ist einfach irgendwie ZU VIEL Masse (oder sogar Spannung). Ich würde das Gehäuse mal messen, ob es irgendwo Kontakt hat wo es nicht soll. Ich hatte so was mal vor 30 Jahren mit einen Mainboard. Das lief prima, nur nicht im Gehäuse. Ich habe das Gehäuse dann Klarlack-Lackiert innen. Und oh Wunder das Mainboard lief bis zu seiner Verschrottung prima. Seit dem machen mich Metallgehäuse immer misstrauisch.
Stefan ⛄ F. schrieb: > ich habe meine OLED Klasse anlässilich deiner Reklamation nochmal auf > einem Arduino Nano geprüft Daniel, sorry. Ich habe den Thread verwechselt. Vergiss meinen Beitrag.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.