Hallo
Ich suche einen einfachen CAN Bus Expander. Der MCP25050 st
eigentlichgenau richtig. Aber ich will nichts an dem Ding vorher
programmieren müssen, um ihn zu nutzen (was und wieso muß man das
eigentlich bei dem 25050?). Einfach integrieren, Adressraum extern
konfigurieren und gut ist. Gibt es so was?
Detlef schrieb:> Nein, da du das Protokoll noch programmieren musst.> Der Bus ist zwar normiert, aber nicht das Protokoll was du über den Bus> schickst.
Das Protokoll könnte der Expander vorgeben. Aber anders als bei I2C
lässt sich eine 11- oder 29-Bit CAN Adresse schlecht teilweise vergeben,
so dass ein externe Konfiguration der Adresse in 2-3 Pins kaum in Frage
kommt. Daher ist eine Programmierung kaum verzichtbar.
Aber ich habe eigentlich keine Lust, erst einen Programmieradapter zu
kaufen/bauen.
A. K. schrieb:> Aber anders als bei I2C> lässt sich eine 11- oder 29-Bit CAN Adresse schlecht teilweise vergeben,> so dass ein externe Konfiguration der Adresse in 2-3 Pins kaum in Frage> kommt.
Wieso? Der Expander braucht ca. 15 Adressen für seine Funktionen. Also
ein Byte: 0x??[0..F] bei 11 Bit. Dann kann ich doch über drei Pins eine
Basisadresse angeben und über einen weiteren, ob's 11 oder 29 Bit sein
sollen. Bei 11 Bit ergäbe sich z. B. 0x[0..7]1[0..F]. Wenn ich nur diese
Teile an meinem Bus habe, kann ich schon 8 Stück nutzen. Und sollten
noch andere CAN IDs benötigt werden, nutze ich halt was aus dem freien
Bereich. Ganz einfach.
Detlef schrieb:> Nein, da du das Protokoll noch programmieren musst.
Gibt's dazu irgendwo ein HowTo?
Skoddi schrieb:> Detlef schrieb:>> Nein, da du das Protokoll noch programmieren musst.>> Gibt's dazu irgendwo ein HowTo?
Das musst du dir selbst ausdenken. CAN schreibt nur das physikalische
Layer und den Aufbau einer Nachricht so wie die Buskontrolle vor. Wie du
deine Informationen in diesen CAN-Frame einfügst, das musst du selbst
programmieren. Das ist kein UART bei dem man mal eben Daten reinhaut und
die kommen hinten raus. Bei CAN gibt es Fehlererkennung,
Fehlerkorrektur, du musst CRC-Checksummen berechnen. Wenn du zu oft
Übertragungsfehler hast, dann muss dein Teilnehmer in den Buss-OFF Mode
gehen und und und. Es gibt nicht umsonst extra CAN-Controller. Das ist
nicht so einfach mal gemacht wie UART oder so. Das ist kein
Anfängerprojekt.
Pter schrieb:> Das musst du dir selbst ausdenken.
Ich meinte nicht zu CAN. Das beherrsche ich.
Ich meinte zu dem 25050. Wie ich den programmiere (tut's da ein billiger
PIC Brenner?) und was ich einstellen muß. Irgendwo habe ich mal gelesen,
daß die Software von Microchip dazu buggy sein soll.
@Skoddi,
ich habe den MCP25050 im Einsatz und ohne Programmierung
macht der gar nichts über den CAN-Bus
ich konnte "glücklicherweise" über ein Gal-Programmier-Gerät
das auch den MCP unterstützt das IC programmieren
(lustigerweise geht das nur ein einziges mal ... ist kein E'EProm
sondern nur ein EProm !!)
also muss man sich vor dem brennen zu 100% sicher sein,
das das HEX-File stimmt
erschwerend kommt hinzu, das die PC-Software zum erstellen
vom HEX-File (von Microchip) ein File erzeugt,
das den Intel-Hex-Standard nicht einhält :-)
das File muss also nach dem erstellen nochmal manuell korrigiert werden
kurz und knapp...ist mühsam, aber man bekommt es hin
(wenn du willst, kann ich dir das fertige File zusenden)
Gruss Uwe
Uwe B. schrieb:> erschwerend kommt hinzu, das die PC-Software zum erstellen> vom HEX-File (von Microchip) ein File erzeugt,> das den Intel-Hex-Standard nicht einhält :-)>> das File muss also nach dem erstellen nochmal manuell korrigiert werden>> kurz und knapp...ist mühsam, aber man bekommt es hin> (wenn du willst, kann ich dir das fertige File zusenden)
Danke. Hilfreicher für alle wäre es aber, das File hier zu posten und
ggf. sogar zu beschreiben, wo die Fehler liegen und wie man sie
korrigiert.
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.