Präzisions Monoflop zur Erzeugung von Pulsen im Bereich von 200-800ns

OP #3200073
Lesenswert?

Hallo zusammen,

ich bin momentan auf der Suche nach einer Schaltung, mit der es möglich 
ist LED-Strips mit dem WS2811 Chip drauf per SPI anzusteuern.
Ich habe mir auch schon eine nette Schaltung ausgedacht (Anhang) nur 
leider basiert sie auf 2 RC-Gliedern und ich musste nun feststellen, 
dass sie SEHR abhängig von der Versorgungsspannung ist. (Hätte ich auch 
früher merken können). Die Pulsdauer der beiden Monoflops steigt bei 
sinkender Versorgungsspannung...

Jetzt suche ich halt wieder und im Moment bin ich so verfahren in obiger 
Sackgasse, dass ich keine neuen sinnvollen Ideen habe. Vielleicht kann 
mir gerade ja jemand helfen.

Genaue Anforderung des WS2811 Protokolls sind:
800kBaud, eine Datenleitung, kein Takt
eine "1" wird durch ein 0.6µs langen 5 Volt gefolgt von 0.65µs 0 Volt 
dargestellt, eine "0" wird durch einen 0.25µs 5 Volt-Puls gefolgt von 
1µs 0 Volt dargestellt...
Im Datenblatt Seite 3 und 4
http://www.adafruit.com/datasheets/WS2811.pdf

Ich bin gerade Dankbar für alles was mir neue Kreativität ins Hirn 
bringt
Vielen Dank
Gruß Leo
Angehängte Dateien:
OP #3200092
Lesenswert?

Sorry MaWin, im Eifer des Gefechts ist mir diese Information irgendwie 
verloren gegangen. Das Gatter am Ausgang ist ein 74HC1G00.

Aber nach meiner LT-Spice-Simulation ändert sich die Pulsdauer mit der 
Versorgungsspannung.
Einen echten Baustein habe ich leider nicht vorrätig. Ist bei der 
Simulation etwa der Fehler?

@A. K. (prx)
Danke für den Tip. Aber genau das möchte ich nicht tun. Ich möchte schon 
die Bytes 1:1 übertragen können.
#3200117
Lesenswert?

Wenn du bei einem Byte-Takt von 100kHz nebenbei noch reichlich andere 
Dinge erledigen willst, dann wär DMA schon ganz nützlich.

Braucht das ein festes Zeitraster von ebd. 800kHz, oder stört es nicht, 
wenn zwischen den Bytes variable Pausen <<50µs liegen? Das SPI der AVRs 
ist nicht grad sonderlich gut gepuffert.
OP #3200167
Lesenswert?

Markus Weber schrieb:
> Wie wär es mit einem zweiten kleinen AVR, der diese Aufgaben erledigt?
>
> Kostet dann natürlich ein bisschen Zeit, die Software dafür zu
> schreiben...

Ja ich glaube fast, dass das die eine sinnvolle Lösung ist. Denn bis ich 
bei den 74HC123 die richtign RC-Glieder ermittelt habe (Simulation und 
Datenblatt decken sich hier zu 0%) und bis das alles sinnvoll läuft, da 
ist die Software für den 2. AVR dann schon 100mal schneller geschrieben 
und bei Fehlern kann man auch leicht ein Update machen...
#3200186
Lesenswert?

Leo B. schrieb:

> ... nach meiner LT-Spice-Simulation ändert sich die Pulsdauer mit der
> Versorgungsspannung.

Und? Erwartest du nennenswerte Änderungen der Versorgungsspannung?

> Einen echten Baustein habe ich leider nicht vorrätig. Ist bei der
> Simulation etwa der Fehler?

Simulation ist immer fragwürdig. Und natürlich hängt das Verhalten 
auch stark vom IC bzw. der Logikfamilie ab. So hat bspw. 74HC 
Schaltschwellen, die ca. proportional zur Versorgungsspannung sind, was 
eine relativ geringe Abhängigkeit der Impulslänge von der 
Versorgungsspannung ergibt. Standard 74er oder 74HCT sind da 
problematischer.

Ganz konkret aus dem Datenblatt des 74HC123 von ST; mit R=10K, C=100pF 
bekommt man 1.4µs @ 2V, 1.2µs @ 4.5V und 1.1µs @ 6V (alles typische 
Werte). Das ist m.M.n. ganz ordentlich.

Viel gravierender dürfte sein, daß deine 250ns schon recht nahe an den 
minimalen Werten für die Pulslänge liegen (für 74xx123). Bzw. du eine 
große Abhängigkeit von parasitären Kapazitäten bekommst. Insofern liegt 
eine volldigitale Erzeugung der Pattern nahe. SPI ist natürlich am 
einfachsten.


XL
Gast #3203721
Lesenswert?

Für den Fall das die Zeiten zu sehr von der Versorgungsspannung abhängen 
gibt es Spannungsregler, und entsprechende ICs, die auch mit 2 oder 3 V 
laufen. Die Lösung per µC hat einfach das Problem, dass die Abtastrate 
eher zu klein ist, und man dadurch Fehler in der Größenordnung 50-200 ns 
bekommt. Das geht analoge deutlich präziser bei so kurzen Zeiten.

Wenn man es auf die Spitze Treiben will, könnte man 2 analoge Monoflops 
haben, eines stellt die Funktion dar, und das andere wird angeglichen.
#3203749
Lesenswert?

Irgendwie verstehe ich die Problemstellung nicht. Das Protokoll ist 
ziemlich schnell - gerade einmal 30µs pro LED. Damit kann man 50 LEDs 
100x in der Sekunde updaten und hat trotzdem noch 85% der Rechenzeit 
frei. In diesen 85% kann die Berechnung erfolgen. Mit SPI wird kaum mehr 
rechenzeit übrig bleiben.
(Firma: TravelRec.) Persönliche Seite #3203773
Lesenswert?

A. K. schrieb:
> Das SPI der AVRs
> ist nicht grad sonderlich gut gepuffert.

Der Mega88 beherrscht das Master-SPI im UART-Modus. Damit kann man 
mittels UDR-Empty-Interrupt immer das nächste Byte aus einem Puffer 
holen. Vollautomatisch sozusagen. Der Mega88 kann sicher mit 25Mhz 
getaktet werden. Damit ist er dann auch fix genug, um noch andere Dinge 
zu erledigen. Zeitkritische Sachen in Assembler machen und globale 
Variablen nutzen. Das geht am schnellsten.

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