Was könnte eine unzuverlässige Ausgabe für 3 verschiedene IS31FL3731-Chips verursachen?

Ich habe ein Board, das den Adafruit-Breakout des IS31FL3731 verwendet, um 81 beleuchtete Schalter zu steuern. Ich habe einen Code, der auf einem Arduino läuft, der alle Lichter einschalten sollte, aber nur etwa die Hälfte der Lichter einschalten - eine scheinbar zufällige Hälfte.

Ich habe drei IS31FL3731-Chips und sie schalten jeweils unterschiedliche Lichter ein, also denke ich, dass die Chips oder wie ich sie verwende, das Problem sind.

Es gibt so viele verschiedene Stellen, an denen etwas schief gehen könnte (Platinenlayout, Löten, Code, fehlerhafte Chips, zu wenig Verstärker usw.), aber ich hoffe, dass jemand mit einem solchen Problem vertraut ist. Wenn ja, könnte mir das eine Menge Fehlersuche ersparen.

Es ist auch erwähnenswert, dass, wenn die Platine die Schieberegister an Ort und Stelle hat, es eine Art Kurzschluss zu geben scheint - der Strom stieg auf etwa 1,3 A, bevor das steuernde Arduino abschaltete.

Mein Teil des Codes und Bilder unten.

void loop() {
    int numLEDS = 81;
    for(int i = 0; i< numLEDS; i++){
        LED_PWM(i, 255);
        Serial.write(i);
        delay(20);
    }
}

Fehler 1

Beleuchtung defekt 2

Der Fehler in meinem Board

Schema

Wenn also ein Kurzschluss vorliegt, warum sollte dies ein Softwareproblem sein?
Ich bezweifle, dass die Leute in der Lage sein werden, die Funktionalität des Boards aus den Fotos (oder sogar Tausenden von Fotos) abzuleiten, die einen Schaltplan liefern. Wenn ich wollte, dass Leute ein Projekt für mich debuggen, würde ich auch Wellenformen bereitstellen.
+1, Schaltplan ist erforderlich. Außerdem ist Ihr Chip ein Matrix-LED-Treiber, also prüfen Sie, ob die LEDs, die nicht funktionieren, zur selben Spalte oder Zeile gehören.
Die Fotos dienen nur als Referenz. Es kann kein Kurzschluss sein, aber vielleicht wird zu viel Strom gezogen. Ich suche niemanden, der die Fehlersuche für mich übernimmt; Ich dachte nur, das könnte ein Symptom für ein offensichtliches Problem sein. Ich kann keinen Zusammenhang zwischen den Spalten der Treiber erkennen und welche Schalter nicht leuchten. Ich habe einen Schaltplan hinzugefügt.
Jeder Treiber hat eine Funktion, überprüfen Sie den Knoten auf die erwartete Funktion

Antworten (1)

Ich denke es ist jetzt gelöst. Die Chips haben einige interne Register, die steuern, welche LEDs eingeschaltet sein sollen, und ich hatte sie nicht gelöscht. Es sieht so aus, als wären sie nicht flüchtig. Tut mir leid, alle zu stören.Arbeiten

Ignorieren Sie die 3, die ich nicht richtig gelötet habe.