Forum: Mikrocontroller und Digitale Elektronik Problem mit WS2812b 4-Layer Board


von Daniel S. (sany)


Angehängte Dateien:

Lesenswert?

Moin Zusammen,

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...

Jemand noch eine Idee oder findet einen Fehler?

Bauteil Pegelwandler: 
https://www.mouser.de/ProductDetail/Nexperia/74HCT1G125GW125?qs=P62ublwmbi9fxWhuHktl8w%3D%3D&srsltid=AfmBOop0y2r7NFjwOliVzg8zkcItkYg2rsOeyulcRA9xVQgej5qE941K

Edit1 VDD ist im Übrigen +5V und kommt von einem Labornetzteil.
Edit2 Sketch ist nun als Datei im Anhang.

Grüße,
Daniel

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

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?

von Daniel S. (sany)


Lesenswert?

Moin Harald,

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.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

> Wenn ich z.B. mit dem Multimeter am Ausgang des Pegelwandels (Ausgang <-> 
Dateneingang LED) Messe, flackern die LEDs wie wild

Was unmöglich ist, wenn der Pegelwandler tut  was er soll: Saubere 5V 
Signalpegel ausgeben.

Prüfe seine Stromversorgung und die Signale an seinen Eingängen (auch 
/OE) mit einem Oszilloskop. Ein billiges DSO150 würde dazu schon 
genügen.


Ein Logic Analyzer wäre praktisch, nachdem das Flackern behoben ist.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Daniel S. schrieb:
> Die Anzahl der LEDs kann ich nicht so einfach Reduzieren, SMD Bauteile.

Leiterbahnen kann man durchkratzen.

Gut, wenn Dein aus irgendeinem Grund vierlagiges Layout die wichtigen 
Leiterbahnen auf die Innenlayer hat, dann natürlich eher nicht.

Wenn Du mit Dranhalten Deines Multimeters das Verhalten der Schaltung 
änderst, dann -- steht das Multimeter möglicherweise im 
Strommessbereich?

von Stephan (holziholz)


Lesenswert?

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.

: Bearbeitet durch User
Beitrag #7793279 wurde vom Autor gelöscht.
von Daniel S. (sany)


Lesenswert?

Harald K. schrieb:
>> 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...

von Stephan (holziholz)


Lesenswert?

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

: Bearbeitet durch User
von Stephan (holziholz)


Lesenswert?

Daniel S. schrieb:
> 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.

von Rainer W. (rawi)


Lesenswert?

Daniel S. schrieb:
> 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.

Stephan schrieb:
> Inzwischen kommen fast alle WS2812 auch mit 3V3 Pegel aus

ab WS2812B V5

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Daniel S. schrieb:
> der Weg vom Ausgang Pegelwandler zur ersten LED ist soweit auch in
> Ordnung.
Hast du direkt am Eingangspin der LED gemessen? Passt das Timing?

> im Schaltplan ist mir auch kein Fehler aufgefallen.
Mir fehlen da einige Blockkondensatoren an den LEDs. Im Datenblatt 
tauchen die als C104 an jeder LED auf.

Etwas verwirrend ist auch, dass VDD und +5V eigentlich das selbe sind.

> ich habe auch schon die Platine auf Fehler überprüft, aber keine gefunden
Lass doch mal sehen.

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
Noch kein Account? Hier anmelden.