Beiträge von snoopy123

    1. Meines Wissens misst der Undervoltage-Detector die 5V-Spannung eben nicht, sondern die 1,3V Versorgungsspannung des Prozessors. Das ist naemlich eine Prozessorfunktion. Deswegen fehlt auch eine genaue Spannungsangabe. Der Undervoltage-Detector schlaegt also nur aus, wenn die CPU nicht genug Saft bekommt. Wieviel das ist, kann die Funktion nicht ermitteln.

    2. Kann ich jetzt nichts zu sagen. Dafuer muesste ich mir das Displayboard genauer anschauen. ICh frage mich warum. Das Undervoltage-Problem wird es nicht loesen.

    Die später gebauten RPi's hatten dann geschaltete Spannungswandler. Entfernst Du diesen Schaltregler ist der RPi nicht mehr funktionstüchtig, denn dieser erzeugt noch weitere wichtige Spannungen. Schaltest Du eine andere Spannungsquelle einfach paralell, wird auf kurz oder lang etwas kaputt gehen.

    Ja, genau, das dachte ich mir schon. Ich kann gerade keine Quellen angeben, aber folgende Infos habe ich per Internet-Recherche rasubekommen:

    • Ein Grund warum Parallelschalten ein Problem sein kann ist die Einschaltabfolge der Komponenten. Irgendwo im Netz ist ein Artikel von einem der Raspberry-Entwickler. Er schrieb, dass der Spannungswandler-Chip extra für den PI entwickelt wurde, besonders billig ist und vier Ausgangsspannungen liefert, 1,..irgendwas-Volt, zweimal 3,3V und einmal 5V. Dabei ist der Chip nicht nur ein Spannungswandler sondern ein intelligenter Power-Management-Chip, der unter anderem die Abfolge des Ein- und Abschaltens der vier Leitungen regelt, damit nichts kaputt geht. Das ist leider schlecht für Nutzer. Denn der Chip liefert nunmal nicht genug Saft für zusätzliche Komponenten.
    • Irgendwo im Netz gibt's einen Artikel...wo jemand (ich glaube ein Waveshare-Mitarbeiter) zugibt, dass das Raspberry-Touchscreen zuviel Saft auf der 3V-Schiene zieht. Das haben sie beim Design nicht beachtet und ist jetzt aber fest eingebaut und lässt sich nicht mehr ändern.
    • Der mp2307 liefert mehr Saft als der Power-Management-Chip des Raspberrys. Zahlen bitte selbst nachgucken.
    Zitat

    Die Vorrausetzung für einen stabilen Betrieb ist ein gutes Netzteil, auch wenn Du dies als Fehlerquelle ausschließt.

    Nein, liegt immernoch nicht am Netzteil, auch wenn das überall behauptet wird. Der Power-Chip ist ganz eindeutig der Flaschenhals. Der liefert nur eine bestimmte Menge Strom. Da kann das Netzteil nichts für.

    Ich habe es mit mindestens vier verschiedenen Netzteilen versucht, zuletzt mit einem 4A-Netzteil. Ich habe es sogar mit zwei parallel angeschlossenen Netzteilen probiert. In jedem Fall habe ich 5,1V auf der 5V-Schiene gemessen - auch wenn Unterspannung gemeldet wurde. Nein, nein, nein, es liegt nicht am Netzteil! Das ist einfach Quatsch! Es muss am Wandler-Chip liegen. Deshalb wurde das Pi-Tuning-Tutorial ja geschrieben: Die RPI-interne Spannungswandlung ist nicht auf zusätzliche Verbraucher ausgelegt.

    Ich weiß gerade nicht, wie das Display angeschlossen ist. Ich vermute, das kriegt ganz normla 5V und die IC-Logic (über GPIO) arbeitet mit 3V. Damit arbeiten dann ja Display UND Digitizer. Kann schon sein, dass das einfach zuviel ist.

    Hallo Forum,

    ich habe mir die Threads zum PI-Tuning durchgelesen und wollte den Mod bei meinem PI 3B+ durchführen.

    Da stellte ich zuerst fest, dass es den KIS-3R33 gar nicht mehr gibt. Der verbessterte Nachfolger heißt mp2307 oder auch DSN-Mini-360 und liefert bis zu 3A. Anschließend musste ich feststellen, dass der Raspberry 3 ja bereits einen eigenen Power-Management-Chip hat, den MxL7704. Der spuckt gleich mehrere Spannungen auf einmal aus, nur leider zu wenig Strom.

    Wer (wie ich) das Raspberry-Touchscreen angeschlossen hat, stellt schnell fest, dass der RPI ständig an Spannungs-Unterversorgung leidet. Denn das Display wird unter anderem an die 3,3V-Leitung angeschlossen.

    In diesem Thread steht:

    Zitat

    "Under no circumstances should a power source be connected to the 3.3V pins."

    Jetzt frage ich mich, wie und ob das PI-Tuning bei den neueren Raspberrys 3 und 4 überhaupt durchgeführt werden kann. Der MxL7704 darf ja sicher nicht einfach entfernt werden. Der Versorgt RAM, CPU und andere Komponenten mit unterschiedlichen Spannungen. Das ist nicht nur schön, sondern auch ein ernstes Problem, wenn RPI + Touchscreen an einem 3D-Drucker mit Octoprint eingesetzt werden. Dann liefert der Chip nämlich zu wenig Saft.

    So bricht gerne mal nach 18 Stunden Druckzeit kurz vor Schluss der Druckvorgang ab. Und nein, ein neues Netzteil hilft hier nicht, denn die Unterversorgung findet nur auf der runtergewandelten Leitung statt, nicht auf der 5V-Leitung. Gibt es irgendwie oder irgendwo Ergänzungen zu dem alten PI-Tuning Threads für aktuelle Raspberries? Habe im Netz nichts gefunden. Mich plagt der Verdacht, dass ich den Mini-360-Buck-Converter nicht einfach parallel zum MxL7704 anschließen kann.


    [font="monospace"]> i2cset -y 1 0x2f 0x00 0x14[/font]
    [font="monospace"]Stimmt das 0x2F wirklich? Ich haette auf 0x5? getippt.[/font]


    Warum das denn? Natürlich stimmt das. Die Adresse ist Bauteilspezifisch, da kannst Du gar nichts tippen.

    Zitat

    [font="monospace"]AVR ist ein anderer Prozessor. Der Code ist also NICHT fuer den Raspberry gemacht.[/font]

    Zitat

    [font="monospace"]einfach durch den Compiler schicken und dann laufen lassen wird hoechst wahrscheinlich nicht funktionieren.[/font]

    Doch, höchstwahrscheinlich schon. Der Code ist nämlich für den Poti gemacht. Gerätespezifisch ist da sehr wahrscheinlich nur diese dämliche Bibliothek. Guck doch wenigstens mal rein, in den Code, bevor du Vermutungen äußerst.

    io.h klingt nach input/output, also irgendeine general-purpose-bibliothek, wie sie standardmäßig bei programmiersprachen verwendet wird. Die lässt sich bestimmt ersetzen, wenn die für nen bestimmten prozessor war..

    Das probier ich aus! Vielen Dank.

    Edit:

    Tja, also das funktioniert bei mir irgendwie nicht.

    Egal was ich da ausprobiere, das Ohmmeter zeigt nichts an:

    Code
    i2cset -y 1 0x2f 0x00 0x14
    i2cset -y 1 0x2f 0x00 0x14 b
    i2cset -y 1 0x2f 0x00 0x04
    i2cset -y 1 0x2f 0x00 0x40

    In dem Datenblatt ist lang und breit erklärt, wie man die Bit-Sequenz aufbaut und wie oft man welche Sequenz wiederholen muss, damit dies und das passiert. Von Bytes, Words und Block-Writes steht da schlichtweg nichts.

    der i2cset-Befehl lautet ja:

    i2cset [-f] [-y] [-m mask] [-r] i2cbus chip-address data-address [value] ... [mode]

    also z.B.:
    i2cset -y 1 0x2f 0x00 0x14 b
    i2cset [y für imm er "yes", also keine Rückfragen] [Busnummer 1 in meinem Fall] [Chip-Adresse (per i2cdetect gefunden)] [Schreib-Adresse 0x00 soll Schreiben bedeuten] [0x14 ist 20 in Dezimal und soll einfach irgendein Wert sein] [b für Byte-Mode, w wäre word]

    Tja...und es passiert halt nichts. Hab ebenfalls einfach mal versucht, die cpp-Dateien zu kompilieren:
    Wie ich mir schon dachte, findet er die Verlinkungen nicht.

    C
    gcc mcp4551.cpp
    mcp4551.cpp:1:28: fatal error: xlib/core/i2c.h: Datei oder Verzeichnis nicht gefunden
    #include <xlib/core/i2c.h>
                               ^
    compilation terminated.


    Weil "Xlib/core/i2c.h" ja (wie zuvor erwähnt) die Closed-Source-Bibliothek war, hab ich die Zeile einfach mal gelöscht. Jetzt kommt das hier:

    C
    gcc mcp4551.cpp
    In file included from mcp4551.cpp:1:0:
    ./i2cmaster/i2cmaster.h:89:20: fatal error: avr/io.h: Datei oder Verzeichnis nicht gefunden
    #include <avr/io.h>
                       ^
    compilation terminated.
    C
    gcc ./main.cpp
    ./main.cpp:1:20: fatal error: avr/io.h: Datei oder Verzeichnis nicht gefunden
    #include <avr/io.h>
                       ^
    compilation terminated.

    Die Opensource i2c-Bibliothek benutzt also irgendwas was bei mir nicht da ist. IRgendeine Ahnung was das sein kann? avr/io.h ?


    > [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]ich würde gerne ein digitales I2C-Potentiometer an's Laufen bringen und verfüge[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]> leider weder über C++-, noch Python-Kenntnisse. Bash-Skripte kriege ich meist[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]> noch irgendwie hin.[/font]
    Mit dieser Ausgangslage wuerde ich ein bash-Script mit i2cset schreiben. Um
    ein Poti zu steuern muesste das auch schnell genug sein.

    Das sieht wirklich interessant aus. Vielen Dank schonmal. Muss ich mir Gedanken machen, um Sachen wie Timing, Busfrequenz, Start- und Stopbits etc? Ich frage, weil ich irgendwo gelesen habe, dass man sich mit i2cset auch Chips zerschießen kann. Es klingt also nach einem Low-Level-Tool, wie dd.

    Hallo Forum,

    ich würde gerne ein digitales I2C-Potentiometer an's Laufen bringen und verfüge leider weder über C++-, noch Python-Kenntnisse. Bash-Skripte kriege ich meist noch irgendwie hin. Doch das Umschreiben vorhandener Codebeispiele bereitet mir arge Probleme.

    Konkret versuche ich es gerade mit C++ nach diesem Beispiel (http://blog.stibrany.com/?p=9). Der Typ betreibt den MCP4561. Ich möchte hingegen den MCP4551 ansteuern. Er besitzt, im Unterschied zum MCP4561, keinen Speicher.
    Leider hat der Blogger eine Closed-Source I2C-library verwendet und empfiehlt zum Nachmachen diese hier. Dafür muss sein Programm lediglich "ein bißchen" umgeschrieben werden.

    OK, ich hab das jetzt versucht, doch weiß ich weder, ob meine Änderungen alle richtig sind, noch wie das Ding überhaupt gestartet wird. Da wird ja kreuz und quer verlinkt und "included", sodass ich nichtmal weiß, wo überhaupt das Testprogramm hinkäme. Der soll einfach nur den Poti rauf- und runterdrehen - und das in einer Endlosschleife. Feinheiten kann ich mir dann ja überlegen.

    Meine bisherigen Codeschnipsel sehen so aus:

    mcp4551.h:

    mcp4551.cpp (erste Zeile aus dem Original muss bestimmt weg, zweite Zeile ist von mir und soll auf die alternative I2C-Bibliothek verweisen):


    main.cpp:


    Die I2C-Bibliothek habe ich nicht verändert, deshalb nur die Header-Datei, wo man die Funktionsnamen sieht (die wichen von den aufgerufenen Funktionen im Original-Programm ab, weil ja eine kommerzielle Bibliothek verwendet wurde). Den Rest der Opnsource-Bibliothek hänge ich als Zip-Datei an, falls jemand daran interessiert ist:

    Da ich im Detail nur Bahnhof verstehe, hoffe ich mir kann jemand beim Zusammenfügen der Teile helfen. Ich will einfach nur diesem Poti Befehle senden können.

    Hi Brötchenesser,

    habe gerade ein ähnliches Relais-Problem und in einem anderen Forum dazu Hilfe erhalten.

    Wichtig ist der VDE-Stempel auf der Relaiskarte. Die üblichen Relaiskarten mit den blauen Klötzchen haben den nämlich nicht. Das sind die Dinger, die es überall auf Ebay und Amazon gibt und aus China kommen (z.B. dieses unsichere Relais-Modul). Die fluten damit den Markt. Da steht zwar 220V drauf, tatsächlich drohen aber Brand- und Lebensgefahr. Das liegt daran, dass die innen nicht richtig isoliert sind und hohe Spannungen, etwa beim Einschalten, in die 5V-Elektronik "überspringen".

    Ein ungefährliches Relais, so wurde mir gesagt, hat zwischen den 5V-Pins und den 220V-Pins mindestens 6mm Abstand. Außerdem hält es Spannungsspitzen von 4000V aus und trägt das VDE-Logo (ein Dreieck mit den Buchstaben VDE).

    Ein solches Relais wäre dieses hier: Fujitsu Print Relais
    Eine sicherere Version mit Schraubklemmen ist hier.

    Genau wie ich suchst Du aber eine Relaiskarte mit einem sicheren Relais und fertiger Schaltung auf der 5V-Seite. Leider ist mir keine solche bekannt, sodass ich nur zwei Möglichkeiten sehe:

    1.) Die China-Relaiskarte holen, die Klötzchen ausbauen und die Elektronik mit der 5V-Seite des sicheren Relais verbinden.

    2.) Die Schaltung selbst bauen. Ist so schwer glaube ich nicht. Es gibt haufenweise Anleitungen dazu. Die Schaltung ist nötig, weil mögliche sensible Elektronik (etwa Raspberry) nach dem Abschalten vom Relais beschädigt werden: Die Spule im Relais "entleert" sich nach dem Abschalten wie ein abgetrennter Wasserschlauch "rückwärts" und unter hoher Spannung. Die genannte Schaltung fängt das ab und der Raspberry ist geschützt. Außerdem entlastet eine zusätzliche Stromversorgung den Raspberry, der diesbezüglich ebenfalls sehr empfindlich ist.

    Such nach "Freilaufdiode" und Du kriegst Relaisschaltungen ohne Ende. "Treiberschaltung Relais" sind die Zauberworte für eine optimierte Stromversorgung.

    Achja, eines habe ich noch vergessen: Es ist wohl nicht egal welches Kabel beim Wechselstrom durch einen Schalter (oder hier Relais) geführt wird. Eines der beiden Kabel hat nämlich gegenüber Erde ein Potential. Ich glaube es war das blaue (Nulleiter). Deshalb muss immer die Phase (braunes Kabel) in einen Schalter. Ich hoffe, ich habe das jetzt nicht verwechselt.

    Es wird wohl oft falsch gemacht und kann dazu führen, dass zum Beispiel beim Glühbirnenwechsel Leute tot von der Leiter fallen, obwohl der Lichtschalter auf aus gestellt war. Die haben dann Fassung und Lampengehäuse gleichzeitig berührt...und tja, da war dann Saft drauf. Ein Grund mehr, wirklich immer die Sicherung zu ziehen. Man weiß ja nie wer die Leitungen verlegt hat.

    Vielleicht kann jemand anders nochmal was dazu schreiben. Bin selbst nur Laie.

    Ah, vielen Dank. Dann lohnt sich das wohl nicht. Wenn ich erst einen Adapter kaufen oder bauen muss, kann ich direkt ein fertiges USB-Ding holen, das dann an jedem Computer funktioniert.

    Hab dank Eurer Antworten noch diese Links zum Thema gefunden:

    https://kompendium.infotip.de/rs-232-die-ser…nittstelle.html

    und (etwas allgemeiner)

    https://glossar.hs-augsburg.de/RS-232-Schnittstelle

    im ersten der beiden Links wird das Problem auch nochmal genau angesprochen:

    Zitat

    Da die RS-232-Signalpegel höher sind als die logischen Pegel von Logikbausteinen (z.B. TTL 5V) können RS-232-Daten nicht direkt verarbeitet werden. Hier müssen zur Anpassung spezielle Pegelwandlerbausteine (siehe Abb. 14) zwischengeschaltet werden, die auch gleichzeitig die Logikbausteine vor Überspannung schützen.

    In Abb. 14 heißt es dann:

    Zitat

    Zur Pegelanpassung wird ein Programmieradapter ("Jig") benötigt.

    Tja...schade.

    Ganz elegant wäre eine Steuerung über einen regelbaren Widerstand, so dass der Lüfter umso schneller läuft, je heißer die CPU wird. Hab mir so ein Ding schon besorgt und weiß aber noch nicht genau wie es mit Python anzusteuern ist. Falls es Dich interessiert: So ein regelbarer Poti wäre zum Beispiel der MCP4551. Er spricht I2C und hat 50 KOhm. Wichtig ist aber die Verwendung eines Transistors, weil der Chip nur extrem kleine Ströme verträgt. Auch ein kleiner Kondensator (100nF) zwischen Gnd und VCC direkt am Chip ist nötig, um Störungen rauszufiltern.

    In der Theorie rechnet das Skript dann Aktuelle-Temp. minus Soll-Temp. und multipliziert mit einem Faktor, der noch rauszufinden wäre. Das Ergebnis ist der Wert, der an den Poti gesendet wird. Beispiel: (60°C-36°C )* x = 24*x

    Was x jetzt für eine Zahl ist hängt vom Spannungsbereich ab, in dem sicher der Lüfter bewegt, vom Transistor, der dem Lüfter vorgeschaltet ist und natürlich von der Anzahl der Schritte, die der regelbare Poti anbietet. Hier muss experimentiert werden. Auch die Außentemperatur spielt eine Rolle. Im Sommer muss x einen anderen Wert haben als im Winter, weil die Kühlung im Winter effektiver ist.

    Die Formel komm jedenfalls ganz normal in eine Schleife und wird vielleicht alle 10 Sekunden neu berechnet, um den Lüfter nachzustellen. Das ganze Programm (es wird ziemlich kurz werden) hat dann permanent im Hintergrund zu laufen.

    Hallo,
    im Internet sind haufenweise Tutorials für eine Seriell-Verbindung des Raspberrys. Leider brauchen die alle einen USB-Serial-Adapter.

    Ich habe noch einen PC mit einer guten alten seriellen Schnittstelle, wie sie für die Verbindung mit Mäusen und Modems üblich war. Ist damit nicht auch eine Seriell-Verbindung zum Raspberry möglich? Konnte dazu nichts im Netz finden.


    Was soll mir diese Zeichnung sagen? Das ich von einem Breadboard aus mehrere Endgeräte mit Strom versorgen kann?

    Ja.

    Zitat

    Mit dieser Schaltung überbrückst Du aber die Polyfuse

    Ja, das stimmt. Solange keine starken Verbraucher an den GPIOs angeschlossen werden, sollte das aber unbedenklich sein. Die GPIOs sollten als reine Datenleitungen betrachtet werden. Verbraucher benötigen also immer einen Transistor / MOSFET / Optokoppler o.Ä.. Es würde ja auch Niemand auf die Idee kommen, Motoren oder Lampen an eine serielle Schnittstelle oder einen VGA-Anschluss anzuschließen. Gleiches gilt hier.

    Zitat

    Die 5V Versorgung wird niederohmiger sein als die Steckkontakte vom Breadboard, dort noch mal eine Leitung zum USB hat keinen Sinn.

    Mehr Sinn hätte ein 1000µF/6,3V ElKo an der USB A Buchse um Spannungseinbrüche bim Stecken von USB A Stecker zu vermeiden.

    Damit spart man sich den aktiven USB-Hub. Die Skizze ersetzt vier Netzteile durch eines, ohne den Raspberry zu gefährden. Wegen der Maschenregel verteilen sich die Ströme "automatisch" an die verschiedenen Bauteile. Wenn also z.B. zwei dicke Festplatten an den USB kommen, kriegt das RPI-Board davon überhaupt nichts mit. Überlastung der Leiterbahnen ist nicht zu fürchten.

    Die Schiene des Breadboard fungiert also als Knoten, von dem aus sich die Ströme in benötigter Stärke verteilen (und auch wieder zusammenlaufen).

    Edit:
    Die Kontakte des Breadboards haben einen viel größeren Querschnitt als die RPI-Leiterbahnen. Daher ist der Widerstand im Breadboard natürlich geringer (es steht "mehr Metall" für den Elektronenfluss zur Verfügung). Anders ausgedrückt: Würde man es übertreiben und extra viel Strom jeweils durch Raspberry und Breadboard jagen, würde der Raspberry im Vergleich zuerst glühen, weil der Widerstand durch die feinen Leiterbahnen größer ist.