Forum: Mikrocontroller und Digitale Elektronik STM32F4 - CAN1 empfängt nichts


von Mach F. (machfax)



Lesenswert?

Hallo zusammen

Ich bin schon sehr lange auf der Suche, warum der CAN1 auf einem 
STM3240G-EVAL nichts empfängt, bzw. der IRQ gar nie auslöst. Das 
Input-Signal auf dem Port habe ich definitiv. (Mit dem Oszi gemessen).
Das Senden vom Board (TX) funktioniert ohne Probleme.

Die KO Plots zeigen mit CH1 (gelb) das RX vom ST Prozessor, mit CH2 
(blau) das TX vom ST Prozessor.

Kann mir da jemand helfen?

Vielen Dank

: Bearbeitet durch User
von dummy (Gast)


Lesenswert?

>Ich bin schon sehr lange auf der Suche, warum der CAN1 auf einem
>STM3240G-EVAL nichts empfängt,

CAN1 beisst sich auf diesem Board mit LCD bzw. FSMC.

von Mach F. (machfax)


Lesenswert?

Hallo
Aber TX geht, hast du eine Ahnung wo RX nicht geht? Weil LCD ist 
ausgeschaltet...

von Konrad (Gast)


Lesenswert?

Sieht aus, als wuerde der schon was empfangen. Linkes Bild, blaue Linie 
hat etwa da einen kurzen 0-Puls, wo im CAN-Frame das ACK kommt. Entweder 
Stoerung, oder der uC hat tatsaechlich das CAN-Frame angeguckt, den CRC 
geprueft und CAN-konform geACKt (durch Rezessiv-Bit-Senden).

Ich kenn STM32 nicht gut, aber ich wuerd an Deiner Stelle eher Richtung 
Interrupt-Enable-Problem ermitteln. Mal die Register stattdessen pollen.

von Mach F. (machfax)


Lesenswert?

Hallo

Ist definitiv keine Störung sondern ein ACK.

Gruss

: Bearbeitet durch User
von Tamy (Gast)


Lesenswert?

Ist der Abschlusswiderstand 120R vorhanden?

von Mach F. (machfax)


Lesenswert?

Tamy schrieb:
> Ist der Abschlusswiderstand 120R vorhanden?

Ja, auf beiden Seiten 120Ohm

von Mach F. (machfax)


Lesenswert?

dummy schrieb:
> CAN1 beisst sich auf diesem Board mit LCD bzw. FSMC.

Ist das so? Hardwaremässig? Denn im Code ist dieser PIN nicht doppelt 
belegt was ich gesehen habe.
Ich versuche jetzt mal CAN2 zu nutzen, eventuell (hoffentlich) 
funktioniert es damit.

Gruss

von Mach F. (machfax)


Lesenswert?

Mit dem CAN2 geht es ebenfalls nicht, zusätzlich werden da nur 4 Byte 
verschickt anstatt 8.
Ich drehe langsam durch, das kann doch einfach nicht wahr sein eine 
simple CAN Verbindung herzustellen kann doch wohl nicht so schwer 
sein?!?

Hat jemand dazu eine Lösung oder schon ein BeispielCode, wo ich meinen 
Fehler finden kann?

Danke

von dummy (Gast)


Lesenswert?

>Ist das so? Hardwaremässig? Denn im Code ist dieser PIN nicht doppelt
>belegt was ich gesehen habe.

PD0 ist D2 beim FSMC und CAN_RX.

>Ich versuche jetzt mal CAN2 zu nutzen, eventuell (hoffentlich)
>funktioniert es damit.

CAN2 beisst sich zum Teil mit dem USB Geraffel;)

von Mach F. (machfax)


Lesenswert?

dummy schrieb:
> PD0 ist D2 beim FSMC und CAN_RX.

Danke, aber wo siehst Du das? Ich finde das im Code wirklich nicht. 
(Sorry für die dumme Frage)

von Mach F. (machfax)


Angehängte Dateien:

Lesenswert?

Hier ist PD0 belegt, jedoch wird bei mir "SystemInit_ExtMemCtl" ar nie 
ausgeführt.

: Bearbeitet durch User
von dummy (Gast)


Lesenswert?

>Danke, aber wo siehst Du das?

Im Schaltplan sieht man das. Ausserdem wird es bei der
Beschreibung der Jumper für CAN erwähnt.

von Mach F. (machfax)


Lesenswert?

Ja im Schaltplan sehe ich es, stimmt, aber im Code ist es deaktiviert 
und die Pegel am PIN habe ich ja, demzufolge sollte doch die CAN 
Schnittstelle trotzdem funktionieren oder liege ich da falsch? Die Pegel 
an PD0 sind ja ok, wie auf dem Oszi Bild zu sehen ist. (Gemessen an 
Jumper JP10 PIN2)

von dummy (Gast)


Lesenswert?

>Gemessen an Jumper JP10 PIN2

Und der steckt auf Position 2-3?
Wenn du allerdings die Alternate Function vom
CAN1 irgendwo wieder überschreibst kann das Signal
auch direkt am Controllerpin anliegen und trotzdem
passiert nichts.

von Mach F. (machfax)


Lesenswert?

dummy schrieb:
> Und der steckt auf Position 2-3?

ja er steckt auf 2-3.


Wenn du allerdings die Alternate Function vom
CAN1 irgendwo wieder überschreibst kann das Signal
auch direkt am Controllerpin anliegen und trotzdem
passiert nichts.

Ok, werde ich mal versuche da etwas zu finden, aber Hardwaremässig ist 
somit ausgeschlossen soweit ich das verstehe?

Vielen Dank!

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.