CAn-Controller und AVR ???

Gast #61045
Lesenswert?

Hallo alle zusammen!

Ich will mit dem AVR 8535 CAN Botschaften senden und empfangen.
Dazu will ich den SJA1000 benutzen.
Da ich noch in dem gebiet Afänger bin benötige ich Infos dazu.
(Hardwareaufbau und Software)
Wie spreche ich den CAN Controller mit dem AVR richtig an?
Hat jemand dazu ein kleines Beispiel Programm???

Vielen Dank!
Gast #61046
Lesenswert?

Hallo Heinz,

ich weis nicht was Du da vorhast, aber der 8535 erscheint mir als
etwas zu mikrig, um damit vernünftig CAN machen zu wollen.
Der SJA1000 ist ein BASIC-CAN Controller, der zwar Nachrichten
empfängt usw., nur die Auswertung der Nachrichten, bzw. das Überge-
ordnete Programm benötigt etwas mehr RAM als der 8535 hat. OK,
externer RAM kann man anschalten ;-)
Der SJA1000 hat ja auch ein Parallelinterface. Würde also passen.

Aber vielleicht möchtest Du ein smartes Leiterplattendesign auf
engstem Raum, um zB. nur ein Sensorsignal auszuwerten, welches seine
Daten halt über CAN-Bus schickt. Wenn dies der Fall sein sollte,
so empfehle ich Dir den MCP2515 oder MCP2510 von Microchip. Muster
sind auf www.microchip.com verfügbar. Der Chip ist bei RS-components
oder bei Farnell zu beziehen. Vorteil dieses Chips sind:

-serielles Interface (SCLK,Sin,Sout + Interrupt)
-SOL-18 Gehäuse (18 pin)
-externe events lösen das senden von Nachrichten aus, welche zuvor
 im Nachrichtenpuffer eingestellt worden sind

Falls es nur um eine Anschaltung von wenig Pheripherie geht, so
ist der IC MCP25020 oder MCP25050 sehr interessant. Es ist mir jedoch
nicht geglückt diesen Chip mit der Programmerschaltung von Microchip
zu Programmieren. (Timingprobleme)

Mein Projekt ist ein Spezialantrieb mit Schrittmotor, welcher über
CAN-Bus angesprochen wird. Da ich einen dynamischen Antrieb
programmiere, habe ich mich für den ATmega 128 entschieden. Mit 4kB
RAM ist da auch genügend Platz für einen Nachrichtenpuffer.
Der MCP2515 ist am SPI-Bus angeschlossen und am PORTE.7 ist der
Interrupt angeklemmt. Derzeit bastel ich mir mein eigenes Protokoll,
welches die Grundzüge von CANopen besitzt. Vielleicht kannst Du ja
meinen Source auf 8535 anpassen - falls Du auch den MCP2515
verwendest? Ich würde mich freuen, wenn Du mir den lauffähigen ange-
passten Source dann wieder zuschicken würdest.


MfG
Norman
Angehängte Dateien:
#61050
Lesenswert?

"aber der 8535 erscheint mir als
etwas zu mikrig, um damit vernünftig CAN machen zu wollen."

Warum, das CAN dürfte in max 200 Bytes erschlagen sein.

Nur wenn Du darauf noch ein super-duper Monsterprotokoll (TCP/IP)
aufsetzen willst, kanns eng werden.

Allerdings ist für den SJA1000 ein AVR mit externem Datenbus besser
geeignet, z.B. Mega8515 oder Mega162. Dann kann er nämlich in den SRAM
Bereich gemappt werden.


Peter
Gast #61052
Lesenswert?

Hi

Ich glaube kaum, daß der 8535 zu klein ist. Bei mir läuft ein
CAN-Knoten mit Taster, LED und RC5-Empfänger auf einem 90S1200 (15
IO-Pins) mit angeschlossenem 82C200 (Vorgänger des SJA1000).
Für die ganze Applikation hab ich knapp über 200 Worte gebraucht,
allerdings in Assembler.

Gruß
Eddi

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