Inverter reagiert nicht bei schnellerem Wechselsignal

OP #4765102
Lesenswert?

Hallo,

Für meinen Schaltungsentwurf liegt dieser Thread zu Grunde: 
Beitrag "Levelconverter von 2.5-3 auf 5V mit Mosfet-oder Bipolartransistor?"

Ich habe den SN74AHCT1G14 genommen.
Diesen habe ich auf ne kleine Lochrasterplatine aufgelötet und auf 
meinem Steckbrett in den Rest der Schaltung integriert.
Funktion des Inverters mittels LED verifiziert.

Wenn ich jetzt am Eingang die Datenleitung für meine WS2812B-LED 
anschließe und am Ausgang die LED, dann passiert: Nichts :(

Die zugehörige Codebibliothek habe ich aus Tims Projekt: 
https://github.com/cpldcpu/light_ws2812
Dort habe ich in dieser Datei 
(https://github.com/cpldcpu/light_ws2812/blob/master/light_ws2812_AVR/Light_WS2812/light_ws2812.c#L110) 
die Masken dahingehend geändert:
1
masklo |= maskhi&ws2812_PORTREG; 
2
maskhi = ~ws2812_PORTREG;
(Interessanterweise funktioniert die LED mit beiden Varianten, also ohne 
Inverter.)

Die Frage ist, warum dieses Signal anscheinend nicht korrekt durch den 
Inverter kommt, obwohl dessen Timing im unteren Nanosekundenbereich 
liegt, also weit schneller schalten kann, als die Daten gesendet werden.

Habt ihr irgendwelche Tipps für mich?
Leider hat mir Tim nur gesagt, dass ich "die Masken verändern" muss. 
Evtl. liegt da schon ein Fehler.
Beitrag "Re: Lightweight WS2811/WS2812 Library"

Danke im Voraus.
Hannes
Gast #4765128
Lesenswert?

Ich habe da mal gleich ALLES ausgereizt, was nur irgendwie
geht (aber nicht geht, wenn irgendein Teil nicht geht):
Und nun geht es nicht gleich, wie ich es will ...

Hast du dir mal Gedanken gemacht, dich an das Problem und
damit auch seiner Lösung HERANZUTASTEN?

Damit ist man vor 47 Jahren auf den Mond gekommen.

Naja, Smartphone-Abhängige sind da etwas im Nachteil:
Die App für WAS MACHE ICH FALSCH ist noch in der omega-Phase...
#4765138
Lesenswert?

Johannes H. schrieb:
> Interessanterweise funktioniert die LED mit beiden Varianten, also ohne
> Inverter.)

ohne jetzt den referenzierten thread lesen zu wollen, nehme ich mal an, 
dass du hi und low einfach vertauschen musst (in software).
ausserdem wäre es irgendwie konsequent dass es so heissen muss:

maskhi = ws2812_PORTREG;
masklo = ~ws2812_PORTREG;

oder eben umgekehrt.
Moderator (Firma: Titel) Persönliche Seite #4765190
Lesenswert?

OT:
Jakob schrieb:
> Damit ist man vor 47 Jahren auf den Mond gekommen.
So, wie die heute (trotz vervieltausendfachter Rechenleistung) 
herumhampeln, um auf den Mars zu kommen (und es nur manchmal schaffen), 
bin ich mir da nicht mehr so sicher...

Johannes H. schrieb:
> Diesen habe ich auf ne kleine Lochrasterplatine aufgelötet
Mit Blockkondensator?

> Die Frage ist, warum dieses Signal anscheinend nicht korrekt durch den
> Inverter kommt
Vermutung oder Messung?
Falls Ersteres: du solltest dir ein Oszilloskop mit mindestens 2 Kanälen 
beschaffen, wenn du an seriellen Interfaces arbeitest...
Gast #4765194
Lesenswert?

Shiftit schrieb:
> Ich habe das wie im Anhang ersichtlich gelöst.
> Easy going, bis 100 kHz.

Was für ein Lötaufwand.
Ein SN74AHCT1G14 ist prinzipiell doch in Ordnung. Bei Raumtemperatur 
schaltet der spätestens beim Überschreiten von 2.0V am Eingang den 
Ausgang auf Low und bei Unterschreiten von 1.5 ... 1.6V, je nach 
Versorgungsspannung, wieder auf High.
Gast #4765369
Lesenswert?

Das Bizarrometer schlägt hart nach rechts aus: 2 ältere, internetaffine 
Mitbürger halten die nachwachsende Generation für unfähig, weil Sie in 
ihrer mikrocontroller.net Filterblase nur die Unfähigen zu Gesicht 
bekommen.
OP #4765859
Lesenswert?

Hallo

@shiftit
Diese Lösung wurde im von mir angegebenen Thread diskutiert und 
verworfen zu Gunsten des Inverter-ICs.

Ich konnte die Stelle identifizieren. Nicht maskhi und masklo an sich 
müss en vertauscht werden, sondern deren Reihenfolge ganz unten in der 
Datei in der Zeile:
1
 : "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren