Forum: Mikrocontroller und Digitale Elektronik STM3F4 Bitstream erzeugen


von Martin1234 (Gast)


Lesenswert?

Hallo Leute

Ich würd gern eine bitstream erzeugen mit Daten die ich im Speicher 
hinterlege. Eine Datenrate von 10kHz erreichen soll erreicht werden.

Meine Idee bisher ist:

Eine Timer erzeugen der all 0.1 ms einen Interrupt erzeugt.
In der Interruptroutine wollte ich einen Vektor auf die Daten
hochzählen und die bits einzeln maskieren und an die GPIO ausgeben.

Ist wahrscheinlich eine Lösung bei der sich vielen hier die Nackenhaare 
aufstellen.

Wie würdet ihr so was Lösen?

Grüße Martin

von majormoritz (Gast)


Lesenswert?

Wenns nicht unbedingt genau so sein muss die UART verwenden - ist auch 
nen bitstream.  Vllt. Kann man auch startbit und stoppbit irgendwie 
ausschalten. Sonst nach softwarenuart suchen und Start und Stoppbit 
einfach weglassen.

Moritz

von 6A66 (Gast)


Lesenswert?

Martin1234 schrieb:
> Eine Timer erzeugen der all 0.1 ms einen Interrupt erzeugt.
> In der Interruptroutine wollte ich einen Vektor auf die Daten
> hochzählen und die bits einzeln maskieren und an die GPIO ausgeben.

Hallo Martin,

das geht auch mir der DMA ganz gut.
Brauchst eine Timer der zyklich abläuft, den DMA anstößt und der kopiert 
das bit ins Portregister. Geeineten Port vorausgesetzt (da kannst Du ja 
nur 8 bit reinpacken).
Geht dann völlig in HW ohne SW.

rgds

von chris (Gast)


Lesenswert?

spi, wenn frei.

von Martin1234 (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die schnelle Antwort,

Ich hab mir mal die DMA sache näher angeschaut und find das ganz 
ansrechend. Hatte da noch ein Beispiel rumliegen und gleich ausprobiert.
Geht einwandfrei nur eine Sache stört mich.

Wenn ich mit dem DMA auf den Port schreibe, wie im angehängten Beispiel 
gezeigt benötige ich ein byte um nur 1 oder 0 zu schreiben.

Kann ich den DMA auch Bitweise hochzählen lassen.(finde nur optionen 
für)

-DMA_PeripheralDataSize_Byte
-DMA_PeripheralDataSize_HalfWord
-DMA_PeripheralDataSize_Word

Wenn ich meinen Bitmuster speichern will mit dem Beispiel benötige ich 
8x mehr Speicherplatz(alles aber nicht schön)

Grüße Martin

von chris (Gast)


Lesenswert?

DMA + spi, wenn frei.

von Martin1234 (Gast)


Angehängte Dateien:

Lesenswert?

Danke für den Tip,
hat ein bisschen gedauert aber jetzt gehts muss nur noch die Frequenz 
richtig hin bekommen.

Sollte es jemand mal mit Coocox und dem STM32F4 nachmachen wollen hab 
ich es angehängt

Gruß Martin

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.