Ich habe ein Problem, ich habe mir aus dem Schaltplan zu den Neotrellies M4, ein eigenes Board gebaut, aber mit identischer Hardware und nahezu identischem Schaltplan, ich habe lediglich einige unnötige Dinge entfernt die ich nicht benötige, da das Board eigentlich nur als LED Eingabetastatur dienen soll, die per I2C die Tastendrücke meldet.
Ich habe das Board auch als 4-Layer machen lassen, ich habe auch schon die Platine auf Fehler überprüft, aber keine gefunden, im Schaltplan ist mir auch kein Fehler aufgefallen.
Ich habe den ATSAMD51G19A mit einem Sketch (Der auf meinem gekauften Neotrellies M4 Board läuft) programmiert, aber die LEDs leuchten einfach nicht. Sie werden korrekt mit +4.99V versorgt.
Als LEDs kommen "WS2812B-Mini-V3" wie beim Original board zum Einsatz.
Als Pegelwandler zwischen LEDs und Microchip kommt ein 74HCT1G125GW zum Einsatz, der auch schon gegen einen neuen getauscht wurde. Ohne Erfolg.
Ich habe schon mit meinem Logicanalyzer geprüft ob PA27 auch Daten an den 74HCT sendet und ja, er sendet auch Daten an den Pegelwandler, der Weg vom Ausgang Pegelwandler zur ersten LED ist soweit auch in Ordnung.
Ich stecke hier echt fest und habe keine Idee mehr...
Du beschreibst Deinen Aufbau, aber nicht, was das Problem ist.
(Deinen Quelltext hättest Du besser als Anhang statt in Deinen Beitrag packen sollen, aber das ist sicher nicht das Problem, dessentwegen Du um Hilfe fragst)
Was passiert, bzw. was passiert nicht?
Hast Du Dir mit dem Oszilloskop auch die Datenleitung zwischen der ersten und zweiten LED angesehen?
Hast Du mal die Anzahl der gleichzeitig angeschlossenen LEDs reduziert?
Habe mal den Quelltext in eine Datei gepackt, dann ist der Beitrag kleiner.
Es passiert einfach nichts, die LEDs gehen nicht an. Der Sketch läuft.
Wenn ich z.B. mit dem Multimeter am Ausgang des Pegelwandels (Ausgang <-> Dateneingang LED) Messe, flackern die LEDs wie wild und gehen bis zur letzten LED an, leuchten aber wahllos.
Habe hier leider kein Oszi zur Verfügung, lediglich ein Logicanalyzer.
Starte ich den Sketch neu, sollten die eingeschalteten LEDs ausgehen, tun Sie aber auch nicht.
Die Anzahl der LEDs kann ich nicht so einfach Reduzieren, SMD Bauteile. Habe aber mal nach der 3. LED eine mit der Heisluft entfernt, hat leider nichts gebracht.
Da deine LEDs ja scheinbar flackern, wenn du mit einem hochohmigen Multimeter am Ausgang vom Pegelwandler misst, floated da etwas rum.
Laut Datenblatt vom Pegelwandler ist der Ausgang Hochohmig, wenn der OE Pin high ist. Im Schaltplan wird er korrekt mit GND verbunden. Ich sehe aber kein Layout und habe schon Einhörner kotzen sehen. Also prüfen, ob der OE Pin wirklich auf Masse ist.
Dann noch sehr Auffällig. Im Code ist Pin 10 als Ausgabe definiert. Laut Schaltplan sollte es PA27 (Pin 39) sein. Erstaunlicher Weise ist das so aber auch in den Daten von Adafruit drin. Schaltplan und Source Code passen da scheinbar nicht zusammen. Ist das eine Eigenheit vom SAMD? Ich kenne den Chip nicht, kommt mir aber komisch vor. Probier doch mal, was passiert, wenn du den Pin entsprechend änderst.
Anonsten hast du mal Daten und Timings mit deinem Logicanalysier kontrolliert?
Was ich gerade noch gesehen habe. Scheinbar kann man in Arduino bei den Board Einstellungen den Takt vom SAMD festlegen. Da kannst du auch schauen, ob der richtige Wert eingestellt ist, sonst passt das Timing für die LEDs nicht.
Daniel S. schrieb:
Die Anzahl der LEDs kann ich nicht so einfach Reduzieren, SMD Bauteile.
Leiterbahnen kann man durchkratzen.
Ja, nur bei 4-Layer uncool...
Stephan schrieb:
Da deine LEDs ja scheinbar flackern, wenn du mit einem hochohmigen
Multimeter am Ausgang vom Pegelwandler misst, floated da etwas rum.
Laut Datenblatt vom Pegelwandler ist der Ausgang Hochohmig, wenn der OE
Pin high ist. Im Schaltplan wird er korrekt mit GND verbunden. Ich sehe
aber kein Layout und habe schon Einhörner kotzen sehen. Also prüfen, ob
der OE Pin wirklich auf Masse ist.
Check, OE liegt definitiv auf Masse, hatte das auch schon im Verdacht.
Dann noch sehr Auffällig. Im Code ist Pin 10 als Ausgabe definiert. Laut
Schaltplan sollte es PA27 (Pin 39) sein. Erstaunlicher Weise ist das so
aber auch in den Daten von Adafruit drin. Schaltplan und Source Code
passen da scheinbar nicht zusammen. Ist das eine Eigenheit vom SAMD? Ich
kenne den Chip nicht, kommt mir aber komisch vor. Probier doch mal, was
passiert, wenn du den Pin entsprechend änderst.
Ist mir auch aufgefallen, wenn ich PIN auf 27 / GPIO27 ändere, kommt am PIN10 / PA27 nichts mehr raus.
Anonsten hast du mal Daten und Timings mit deinem Logicanalysier
kontrolliert?
Ja, ich habe einen WS2812B Analyzer, der sagt mir aber Invalid Data...
Ich werde mal ein Screenshot davon machen.
Was ich gerade noch gesehen habe. Scheinbar kann man in Arduino bei den
Board Einstellungen den Takt vom SAMD festlegen. Da kannst du auch
schauen, ob der richtige Wert eingestellt ist, sonst passt das Timing
für die LEDs nicht.
Habe mal eben, noch den SAMD ausgelötet, komplett.
Habe mir mal Spring-Wires dran gelötet und das ganze mit einem ESP32 versucht, also +5V und GND vom ESP32 und GPIO5 auf Eingang vom Pegelwandler mit Adafruit Script, die WS2818B LEDs direkt mit +5V ans Netzteil auch nichts...
Probier mal WLED auf dem ESP. Das läuft sicher. Wenn dann immer noch nichts kommt. Leiterbahnen durchklingeln. Kurzschluss irgendwo hin? Und poste mal das Layout mit den vier Lagen
Ja, ich habe einen WS2812B Analyzer, der sagt mir aber Invalid Data...
Ich werde mal ein Screenshot davon machen.
An welcher Stelle sagt der Analyzer das, vor oder nach dem Level Shifter?
Du kannst den Levelshifter auch überbrücken. Inzwischen kommen fast alle WS2812 auch mit 3V3 Pegel aus, besonders wenn die Wege bis zur ersten LED kurz sind. Danach ist egal, weil die erste LED sowieso einen Shift auf 5V macht.
Ja, ich habe einen WS2812B Analyzer, der sagt mir aber Invalid Data...
Ich werde mal ein Screenshot davon machen.
Es macht wenig Sinn, den Analyzer anzuschmeißen, wenn gar nicht klar ist, ob halbwegs sinnvolle Pegel und Timing kommt. Erstmal würde ich mit dem Oszi gucken.
Ändere dein Testprogramm, so dass nur wenige LEDs mit Daten gefüttert werden und dann lade auch die Rohdaten vom Logikanalyzer (Typ?) hoch. In einem Screenshot lässt sich so schlecht zoomen und messen.