www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SJA1000 Timing


Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich brauche eure Hilfe für ein Vergleichen vom BTR0 und BTR1.
Ich will mit einem 16MHz-Quarz einen Bus von 125K ansteuern.
Habe das in verschiedenen "Bit-Time-Rechnern" durchrechnen lassen.
Aber nun verschiedene Werte angezeigt bekommen.
Welche Werte nehmt ihr für die 125K her?
Ich meinen in Highspeed-CAN.
Ich habe bereits mit einer Vector-CAN-Schnittstelle versucht zu messen
aber nur Errorframes bekommen.

Gruß

Autor: Dirk Doerr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Vorschlag 0x03 0x1c

Wird zumindest beim IXXAT USB<->CAN Interface als Einstellung für 125
kBaud genannt.

--
   Dirk

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Danke für deine Antwort.

Ich habe bis jetzt die BTR0 67, BTR1 28 und BTR0 69, BTR1 28 verwendet.
Hat die auch schon jemand verwendet?
Bei mir haut das mit denen nicht hin.

Gruß

Autor: Dirk Doerr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Harald!

Hat 0x03 0x1c nicht funktioniert?

Vielleicht ist auch etwas anderes in Deinem Code verkehrt. Kannst Du
mal die Initialisierung posten?

Ich habe den SJA auch verwendet und konnte mit dem IXXAT USB-Interface
Botschaften empfangen. Auch 16 MHz Quarz allerdings mit 100 kBaud. Da
waren die Einstellungen 0x04 0x1c.

Schau mal auf
http://www.port.de/deutsch/canprod/content/sv_req_form.html

Wenn ich dort 8 MHz eingebe (Beschreibung: für einen an 16 MHz
angeschlossenen SJA1000 benutzen Sie "8") und laß mir die Tabelle
berechnen steht bei

 100 kBaud: 0x04 1c
 125 kBaud: 0x03 1c

Gruß

      Dirk

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem bezieht sich glaub ich auf mein Interface. Jedenfalls gibts
in meinem Forum den selben Thread.
Code: http://www.mictronics.de/?page=can_bus

Der Wert für BTR1 ist bei beiden Beispielen eh gleich.
0x1C == 28
Das heist, die Länge der Bitperiode wird in beiden Fällen gleich
berechnet, auch der Sample Point und die Anzahl samples sind gleich.

Warum das BTR0 unterschiedlich ist weis ich allerdings nicht.
Ich hatte die Werte 67 und 28 hier berechnet:
http://www.esacademy.com/faq/calc/sja1000.htm

Läst sich mit der Vector-CAN-Schnittstelle der Fehler nicht
eingrenzen?
Wie zB beim SJA1000 mit Hilfe der Error Register, um zu sagen in
welchem Bereich des Frames der Fehler liegt.
Steht ein weiteres Interface zur Verfügung, um eine gegenprobe zu
machen?

/Michael

Autor: Dirk Doerr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm. 67 (0x43) müsste auch gehen.

An meinem Arbeitsplatz habe ich auch ein Vector CANCase. Wenn ich dort
125 kBaud einstellen will bekomme ich beides als Option angezeigt; also
0x03 1c aber auch 0x43 1c. (Dort ist auch ein SJA1000 mit 16 MHz
verbaut)

Andere Frage: Ist im Vector Acknowledge aktiviert?

Viele Grüße

 Dirk

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.