PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : crumb128 CAN initialisierung



hugo1234
04.12.2008, 10:45
Hallo liebe RoboterNetzler,

ich habe hier einen crumb128 BoardV 3 auf dem der CAN transceiver integriert ist.
Die PINs CANH und CANL vom Controller habe ich direkt auf den CAN-Bus gelegt. Meine erste Frage lautet jetzt, ist das so korrekt?

Des weiteren weiß ich nicht recht wie ich den CAN-Controller korrekt initialisieren muss. Wäre super wenn ihr mir da weiter helfen könntet.

Vielen Dank schonmal für eure Hilfe.

Freundliche Grüße!

McJenso
04.12.2008, 15:38
Hallo,

ein Link zum Datenblatt währe schön. Was ich so auf die Schnelle gesehen habe ist, dass bei der CAN Version ein Bustreiber inklusive ist. Du musst den Bus mit CAN-L und CAN-H des Bustreibers verbinden. Der Bus geht nicht direkt an den Controller!
Schau dir mal www.kreatives-chaos.com (http://www.kreatives-chaos.com/artikel/can) an. Dort gibt es viele Infos zu CAN und eine Bibliothek. Die Bibliothek nutze ich zwar nicht, habe mir den Quellcode aber für meine bisherigen Versuche mit dem AT90CAN zu Hilfe genommen.

Gruß

Jens

Edit: Kosmetik

hugo1234
05.12.2008, 10:23
Hey Jens,

danke für deine schnelle Antwort und für den Link, der wird mir sehr weiterhelfen!
Hier mal ein Link zum Infosheet http://www.chip45.com/download/Infosheet_Crumb128_080715.pdf und zum Schaltplan http://www.chip45.com/download/Crumb128_V3.0_Schematic.pdf des Crumb128 V3.0

Ich muss mich korrigieren. Die PINs CANH und CANL gehen wie du schon sagst nicht direkt auf den Controller sondern auf das Board. Das heißt diese PINs gehen dann in den integrierten CAN transceiver.
Ich versteh aber nicht, was das mit diesem Bustreiber auf sich hat? Heißt das ich kann mit CANH und CANL nicht direkt auf den Bus gehen?

Freundliche Grüße

T.J.
05.12.2008, 10:55
CANH und CANL sind die Anschlüsse direkt am Bus. Was zwischen Transceiver und Controller ist heißt CANTX und CANRX

McJenso
05.12.2008, 14:04
Hallo,

was du als CAN Transiver bezeichnest, habe ich Bustreiber genannt. Das passt schon.
Im Schaltplan ist die linke Seite des PCA82C250 nicht weiter beschaltet. Wenn der Pin8 in der Luft hing, funktioniert das bei mir nicht. Da gehört entweder ein Widerstand oder eine Brücke nach GND dran. Bisher bin ich mit einer Brücke gut gefahren.
Event. muss du noch einen 120Ohm Widerstand als Busabschluß nehmen. Ist halt erforderlich, wenn dein Teilnehmer den Bus abschließt (erster oder letzter). Der Widerstand kommt dann von CAN-H nach CAN-L. Vielleicht ist das auch schon vorhanden. Im Schaltplan habe ich es nicht gefunden.

Gruß

Jens

T.J.
05.12.2008, 14:17
Ja, das ist der RS (slope) widerstand. Steht aber genau im Datenblatt wie man den benutzt.
Kurz für dich: 5V (standby), GND (high speed), 3,3kohm (low speed)

funktionierende Beispielschaltung:
http://blog.cc-robotics.de/2008/10/12/evaluationboard-fur-at90can-tqfp64/

hugo1234
09.12.2008, 11:25
Hey ihr beiden,

vielen Dank für eure Hilfe! Jetzt funktionierts. Musste nur noch den PIN Rs auf GND setzen :-)

Freundliche Grüße

T.J.
09.12.2008, 11:33
Jo, freut mich. Nochwas zu Rs: die Erfahrung zeigt, dass es für Highspeed mit 120ohm nicht immer 100% funktioniert. Besser ist es den Widerstand auf 0ohm zu ziehen, d.h. direkt an Masse.

McJenso
09.12.2008, 15:39
Hallo,

die 120Ohm sind der Wert für den Busabschluss. Das hat mit dem RS-PIN nichts zu tun. Der Busabschluß ist bei einem Endteilnehmer notwendig und gehört zwischen CAN-H und CAN-L.


Gruß

Jens

T.J.
09.12.2008, 17:41
Hä? Ich redete vom Rs, das ist der Slope control Widerstand! Dass der Busabschluss 124Ohm betragen muss (im Hausgebrauch jedenfalls) ist mir klar.


Das hat mit dem RS-PIN nichts zu tun.

Korrekt. Davon redete ich ja auch nicht.

hugo1234
09.12.2008, 17:46
Hoi,

also ich habs hin bekommen. Am Pin RS hat die Masse gefehlt. ansonsten hat alles gestimmt.

danke.

Dextro
05.02.2011, 17:29
Hi, erstmal sorry dass ich den Beitrag wieder ausgrabe. Ich habe ein ähnliches Problem.

Ich habe ein Programm geschrieben, dass soweit funktionieren sollte. Nun zu meinem Problem.

Ich besitze 4 crumb128.

1. nicht selber gelötet, sitzt auf einer platine
2,3 selber gelötet
4 nicht gelötet.

So, das Programm habe ich auf alle 4 Module gespielt. Auch auf den 4ten, habe dafür die pins nicht gelötet sondern nur reingesteckt.

Rs Pin ist bei allen mit GND verbunden. Versorgung steht.

Das Programm funktioniert einwandfrei auf Modul 1. Wie gesagt diesen habe ich nicht selber gelötet.

2,3 funktionieren nicht. Dachte vielleicht beim löten geschrottet, aber bei 4 kommen genau die selben Errors.

Ich betreibe meine Auswertung mit CANoe von Vector. Ich erhalte stuffing errors, errors im ACK Slot, und irgendwelche dominant bit errors.

Muss man noch irgendetwas anderes machen als Rs mit GND zu verbinden?

Ich habe nur einen Abschlusswidestand, sollte aber bei der kurzen CAN Leitung(10cm) kein Problem sein. Mit Modul 1 tut ja alles und da ist 100% auch kein Ablusswiderstand dran.

Ich hoffe es kann mir wer helfen.

Grüße