Forum: Mikrocontroller und Digitale Elektronik BusStatus beim SJA1000


von Mike (Gast)


Lesenswert?

Hi!

Ich habe mir eine Applikation mit dem SJA1000 aufgebaut.
Funktioniert auch soweit.
Jetzt habe ich da noch ein Probelm:
Wie kann ich den BusStatus feststellen ->AKTIV, PASSIV,
BUSHEAVY bzw. OVERRUN?
Welche Register muss ich vom SJA1000 abfragen?

von Mike (Gast)


Lesenswert?

z.B. beim Peak CAN Dongle bzw. Vector wird der BusStatus immer
angezeigt.

von Mike (Gast)


Lesenswert?

Und wie kann ich die Errorframes erkennen?

Bin für jeden Ratschlag sehr dankbar.

von Volker (Gast)


Lesenswert?

Hallo Mike,

schau dir im Datenblatt speziell das Register 2 des SJA1000 an.
Da steht doch schon einiges zu deinen Fragen.

Volker

von Mike (Gast)


Lesenswert?

Im Datenblatt steht nichts drin, wie man Errorframes detektiert.

von Volker (Gast)


Lesenswert?

du hast ja noch mehr Fragen gestellt!

Dann schau dir halt noch das Interrupt-Register (Reg 3) an, da kannst
du speziell die Bits 5-7 auswerten und kommst auf den anliegenden
Fehler, gegebenenfalls mußt du die Interrupts auch enablen.

oder was verstehst du unter Errorframes?

Volker

von Mike (Gast)


Lesenswert?

Bei meiner Applikation verwende ich keinen Interrupt vom SJA.
Das heisst das Interrupt Register bringt mir ja nichts.
Mit Errorframes meine ich die Botschaften die ich nicht empfangen kann.

von Alois (Gast)


Lesenswert?

Wär für mich eventuell auch ganz interessant. hab ne schaltung mit sja
und kann damit auch schon daten versenden. beim empfangen, gibts
allerdings noch probs.

hab leider keine ahnung worans liegt. vllt jemand nen tip?

mfg, alois

von Mike (Gast)


Lesenswert?

Hallo Alois!

Bis jetzt konnte mir auch noch keiner so richtig helfen.
Wie sieht dein Programm aus ?

von Jan (Gast)


Lesenswert?

Hallo Mike,

schau doch mal im Datenblatt ab Seite 36 (6.4.9 Error Code Capture
Register - ECC). Damit müsste sich doch der Busstatus auswerten
lassen.

MfG, Jan

von Marc (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Ihr,

Ich mache gerade eine Projektarbeit in der Schule und bin dabei einen
IPC chip von der Fa. Beck an eine sja1000 controller anzubinden.

Jetzt ist folgendes ich habe eine kleine Platine entwickelt die mit
einem CAN-Bus versehen ist. Ich bekomme von einem externen Kältegerät
Daten zugesende. Diese Temeraturdaten werden eingelesen und ich sollte
sie via Paket(Programm) zu dem  IPC-server weiterleiten.

So nun bin ich nicht gerade fit im progammieren von Borland c.
Ich muss zum einen ein Programm schreiben das es mir ermöglicht das
Datenpaket von dem sja1000 an den server weitergeleitet wird.
Was für befehle benötige ich überhaupt und wie kann dieses Paket auf
den Ipc senden. Habe keine Ahnung wie dies anlaufen soll.
Genauso wenig Ahnung habe ich ein Programm zu schreib um die Daten von
dem externen Kältegerät auf meinen CAN-Bus zu empfangen...gibt es da
bestimmte vorgaben...wie ich diese Daten einlesen kann...wie wird der
CAN angesprochen...fragen über fragen.

Also wenn irgendjemand hierzu mir vielleicht helfen kann wäre ich sehr
erfreut darüber oder noch fagen dazu sellen kann falls er etwas nicht
verstanden hat.

Würde mich auf eine positive antwort freuen
MFG
Marc

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.