Forum: Haus & Smart Home Simpler CAN Baustein


von 0815joe (Gast)


Lesenswert?

Hallo alle zusammen.

Ich suche einen CAN Baustein der ähnlich anzusprechen ist wie ein I2C IO 
Baustein (über / oder 3 Pins die Adresse und fertig. Ich möchte einen 
Busknoten realisieren, der in eine halbvolle UP Dose passt. Im Idealfall 
besteht das ganze aus einem Relais, dem IO Baustein und einer ca.3x2cm 
grossen Platine. Die Avr mit CAN haben alle 30+ Pins was ich nicht 
wirklich brauche. Jemand eine Idee?

von Gerhard (Gast)


Lesenswert?

MCP2515 - allerdings SPI

von Frank K. (fchk)


Lesenswert?

0815joe schrieb:

> grossen Platine. Die Avr mit CAN haben alle 30+ Pins was ich nicht
> wirklich brauche. Jemand eine Idee?

Microchip hat eine deutlich bessere Peripherieauswahl. Du könntest z.B. 
zum PIC 18F2580 oder dessen Low-Power-Weiterentwicklung PIC18F25K80 
(greifen, der in 28 Pins schon alles drin hat, und bräuchtest dann nur 
noch den üblichen Transceiver wie z.B. MCP2551. Die ECAN-Einheit des 
genannten PICs ist eine Weiterentwicklung des MCP2515 und durch die 
direkte Integration in den Prozessor deutlich effizienter und einfacher 
anzusteuern als ein externer Controller.

fchk

von Ein unbekannter (Gast)


Lesenswert?


von BeWes (Gast)


Lesenswert?

Ich verwende derzeit die ARM-Cortex M0 Teile von NXP,
Es gibt Evalboards (LPCxpresso) mit JTAG
und kostenslose Entwicklungsumgebung von CodeRed dazu

LPC11C12 ohne Transceiver LQFP48
LPC11C14 ohne Transceiver LQFP48

und für die Unterputzdose, da gibt es dann nur noch die
Stromversorgung dazu zu basteln

LPC11C22 mit Transceiver LQFP48
LPC11C24 mit Transceiver LQFP48

Alle haben CAN-Treiber on chip und kosten ca. 2..4 Euro in kleine 
Stückzahlen (unschlagbar)
Kleiner, kostengünstiger und einfacher geht es derzeit nicht...

Wenn's ein 8 Bitter sein soll, dann

ATmega16M1 ohne Transceiver
ATMega32M1 ohne Transceiver
ATmega64M1 ohne Transceiver

von 0815joe (Gast)


Lesenswert?

Hi.
Danke für eure Antworten. Habe heute auch schon ein wenig gesucht und 
bin auch schon auf den MCP2515 gestossen. Nur hab ich noch keinen Dunst 
wie man den konfiguriert.
Das Teil muss wirklich nichts können als das Relais auf Kommando zu 
schalten.
Ja der Pic 18F2580 wäre ein paasender Kandidat nur auch schon fast zu 
übertrieben für den Anwendungsfall und leider ein Pic. Aber wenns nicht 
anders geht werd ich den nehmen.

Hat wer Erfahrung mit dem mcp2515?

Lg

von Ein unbekannter (Gast)


Lesenswert?

Der Chip muß ja nichts weiter können.......

Schonmal herausgefunden was ein CAN-Bus-Controller kann?

Ich empfehle dringend mal diesen Link:

http://www.me-systeme.de/canbus.html#1578569eb20a44615

von Frank K. (fchk)


Lesenswert?

0815joe schrieb:
> Hi.
> Danke für eure Antworten. Habe heute auch schon ein wenig gesucht und
> bin auch schon auf den MCP2515 gestossen. Nur hab ich noch keinen Dunst
> wie man den konfiguriert.
> Das Teil muss wirklich nichts können als das Relais auf Kommando zu
> schalten.

Der MCP2515 braucht zwingend einen extra Mikrocontroller zum arbeiten. 
Alleine kann das Teil nichts. Der genannte Pic hingegen ist alleine 
funktionsfähig. Microchip liefert c-Bibliotheken beim C18 mit, mit denen 
man Messages senden und empfangen kann. Den Est musst Du selber 
programmieren.

Fchk

von 0815joe (Gast)


Lesenswert?

Hi.

Werd den Pic Controller nehmen. Danke nochmal für eure Antworten!

von Matthias K. (mkeller)


Lesenswert?

Du kannst auch einfach einen CAN-IO Expander von Microchip nehmen.

MCP2502x Familie

z.B. MCP 25050: 
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010402

4x 10bit AD eingang
2x PWM Out
8x IO

Schaus dir mal an. Klasse Dinger.

von Matthias K. (mkeller)


Lesenswert?

Ok, habs mir selber mal angeschaut. Die Bausteine sind zwar an sich 
klasse, aber du brauchst eine Programmerschaltung die wohl über das 
Parallelport läuft.
Damit ist das Ding für mich und vielleicht auch für den TO unbrauchbar

Dann doch lieber MCP2551 + µC oder eben einen PIC18FxxK80 oder 
PIC18Fxx80

von Helmut (Gast)


Lesenswert?

Matthias Keller schrieb:
> Du kannst auch einfach einen CAN-IO Expander von Microchip nehmen.

Hallo Matthias,
kann ich im Datenblatt nicht so sehen:
kann der Chip auch mit dem ICD3 programmiert werden?

Hast du mal ein Beispiel für "auf PortBit xyz ist ein Flankenwechsel, 
dann schickt der Baustein das und das" ?

Gruß Helmut

von Hans (Gast)


Lesenswert?

> aber du brauchst eine Programmerschaltung die wohl über das Parallelport
>läuft.

Warum über den Parallelport?

von Helmut (Gast)


Lesenswert?

Hallo Hans,
ich habe es auch gerade erst gelesen, steht im Datenblatt.

Wenn das Evo-Board nicht soooo teuer wäre, würde ich's mal versuchen.
Gruß Helmut

von Hans (Gast)


Lesenswert?

> Wenn das Evo-Board nicht soooo teuer wäre, würde ich's mal versuchen.

Man nehme 2 Transistoren zum Schalten der Programmier- und 
Versorgungsspannung, einen µC (ATTinyxxx) o. ä. und etwas Zeit (WEP).

Ergebnis hier posten ;)

von Sascha K. (kuschelganxta)


Lesenswert?

Kurze Frage von meiner Seite, der auch gerade mit CAN als Hausbus 
arbeitet:

Wo kann man denn diesen MCP2502X bezizehen?

Danke & Gruß
Sascha

von Hans (Gast)


Lesenswert?


von Kuddel (Gast)


Lesenswert?

Matthias Keller schrieb:
> Dann doch lieber MCP2551 + µC oder eben einen PIC18FxxK80 oder
> PIC18Fxx80

Es gibt auch kleine STM32 mit CAN. Die STM32F103 + ext. Transceiver sind 
ganz nett. Haben auch mehr Speicher als die NXP-Teile. Bei dem MCP 
brauchst du immer einen Transveiver + CPU, also 3 ICs minimal.

---

von Frank K. (fchk)


Lesenswert?

Hans schrieb:
>> Wenn das Evo-Board nicht soooo teuer wäre, würde ich's mal versuchen.
>
> Man nehme 2 Transistoren zum Schalten der Programmier- und
> Versorgungsspannung, einen µC (ATTinyxxx) o. ä. und etwas Zeit (WEP).

Oder ein PicKIT 2 und wenig Zeit:

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

fchk

von Helmut (Gast)


Lesenswert?

Danke Frank,
die Configurations-Soft sieht ja gut aus.
Hast du, oder jemand Anders ein Beispiel?

zB. 8MHz, 125 kHz Boudrate

Nehmen wir mal an, die Receive-ID soll 121dez und die Transmit-ID soll 
160dez sein.

Zyklische Übertragung wäre schön, aber im Lernprozess wohl zu viel.

Schon mal vielen Dank für die Antwort.

von Hans (Gast)


Lesenswert?

"Get a bunch of MCP250xx chips, DIP version (they are 
One-Time-Programmable, so every revision means using a new chip)"

Habe ich leider erst jetzt gelesen: Killerargument.

von Helmut (Gast)


Lesenswert?

Finde ich nicht so schlimm.

Das Problem ist nur, dass man um die Parameter Bescheid wissen muß.

Ich habe Schwierigkeiten DAS mit der Zeit TQ zu verstehen.

Gibt es da etwas im WWW ?

von TT (Gast)


Lesenswert?

Hallo !

Kann dazu kurz etwas sagen:

Die Bitzeit (bei 125 000 Baud = 125 kBaud ist sie 8 usec) wird 
aufgeteilt in einzelne "Time-Quanten".

Je nach CPU Takt nimmt man eine unterschiedliche Anzahl von Time Quanten 
(damit es eben mit der Baudrate hinkommt), aber beispielsweise (über den 
Daumen) 12 oder 16.

Das erste Time Quant ist für die Synchronisation.

Bis der Kontroller den Zustand des Bus einliest, vergehen aber die 
weiteren Time Quanten. Das Propagation Segment und die Phase1 kann man 
auch zusammenfassen (macht z.B. der XC167). Wichtig ist nur, dass nach 
Phase 1 der Zustand des Busses eingelesen wird. Je nach Laufzeit 
(Verzögerung in der Leitung (Lichtgeschw.) aber auch in den 
Treiberbausteinen) stellt jetzt aber der eine oder andere Baustein fest, 
dass er nicht synchron zur ersten Flanke läuft (deshalb gibt es ja das 
Bit Stuffing, damit wenigstens alle 5 Bit eine Flanke kommt). Jeder 
Baustein kann sich dann nachsynchronisieren und verschiebt den "Sampling 
Point" innerhalb Phase 1 und 2 entweder nach vorne oder zurück.

Hausnummer für 125 kBaud:

Zeit tq für ein Time-Quant: 500 ns
Insgesamt pro Bit: 16 Time-Quanten -> Bit-Zeit = 8 usec
1.) Ein Time Quant für Sync
2.) Propagation + Phase 1 bspw. 13 Time-Quanten
3.) Phase 2: Die restlichen also 16-13-1 = 2 Time-Quanten

Ist allerdings nur grob erklärt.

Viele Grüße!

von Helmut (Gast)


Lesenswert?

Hallo TT,
Audi TT ??

Danke für die "grobe" ;-) Erklärung.

Gibt es Faustformeln für zB 125kHz?

von Helmut (Gast)


Lesenswert?

Ich meine mit Faustformel:

Das SYNC_SEG hat 1 Time Quantum, aber das Tq wird aus dem Takt gewonnen.
Der ist aber bei 80MHz grosser als bei 8MHz, muß Das nur ins Verhältnis 
gesetzt werden?

von Helmut (Gast)


Lesenswert?

So, ich habe Thema inhalliert.
Wenn ich die Beispiele, vorwiegend von Microchip oder auch ein 
BRP-Rechner, sehe, dann nehmen Die immer 8TQ oder 16TQ.

Gibt es dafür einen Grund?

Oder macht Das nur Microchip?

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.