MCP2515 und falsche Baudrate

Gast #4955489
Lesenswert?

Was passiert? Hat da jemand Erfahrungen?
Hintergrund: ich möchte mir einen CAN-Mithorcher basteln, der nach 
Möglichkeit seine CAN-Baudrate selbst einstellen kann, bis es passt.
Ja, steht bestimmt irgendwo im Datenblatt, aber ich finde das ziemlich 
verwirrend :-(, also mit rtfm ist mir nicht wirklich geholfen.
Gast #4956120
Lesenswert?

Ok, danke, funktioniert. Ich lese einfach den Counter aus
temp= mcp2515_read_register (REC);
Wenn grösser 10, neue Baudrate probieren. Geht sicher eleganter mit 
Interrupt, muss aber nicht sein, braucht man ja nur am Start. Gefundene 
Baudrate dann in den Eeprom und beim nächsten Reset erstmal damit 
beginnen. So oft wechselt man ja nicht.
Gast #4956160
Lesenswert?

Falls die Error frames doch stören:
CAN-Controller in den Listen-only Mode setzen
-> kein Akn, keine Error frames
REC auslesen,
falls 0 nochmal gucken ob wirklich etwas empfangen wurde
- nicht das der Bus einfach gerade leer ist ;-)
#4956446
Lesenswert?

Dieter M. schrieb:
> CAN-Controller in den Listen-only Mode setzen
> -> kein Akn, keine Error frames
> REC auslesen,

Funktioniet das? Im Datenblatt Kapitel 10.3 steht:

The baud rate can be detected empirically by testing
different values until valid messages are received.

und weiter:

Listen-Only mode is a silent mode, .... The error
counters are reset and deactivated in this state.

Liest sich für mich, man muss solange durchprobieren bis man etwas 
empfängt.
#4956945
Lesenswert?

MCP2515 hängt ja per SPI dran. Ich gehe davon aus, dass der 
angeschlossene µC keinen eigenen CAN-Controller hat (OT: Warum nimmt man 
eigentlich immer µC ohne CAN, und flanscht dann den MCP2515 an?).

Ich würde vom CAN-RX Pin des CAN-Transceivers hochomig auf einen Pin des 
Mikrocontrollers gehen, und dort per Capture messen wie lang ein Bit 
ist.
Das geht natürlich nur bei Busaktivität.
#4957431
Lesenswert?

Stefan M. schrieb:
> (OT: Warum nimmt man
> eigentlich immer µC ohne CAN, und flanscht dann den MCP2515 an?)

a: weil man eine passende Platine da hat
b: weil es nur wenige MCs mit mehr als einem CAN-Controller gibt
c: weil man schon fertige und gut funktionierende Software hat
d: weil ein CAN-AVR um die 5€ kostet, und die Kombi Mega88+MCP2515 <2,50

also, es gibt schon Gründe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren