Forum: Mikrocontroller und Digitale Elektronik CAN an STM32F446


von MK (Gast)


Lesenswert?

Hallo Zusammen

Ich arbeite mit einem STM32f446 nucleo Board.

Die Clocks habe ich folgendermassen eingestellt:
HCLK 180 MHz
APB1  45 MHz
APB2  90 MHz

Clocks sind getestet und funktionieren!

Ich verwende den CAN1, welcher am APB1 ist, also Frequenz von 45 MHz.
Ich will nun den CAN auf 500 kbit/s eibstellen.
CAN prescaler ist 6 => also noch 7.5 MHz
BS1 ist 6, BS2 ist 8, also sollte ich doch bei 500 kbit/s landen.

Mein Problem ist nun, dass der CAN mit einem 1 Mbit/s läuft.

mach ich einen Überlegungsfehler, oder was ist falsch?

Besten Dank für eure Hilfe

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?


von MK (Gast)


Lesenswert?

Leider hilft der Beitrag auch nicht weiter, weil er mir mit den 500 
kbit/s recht gibt.
Kann mir niemand weiterhelfen?

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Mit einem Programm angelehnt an 
http://www.cnblogs.com/shangdawei/p/4720637.html bekomme ich:
  45 MHz  500 kBaud: Brp    6, tseg1   12, tseg2    2, sample point 
86,6 %

Dein Sample Point liegt bei 40 %, ausserhalb jeglicher Toleranz.

Habe gesendete Paket bei Dir trotz der Einstellung oben wirklich 1 
MBaud? Hast Du evt. einen  falschem APB1 Teiler?

von Steffen R. (steffen_rose)


Lesenswert?

Sind die oben genannte Werte die "echten" Werte oder die in den 
Registern eingetragenen Werte? Hier ist ja immer noch ein (-1) im Spiel.

von Steffen R. (steffen_rose)


Lesenswert?

http://www.can-wiki.info/bittiming/tq.html
ergibt für 45MHz
1000  0.0000  3  15  12  2  86.7   0x001b0002

von Dr. Sommer (Gast)


Lesenswert?

Dein Fehler liegt höchstwahrscheinlich am Code, insb. die Clock (RCC) 
und CAN-Initialisierung. Du zeigst kein bisschen Code. Finde das 
Problem.

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.