Hallo, ich habe mir einen kleine Platine gebastelt, da drauf ist ein SJA1000, den ich über die LPT ansteuere. Die LPT kann ich auch problemlos mit einer DLL ansprechen. Ich hab mir mal ein kleines Progrämmchen mit dem orland Builder C++ geschrieben. Mit dem will ich den SJA1000 ansprechen. Was mir da auffält ist das sich der SJA1000 gar nicht initialisieren läst. Zur kontroller habe ich ein Tool heruntergeladen, mit dem ich die einzelnen PINS der LPT überwachen kann. Das sehe ich dann, das mein Programm versucht den SJA1000 zu initialisieren.Ich hab sogar mal ein Register beschriben zB. Rigister 6 und dieses habe ich dann auch gleich wieder ausgelesen. Da bekomme ich auch immer den wert 255 zurück. Ich verstehe das nicht. Den Schaltplan habe ich von dieser seite http://www.cantronik.com/. Der Resonator 8Mhz am SJA1000 funktioniert. Die +5V liegen auch an.
Hallo Gerhardt, ich habe mir vor einiger Zeit diese Canbus-Platine nachgebaut: http://pinguin.sauerland.de/can200.html Allerdings hatte ich das unter Linux getestet. Windows bin ich noch nicht zu gekommen. Dabei hatte ich ähnliche Probleme wie Du. Mittlerweile läuft sie einwandfrei. Wenn ich mich richtig erinnere, war der Reset nicht auf 5V gelegt in einem der beiden Layouts. Such mal im Code-Forum. Da gab es ähnliche Probleme mit dem SJA1000 unter Windows. Du musst den Mode des PArallel-Ports umschalten so dass er in beide Richtungen läuft. Grüße Andreas
Danke Andreas, ich doch ohne weiteres die Schaltung so aufbauen wie auf dieser Seite http://www.cantronik.com/ , oder? Ja die LPT funktioniert prima. Vielleicht liegt es auch daran, dass ich vielleicht doch nicht von der LPT lesen kann. Kann mir jemand sagen welche DLL am besten dafür geeignet ist, und welchen Mode oder Einstellung ich machen sollte? ich verwende das Btriebssystem Windows XP!
Korrektur: Danke Andreas, ich kann doch ohne weiteres die Schaltung so aufbauen wie auf dieser Seite http://www.cantronik.com/ , oder? Ja die LPT funktioniert eigentlich prima. Vielleicht liegt es auch daran, dass ich vielleicht doch nicht von der LPT lesen kann. Kann mir jemand sagen welche DLL am besten dafür geeignet ist, und welchen Mode oder Einstellung ich an der LPT machen sollte? Ich verwende das Betriebssystem Windows XP!
Hmmm...im Bios kann man ja die LPT einstellen. Da gibt es ein SPP und EPC usw. Modus. Was genau müsste man einstellen um richtig von der LPT zu lesen bzw schreiben?
Hallo Andreas, ich hab mir mal diese Seite angeschaut: http://pinguin.sauerland.de/can200.html Da gibt es ein Schaltplan, der in Eagle angefertigt wurde. Ich habe bei mir kein Eagle installiert. Gibt es auch noch eine andere Möglichkeit damit ich den Schaltplan sehen kann?
Eagle Demoversion kannst Du bei www.cadsoft.de downloaden. Nettes Programm, immer gut, wenn man es hat.
Guten Abend, ich habe meine Schaltung nochmals überprüft. Scheint alles ok zu sein. Ich habe im BIOS bei LPT EPP eingestellt. Jetzt kann ich auch meinen SJA1000 via LPT initialisieren. Um zu Testen ob die Botschaften gesendet werden können, verwende ich einen USB PEAK CAN DONGLE. Der SJA1000 von diesem DONGLE wird mit 16Mhz versorgt. Mein SJA1000 mit 8Mhz. Ich habe alles mögliche versucht, aber ich kann nichts empfangen. Kann jemand meine Funktion überprüfen ob diese stimmt? (Baudrate 100kBit/s; Intel Mode) /*----Initialisierungsroutine für den CAN-Controller SJA1000------------*/ void TForm1::can_init(void) { do { canreg_write(0,0x01); } while (((canreg_read(0)) &0x01)==0); canreg_write(4,0xFF); canreg_write(5,0xFF); canreg_write(6,0xC1); canreg_write(7,0xEB); canreg_write(8,0x00); canreg_write(31,0x07); do { canreg_write(0,0x00); } while (((canreg_read(0))&0x01)==01); canreg_write(1,0x0C); } Sind die Register6 (BusTiming0 Register), Register7 (BusTiming1 Register) und Register8 (Output Control) richtig so eingestellt? Beise Teilnehmer habe ich sowohl mit 60Ohm verbunden, sowie ohne Widerstand zwischen CAn LOW und CAN HIGH.
Register 6 und 7 habe ich jetzt schon 1000mal verändert. Ich war schon auf sämtlichen Internetseiten, wo man die Taktfrequenz vorgibt und die gewünschte Baudrate, aber leider hilft das auch nichts! Oder Vielleicht liegt es auch noch an dem Register 8? Grr....
Ich würde mich echt freuen, wenn mir einer bei meinem Problem helfen könnte. Ich drehe mich die ganze Zeit im Kreis herum. Ich vermute mal das die Einstellung dieser Register 6,7,8 nicht stimmen. canreg_write(6,0xC1); canreg_write(7,0xEB); canreg_write(8,0x00);
Verdammt! Ich bin am Ende. Gibt es hier in diesem Forum einen, der sich sehr gut mit dem Can Baustein SJA1000 auskennt?
Juhu ich kann endlich Botschaften senden und empfangen. Ich habe den PIN5 von CAN Traciever 82C250 auf +5V gelegt. Das Register 8 (OCR Register) da habe ich nicht so den Durchblick über die genaue Funktionsweise. Das Register habe ich bei mir mit dem Wert 0xEA initialisert. Siehe da es funktioniert. Wenn ich während dem Betrieb die Spannung vom SJA1000 unterbreche oder den SJA1000 komplett von der LPT trenne und anschließend alles wieder anschließe, dann kann ich weiterhin die gleichen Botschaften senden und empfangen. Normalerweise müsste ich doch erst den SJA1000 ganz neu initialisieren, weil ich die Spannung zuvor abgeklemmte habe oder? Gibt es eine Möglichkeit den SJA1000 abzuschalten, bzw. so dass man ihn neu Initialiseren muss?
@wolf4124: Ich habe das nur unter Linux getestet. Mir eine Software unter Windows zu schreiben, dazu bin ich noch nicht gekommen. Aber vielleicht kann Dir Gerhardt jetzt weiterhelfen. @Gerhardt. Das verstehe ich bei Dir nicht. Wenn ich die Platine abgelemmt habe, dann musste ich den neu initialisieren. Wenn Du den nur vom LPT abklemmst, dann kann das schon sein, dass die Initialisierung erhalten bleibt. Bei mir hatte der eine eigene Stromversorgung. Grüße Andreas
Die +5V für die Versorgung nehme ich vom USB Anschluss. Gibt es ein Bit in einem Register womit man den SJA1000 wirder auf Null setzten kann? Oder kann ich den REset Pin vom SJA1000 auch auf den LPT Port legen und dann den SJA1000 zurücksetzten? Das müsste doch auch gehen oder?
>Oder kann ich den REset Pin vom SJA1000 auch auf den LPT Port legen > und dann den SJA1000 zurücksetzten? Das müsste doch auch gehen > oder? Das würde ich so machen. Müsste funktionieren In einer der beiden Schaltungen, die ich Dir oben genannt habe, wird das so gemacht. Grüße Andreas
Hat jemand Treiber und Unterlagen zu dem CANTRONIK Dongle ? hab das hier liegen, aber anscheinend gibt es die Firma nicht mehr danke michael@akramer.de
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.