Forum: Mikrocontroller und Digitale Elektronik Kommunikation mit CAN zwischen MCP2512 und 80c592


von Stefan H. (stefan_h)


Lesenswert?

Hallo,

Ich habe ein Controllerboard mit einem 80c592 der zur Kommunikation CAN 
verwendet(sourcecode habe ich).

Nun möchte ich mit meinem ATMega128 uber einen MCP2515 mit dem 80c592 
komunizieren. Dei kommunikation mit dem MCP2515 funktioniert, doch die 
beiden CAN-Controller scheinen sich nicht zu verstehen ;-). Ich nehme 
an, dass es an der Baudrate liegt, schaffe es aber nicht die richtigen 
Registerwerte für meinen MCP2515 zu berechnen(ich verstehe es einfach 
nicht ;-) )

Baudrate ist 19200 Bps
Taktfrequenz MCP2515: 11,0592 MHz

Taktfrequenz 80c592 11,0592 MHz

BTR0=0x51
BTR1=0x76

Da durch BTR0 und BTR1 die genauen Busspezifikationen angegeben sind, 
sollte es ja kein Problem sein das ganze auf den MCP2515 umzubauen, aber 
es funktioniert bei mir nicht. Ich habe schon die verschiedensten werte 
für CNF1 CNF2 und CNF3 ausprobiert, aber der 80c592 versteht mich nicht 
;-)

Hat irgendwer eine Idee wie ich auf die Werte für CNFx aus BTRx 
berechnen kann?

mfg,

Stefan

von Martin (Gast)


Lesenswert?

> Baudrate ist 19200 Bps

Das hört sich nicht nach CAN-Bus an. Ich kenne den MCP nicht, aber 
verwechselst du evtl UART-Bautrate und CAN-Baudrate?

von Stefan H. (stefan_h)


Lesenswert?

ist 100%ig CAN.

MCP2515 ist ein CAN-Bus-Controller und der P80c592 ist ein 8051 mit 
integriertem CAN-Bus-Controller.

Baudrate 19,2 kbps

mfg,

Stefan

von Martin (Gast)


Lesenswert?

> MCP2515 ist ein CAN-Bus-Controller

Ich weiß, aber den steuerst du mit dem Mega über serielle Schnittstelle 
an. Kommen da die 19200Bps ins Spiel?

von Stefan H. (stefan_h)


Lesenswert?

Nein, der MCP2515 wird via spi angesprochen, und da habe ich keine 
einstellbare Baudrate. Die 19200bps sind sicher am CAN! Ist auch im 
sourcecode des 80c592 so kommentiert.

mfg

Stefan

von mnr (Gast)


Lesenswert?

Unter 
http://intrepidcs.com/modules/CmodsDownload/upload/Software/MBTime.zip
kannst du ein Tool downloaden, mit dem Sich das alles schön berechnen 
läßt.

ABER: 19200Baud und XTAL 110952 gehen damit nicht zu berechnen, da 
irgendwie zu krumm...

Grüße,
Matthias

von Stefan H. (stefan_h)


Lesenswert?

Sorry, die Baudrate am SPI ist natürlich einstellbar hat aber trotzdem 
nix mit den 19200 bps zu tun

von Stefan H. (stefan_h)


Lesenswert?

das Tool habe ich natürlich auch schon verwendet aber ich werde daruas 
net schlau.

Wenn ich rechts oben 11.0592 Mhz und 19.2 kbps einstelle, liefert mir 
das Tool 6 Vorschläge Tq=24, 18, 16, 12, 9 und 8 mit jeweils 0% fehler. 
Aber das Tq muss ja mit dem des 80c592 übereinstimmen. Oder verstehe ich 
das falsch?

lg,

Stefan

von Stefan H. (stefan_h)


Lesenswert?

HI,

Ich habe hier auch ein Gateway das am selben CAN-Bus hängt und mit den 
80C592 kommuniziert. Davon habe ich auhc den Source-Code. Im Gateway ist 
ein SJA1000T verbaut und ein 80C517. BTR0=0x51 und BTR1=0x76.

Das würde bedueten(laut Datenblatt):
SJW<1:0>=1;
BRP<5:0>=17;

SAM=0;
TSEG2.<2:0>=7;
TSEG1.<3:0>=6;

Laut datenblatt habe ich dann ein t_scl=2*t_clk*(BRP+1), wobei 
t_clk=1/(11,0592*10^6)

t_syncseg = 1 * t_scl
t_tseg1 = t_scl * (TSEG1 + 1)
t_tseg2 = t_scl * (TSEG2 + 1)

t_bit = t_syncseg + t_tseg1 +t_tseg2 = t_scl * ( 1 + (TSEG1 + 1) + 
(TSEG2 + 1))=16

Bitrate = 1/t_bit = 19200 bps

für den MCP2515 würde das dann so auschaun:
CNF1:

SJW<1:0>=1;
BRP<5:0>=17; //da die selbe anzahl von segmenten da ist, gleich wie beim 
SJA1000t

CNF2:

BTLMode = 1 //da ja PHSEG2 über CNF3 eingestellt wird
SAM = 0
PHSEG1<2:0>=5 //da jetzt min. ein Propagtion segment da ist(hat der 
SJA1000 nicht
PRSEG<2:0>=0 //damit nur ein Propagtion segment da ist

CNF3:

SOF=0
WAKFIL=0
x
x
x
PHSEG2<2:0>=7

Tq=2*(BRP+1)*t_osc //ist dann gleich t_scl

t_syncseg = 1 * Tq
t_PHSEG1 = Tq * (PHSEG1 + 1)
t_PHSEG2 = Tq * (PHSEG2 + 1)
t_PRSEG = Tq * (PRSEG + 1)

damit habe ich wieder meine t_bit = 16 * Tq und damit auch die selbe 
Bitrate von 19200 bps.

Wenn ich mir jetzt am Oszi den Canbus anschaue, ist der mit dem MP2515 
ca um den faktor 20 schneller als der des Gateways mit dem SJA1000T. Wo 
liegt mein gedankenfehler?

mfg,

Stefan

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.