SJA1000

Gast #384932
Lesenswert?

So endlich funktioniert meine Applikation SJA1000 am LPT Port.
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?
Gast #384934
Lesenswert?

Im Internet habe ich folgenden Text gefunden:

ECP: Extended Capability Port
Das ECP-Protokoll wurde von Hewlett Packard und Microsoft als
modifizierte Kommunikation zwischen Druckern und Scannern ausgewiesen.
Ähnlich wie das EPP-Protokoll unterstützt ECP die Parallelübertragung
mit hoher Geschwindigkeit zwischen Host-Adapter und Peripherie. Ferner
sieht ECP einen eigenen DMA-Kanal vor, FIFO-Pufferung für Hin- und
Rückkanal und Datenkompression nach dem Run_Lenght-Encoding (RLE)
Verfahren. Die zusätzlich erforderlichen ECP-Register können durch
aufaddieren von 0x400 auf die Basisadressen adressiert werden. Auch
hier sind mehrere Geräte adressierbar. Spezifikationen:
·  4 Kontrolleitungen HOSTCLK, HOSTACK, 1284ACTIVE, REVERSEREQUEST
(Ausgang)
·  5 Statusleitungen PERIPHCLK, PERIPHACK, ACKREV, XFLAG, PERIRQ
(Eingang)
·  8 Adress-/Datenleitungen D0 - D7 (Ein+Aus)
Es gibt zwei Arten von bidirektionalen Datenübertragungszyklen:
·  Data Cycles
·  Command Cycles
Hier ist das Extended Control Register (ECR) ganz interessant, das
unter der Adresse BASE + 0x402 zu finden ist.

Bit  Betriebs-Modus
7-5  000  Standard Mode
  001  Byte Mode
  010  Parallel Port FIFO Mode
  011  ECP FIFO Mode
  100  EPP Mode
  101  Reserved
  110  FIFO Test Mode
  111  Configuration Mode
4  ECP Interrupt Bit
3  DMA Enable Bit
2  ECP Service Bit
1  FIFO Full
0  FIFO Empty

Da für die im folgenden gezeigten Beispiele für die Hardwareansteuerung
die Modi EPP und ECP nicht verwendet werden, sei für diese auf die oben
genannte Webseite von Warp Nine verwiesen.
Bei allen Experimenten am Parallelport ist Vorsicht geboten, weil bei
unsachgemäßer Handhabung Kurzschlüsse für den Parallelport oder gar für
das gesamte Mainboard entstehen können. Die Ausgänge eines
Centronics-Ports halten einer Strombelastung von ca. 5-15 mA stand.
Dies reicht mit einem geeigneten Vorwiderstand (z.B. 270 bis 680 Ohm),
um eine LED zum Leuchten zu bringen. Möchte man Taster oder Schalter
direkt abfragen, so müssen die Eingänge über Pull-Up-Widerstände in
einen definierten High-Zustand gebracht werden und können dann gezielt
auf Masse geschaltet werden.

Wie kann man dieses Register benutzen und warum gibt es diess Register
überhaupt?
Gast #384936
Lesenswert?

Nun habe ich meine Applikation SJA1000 an LPT an einem anderen rechner
(Windows XP) drangehängt. Was mir da auffällt ist, dass die Botschaften
manchal nicht korrekt empfangen werden.

CAN.receive.byte[0];
CAN.receive.byte[1];
CAN.receive.byte[2];
CAN.receive.byte[3];
CAN.receive.byte[4];
CAN.receive.byte[5];
CAN.receive.byte[6];
CAN.receive.byte[7];

Das finde ich merkwürdig. genauso beim empfangen von Botschaften, da
kommt auch nur Misst an. Auf dem anderen Rechner Windows2000 da
funktioniert es prima. Liegt es vielleicht am Betriebssystem oder LPT
DLL?

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