Forum: Mikrocontroller und Digitale Elektronik STM32 FDCAN Filterkonfiguration filtert nicht


von Lukas (lutz300)


Angehängte Dateien:

Lesenswert?

Moin zusammen,

ich versuche derzeit die CAN-FD-Schnittstelle von meinem STM32H745-DISCO 
zu konfigurieren und scheitere an der Konfiguration der Filter.

In meinem Code wähle ich derzeit einen Identifier aus, dessen Signal ich 
über einen Callback in FIFO0 schreiben und zur Kontrolle über USART 
ausgegeben möchte. Ich habe schon zwei Versuche gestartet, die beiden 
damit geendet sind, dass nicht nur der einen Identifier, sondern alle 
Identifier den Callback auslösen. Dies geschieht sowohl im 
Internal-Loopback-Mode, als auch am Motor-CAN, den ich letztlich 
auslesen möchte. Anbei findet ihr den Code incl. CAN-Konfiguration am 
Beispiel des Internal-Loopbacks.

Fällt euch ein Fehler auf?

Danke im Voraus und Grüße

von J. S. (jojos)


Lesenswert?

der erste Fehler ist C-Quellcode nicht mit der Dateieindung .c 
hochzuladen.

von Andras H. (kyrk)


Lesenswert?

Kann man da vielleicht alle Registers dumpen? HAL ist zwar schon, aber 
wenn da etwas nicht tut, dann einfach sich die Registers angucken und 
versuchen zu verstehen ob alles so konfiguriert ist wie man es erwarten 
würden.

Also Registers dumpen und mit den Datenblatt vergleichen was da nicht ok 
ist. Den Dump auch hier posten, damit wir auch das Ding angucken können.

von Lukas (lutz300)


Angehängte Dateien:

Lesenswert?

Anbei das .c-Dokument

von Steffen R. (steffen_rose)


Lesenswert?

Andras H. schrieb:
>
> Also Registers dumpen und mit den Datenblatt vergleichen was da nicht ok
> ist. Den Dump auch hier posten, damit wir auch das Ding angucken können.

Beim MCAN liegt viel im Message-Ram. Da kommst du mit der Methode nur 
begrenzt weiter. Da der Empfang aber prinzipiell funktioniert, reduziert 
sich auch die Anzahl der Register, die zu prüfen sind. Der Rest ist dann 
mühsam (Filterlisten).

von Steffen R. (steffen_rose)


Lesenswert?

Ich würde mal nach dem FDCAN_GFC Register schauen.
Resetvalue 0 bedeutet scheinbar, dass ausgefilterte Nachrichten in der 
Fifo0 empfangen werden sollen. (ANFS)

Ich nutze die HAL nicht. Daher kann ich nicht sagen, ob diese den Wert 
automatisch setzt.

von Lukas (lutz300)


Lesenswert?

Moin zusammen,

vielen Dank erstmal für die Ratschläge.

Das Problem ist nun gelöst, leider weiß ich nicht so recht, wo das 
Problem nun lag. Ich hab mein Projekt in CubeIDE neu aufgesetzt, hab den 
Code erneut eingetippt und siehe da, die Filter funktionieren. 
Eigentlich ist alles identisch zu vorher.

Ich habe mir zuvor auch das FDCAN_GFC Register angeschaut und mit dem 
verglichen, was ich anhand des Manuals erwarten würde bzw. müsste. Hier 
gab es keine Auffälligkeiten, die Std-ID-Messages müssten, wenn Sie 
nicht vom Filter erfasst werden, abgelehnt werden.

Nunja, jetzt funktionierts. Vielen Dank nochmal, insbesondere auch an 
@steffen_rose.

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.