Forum: Mikrocontroller und Digitale Elektronik Einfacher CAN I/O Expander gesucht


von Skoddi (Gast)


Lesenswert?

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?

von Detlef (Gast)


Lesenswert?

Nein, da du das Protokoll noch programmieren musst.
Der Bus ist zwar normiert, aber nicht das Protokoll was du über den Bus 
schickst.

von (prx) A. K. (prx)


Lesenswert?

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.

von Skoddi (Gast)


Lesenswert?

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?

von Pter (Gast)


Lesenswert?

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.

von Syliosha (Gast)


Lesenswert?

Für so einen Fall gibt es halt CANopen. Das macht genau was du willst.
Gibt dafür genügend IO-Expander.

von Skoddi (Gast)


Lesenswert?

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.

von Uwe B. (derexponent)


Lesenswert?

@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

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Uwe B. schrieb:
> (lustigerweise geht das nur ein einziges mal ... ist kein E'EProm
> sondern nur ein EProm !!)

Immer noch ein E zu viel.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Im Datenblatt zum MCP2502X/5X steht tatsächlich EPROM drin (mit "E").

von Bastler (Gast)


Lesenswert?

Eprom löscht man mit UV-Licht. Im PlasteGehäuse geht das nicht -> One 
Time EProm!

von Skoddi (Gast)


Lesenswert?

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.

von Uwe B. (derexponent)


Lesenswert?

Skoddi schrieb:
> 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.


hier die Beschreibung vom Fehler und wie man sie korrigiert :

http://liionbms.com/php/programming_MCP250xx.php

und hier kann mein File runtergeladen werden :

http://mikrocontroller.bplaced.net/wordpress/?page_id=2459

: Bearbeitet durch User
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.