mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 mit 15 MHz Quarz


Autor: bitbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi !

Ich bin auf der Suche nach den Settings für

CONF_CANBT1
CONF_CANBT2
CONF_CANBT3

für einen AT90CAn128 mit FOSC == 15000 und einer Baudrate von 500 KBit.

Ich bin zu blöd, um das auzurechnen.
Hier die "originalen" Werte aus can_drv.h

#if FOSC == 16000             //!< Fclkio = 16 MHz, Tclkio = 62.5 ns
#   if CAN_BAUDRATE == 500       //!< -- 500Kb/s, 8x Tscl, sampling at 
75%
#       define CONF_CANBT1  0x06       // Tscl = 4x Tclkio = 250 ns
#       define CONF_CANBT2  0x04       // Tsync = 1x Tscl, Tprs = 3x 
Tscl, Tsjw = 1x Tscl
#       define CONF_CANBT3  0x13       // Tpsh1 = 2x Tscl, Tpsh2 = 2x 
Tscl, 3 sample points
#   elif CAN_BAUDRATE == CAN_AUTOBAUD  // Treated later in the file
#       define CONF_CANBT1  0x00       // Unused
#       define CONF_CANBT2  0x00       // Unused
#       define CONF_CANBT3  0x00       // Unused
#   else
#       error This CAN_BAUDRATE value is not in "can_drv.h" file
#   endif

#elif FOSC == 12000           //!< Fclkio = 12 MHz, Tclkio = 83.333 ns
#   if CAN_BAUDRATE == 500       //!< -- 500Kb/s, 12x Tscl, sampling at 
75%
#       define CONF_CANBT1  0x02       // Tscl  = 2x Tclkio = 166.666 ns
#       define CONF_CANBT2  0x08       // Tsync = 1x Tscl, Tprs = 5x 
Tscl, Tsjw = 1x Tscl
#       define CONF_CANBT3  0x25       // Tpsh1 = 3x Tscl, Tpsh2 = 3x 
Tscl, 3 sample points
#   elif CAN_BAUDRATE == CAN_AUTOBAUD  // Treated later in the file
#       define CONF_CANBT1  0x00       // Unused
#       define CONF_CANBT2  0x00       // Unused
#       define CONF_CANBT3  0x00       // Unused
#   else
#       error This CAN_BAUDRATE value is not in "can_drv.h" file
#   endif

Autor: ich_werds_dir_nicht_ausrechnen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber das steht doch halbwegs gut erklärt im Datenblatt.
Ansonsten könntest du was ganz dreckiges versuchen und zwischen den 
angegebenen Werten für 18MHz und 12MHz "interpolieren" - sprich die 
Mitte nehmen. Aber ohne Garantie! Besser Liter Kaffee und ausrechnen!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.