CAN-FD Bit-Timing-Calculator

Ein nützlicher kleiner Helfer für die Berechnung der CAN-Bit-Timing-Register von Mikrocontrollern folgender Hersteller:

HerstellerProdukte / Produktfamilien
Analog Device
  • BlackFin
Infineon
  • MultiCAN
  • TC21x/TC22x/TC23x Family (CAN-FD)
  • FX/FM3 series
  • LX series
Microchip
  • AT90CANxxx, (A)T89C51
  • AT91
  • ATSAM (CAN-FD)
  • dsPICxxF
  • MCP251x
  • MCP251xFD
NXP
  • FLEXCAN Devices
  • HC05xx, HC08xx, HC12xx (MCAN)
  • S32K1xx (CAN-FD)
  • LPC546xx (CAN-FD)
  • MPC5748G (CAN-FD)
  • SJA1000
Renesas
  • M16C/R8C Family
  • M32R Family
  • RX6xx
  • RZ Family
  • SuperH Family
ST
  • STM32G0, STM32G4, STM32H7, STM32L5, STM32MP1 (CAN-FD)
  • STM32

Unterstützt „Classical CAN“- und „CAN-FD“-Derivate. Für die Bitraten können Toleranzen spezifiziert werden. Es ist möglich, eine Liste von „CAN Peripherie Clock“-Frequenzen anzulegen. Sample-Point“, „Synchronization Jump Width“ (SJW) und weitere Parameter lassen sich konfigurieren. Bei CAN-FD ist das „Time-Quantum“ entscheidend: je kleiner dieser Wert, desto besser. BitCalc versucht hier, anhand der verfügbaren „Peripherie Clock“-Frequenzen und unter Einbeziehung aller Parameter-Vorgaben (Sample-Point, …) die optimalen Werte zu ermitteln. Diese werden dann sortiert im Tabellen-Format ausgegeben. Lauffähig ab Windows XP oder unter Linux mit Wine.

BitCalc.ZIP
ZIP Archiv
BitCalcInstall.EXE
Install Executable

Programm-Beschreibung

Wählen Sie zunächst auf der Startseite des „Bit Timing Calculators“  1  „Select by Controller“, der graue hinterlegte Bereich zum Controller-Setup wird jetzt aktiv. Als Nächstes erfolgt die Auswahl des Herstellers  2  und der Serie  3 . In unserem Beispiel der Hersteller ST mit der „STM32G0, STM32G4, …“-Serie.

 4  Zeigt die Liste der verwendeten „CAN Peripherie Clock“-Frequenzen. Mit  5  „Clock Setup“ lässt sich diese Liste ändern. Bei der ausgewählten Controller-Serie handelt es sich um einen CAN-FD Controller. Unter  6  können Sie die Berechnung der CAN-FD (Data Phase Bitrate) deaktivieren. Klicken Sie nun auf  7  „Next“, um die eigentliche Bitraten-Konfiguration vorzunehmen.

Über die Auswahllisten  1  und  7  für CAN-FD stehen die CAN-Standard-Bitraten zur Verfügung. Zum Berechnen von benutzerdefinierten CAN- und CAN-FD-Bitraten wird die Bitrate in das entsprechende Textfeld eingetragen. Es werden die Präfixe „k“ und „M“ unterstützt. Die Nachkommastellen müssen mit einem Punkt angegeben werden. Hier ein Beispiel für 33,3 kBit/s.

 2  ( 8  für CAN-FD) gibt den erlaubten Toleranzwert in % an, um den die eingegebene Bitrate abweichen darf. Im Normalfall sollte dieser Wert auf „0.0%“ belassen werden, nur bei benutzerdefinierten Bitraten empfiehlt es sich, eine Toleranz anzugeben. Bei  3  und  10  für CAN-FD wird das Verfahren ausgewählt, mit dem der „Sampling Point“ festgelegt wird:

  1. Use CIA recommended sampling point
  2. Fixed Sampling Point
  3. Range

Bei der Auswahl 1 und 2 wird ein fixer Wert festgelegt, zu dem eine erlaubte Toleranz  4  und  11  für CAN-FD angegeben wird. Bei der Sortierung der berechneten Bitraten-Tabellen haben die Werte mit der geringsten Toleranz Vorrang. Bei der Auswahl 3 wird ein erlaubter Bereich für den „Sampling Point“ festgelegt.

Bei dieser Einstellung hat der „Sampling Point“ keinen Einfluss auf die Sortierung. Mit  5  ( 12  für CAN-FD) „enabled“ wird der „Synchronization Jump Width (SJW)“ automatisch auf den größtmöglichen Wert gesetzt, mit „disabled“ wird der Wert manuell eingestellt.

 6  und  13  sind – abhängig vom Controller – als Features in den BTR-Registern entweder enthalten oder nicht. Weitere Informationen finden Sie in den entsprechenden Datenblättern der Controller. Unter  9  wird festgelegt, ob für die CAN- und CAN-FD-Bitrate der gleiche Vorteiler verwendet wird. Diese Einstellung wird empfohlen und sollte nur in Ausnahmefällen deaktiviert werden. Ist alles fertig konfiguriert, drücken Sie auf „Press to calculate bit rates“  14 , um die Berechnung der Bitraten-Register auszuführen. Als Nächstes sehen Sie die Ergebnisse für das CAN-Bitraten-Register in der Tabelle „Nominal bit rate“. Wird hier ein Eintrag markiert, erscheinen in der 2. Tabelle „CAN-FD data bit rate“ die dazugehörigen Ergebnisse für das CAN-FD-Bitraten-Register.

Beide Tabellen sind sortiert, und die besten Ergebnisse werden zuerst dargestellt. Zusätzlich werden die Einträge farblich hervorgehoben:

GRÜN Toleranz für Bitrate und „Sampling Point“ = 0%
GELB Toleranz für Bitrate = 0%, „Samling Point > 0%
ORANGE Toleranz für Bitrate > 0%, „Sampling Point“ = 0%
ROT Toleranz für Bitrate und „Sampling Point“ > 0%

Markieren Sie nun noch den gewünschten Eintrag für die CAN-FD-Bitrate. Mit „Copy to Clipboard“ kopieren Sie das Ergebnis in die Zwischenablage. Von dort aus lässt es sich dann direkt in den „C“-Quellcode einfügen.

//** Nominal bitrate **
// 500 kBit/s Clock:80MHz PH1=127 PH2=32 SP=80.0% SJW=32

#define NBTP_CLK3_500K 0x3E007E1F

//** Data phase bitrate **
// 2 MBit/s Clock:80MHz PH1=29 PH2=10 SP=75.0% SJW=10

#define DBTP_CLK3_2M 0x00001C99