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.
Gerhard schrieb: > Was passiert? Es werden Error-Frames erkannt und REC wird hochgezählt. RTFM Kapitel 6.7?
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.
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 ;-)
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.
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.
@Thomas Forster Verdammt, Du hast Recht! Also doch gucken, ob etwas empfangen wurde, falls keine Error frames erwünscht sind
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.