STM32 Zusammenhang Timer SPI CAN

Gast #2496600
Lesenswert?

Hallo,
ich wollte gerade den SPI2 und gleichzeitig den Timer 2  für externe 
Interrupts verwenden. Scheinbar kann der Timer aber nur für eines von 
beiden verwendet werden. Kann mir jemand sagen wie alle Timer, SPI und 
CAN zusammen hängen oder gibt es da eine Übersicht? Timer 2 wird ja 
scheinbar für die Taktvorgaben bei der SPI Übertragung genutzt -.-
Gast #2497187
Lesenswert?

Zumindest habe ich das Problem, dass SPI und Interrupte mit Timer 2 
getrennt gut funktionieren. Sobald ich aber Timer 2 Konfiguriere 
arbeitet das SPI2 nicht mehr. Timer 4 etwa laesst sich konfigurieren 
ohne dass mir das SPI aussteigt. Woran koennte das sonst liegen?
Gast #2497215
Lesenswert?

Ich tippe auf ersteres  ^^.
Ich hatte was gelesen, dass man Timer 2 wohl ansteuern kann mit dem SPI 
aber nichts konkreteres. Das Programm habe ich gerade nicht hier (nicht 
mein Rechner). Aber wie gesagt getrennt lauft beides. Fuegt man nur die 
Timerkonfiguration aus dem laufendem Programm in das SPI Programm ein 
geht nichts mehr bzw. fuegt man das SPI in das laufende Programm mit dem 
Timerinterrupts ein laufen die Interrupts aber das SPI haengt sich beim 
warten auf das Busy Flag auf bzw. verweilt dort endlos.
#2497228
Lesenswert?

Falls dir das immer noch nicht aufgefallen sein sollte: Der grosse 
gordische Knoten zwischen CAN und Timern und SPI ist niemandem hier 
geläufig. Das sind drei Module, die abgesehen von möglichen 
Überschneidungen in der Nutzung von Pins nichts miteinander zu tun 
haben.

Wenn du also drauf wartest, dass hier jemand aufspringt und sagt, "ja, 
wenn der Timer2 mit exakt 1,2345MHz läuft und ein schwarzes CAN von 
links nach rechts unter einer Leiter durchläuft, dann dreht das SPI 
durch", dann wartest du vermutlich vergebens.
Gast #2497280
Lesenswert?

Nun entweder das (eventuell mit einem Verweis auf ein Datenblatt) oder 
das Gegenteil oder mit viel Glueck jemand dem das selbe Problem 
wiederfahren ist (haengedes Busy Flag). Wenn du der Ueberzeugung bist es 
hat nichts miteinander zutun, dann muss ich mir den Quellcode wohl doch 
noch mal angucken.

Ohne das es irgendwie agressiv gemeint ist, aber einen Zusammenhang gibt 
es schon. Naemlich die Taktansteuerung. Und warum sollte es nicht auf 
anderer Basis noch etwas geben was ich noch nicht geschnallt habe.


Gruss Mark
Gast #2497292
Lesenswert?

>Ohne das es irgendwie agressiv gemeint ist, aber einen Zusammenhang gibt
>es schon. Naemlich die Taktansteuerung.

Nö, beide Module haben einen eigenen Takt. Wenn du natürlich
beim einstellen der Taktquelle dem anderen Modul den Takt
wegnimmst, dann hast du recht. Das ist aber ein Softwareproblem.

Für bekannte Hardwareprobleme ist es empfehlenswert in das Errata Sheet
zu schauen. Gibt es beim Hersteller.
Gast #2497759
Lesenswert?

Ich meinte auch die Verbindung über den APB. Nachdem ich zwei nahzu 
identische Projekte hatte und festgestellt habe, dass das eine nur nicht 
funktionierte wenn ich Timer2 mit Interrupts aktiviert habe, dem anderen 
Programm das aber nichts ausmachte habe ich das nicht funktionierende 
Programm Stück für Stück in das funktionierende kopiert. Jetzt geht 
alles. Mir ist dabei aufgefallen, dass in dem nicht funktionierenden 
Teil z.B. die Definitionen nicht mehr farbig hinterlegt waren, wie es 
üblich ist. Wahscheinlich war irgenwas verstellt. Den Fehler hatte ich 
glaube ich schon einmal im Atollic.

Danke für die Hilfen.

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