Forum: Mikrocontroller und Digitale Elektronik SJA1000 Timing


von Harald (Gast)


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ß

von Dirk Doerr (Gast)


Lesenswert?

Mein Vorschlag 0x03 0x1c

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

--
   Dirk

von Harald (Gast)


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ß

von Dirk Doerr (Gast)


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

von Michael W. (mictronics) Benutzerseite


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

von Dirk Doerr (Gast)


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

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.