mikrocontroller.net

Forum: PC-Programmierung SJA1000


Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es unter WIndows XP eine Möglichkeit, mit der ich feststellen kann
ob der ECP oder EPP Mode aktiviert wurde?
Wenn ich den LPT zum schreiben und lesen benutzen will, dann muss ich
im BIOS immer den LPT PORT auf EPP Mode umstellen.

Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeder PC ist standardmäßig auf den ECP Modus eingestellt.
Um vom ECP Modus in den EPP Modus umzuschalten ohne zuvor im BIOS was
abzuändern, kann man doch per Software das Register 0x402 auslesen und
anschließen den enstpsrechenden Wert übergeben oder?
Welche Wert müsste ich dann in das Register 0x402 übergeben?

Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gerhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

das Problem ist bereits gelöst. Und zwar habe ich zwischen LPT vom PC
und Applikation ein selbergebasteltes Kabel verwendet. Wenn ich die
Applikation direkt auf den LPT hänge dann funktioniert es problemlos.
Also es lang nur an dem scheiß kabel.

Autor: Milan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo.
Ich habe ein tester program fur windows XP.
Meine preise ist 2,5EUR.
sivak@praktickaelektronika.sk

Autor: micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
habe eine schaltung von elektor mit sja100 und 82c250
habe extra zwei stück davon gebaut um die komunikacion zwischen zwei pc
zu visualisiren aber es geht nicht . nach dem reset kann ich die
register von sja 1000 beschreiben aber es komt nichts bei dem andern an
was mache ich falsch ???

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie initialisiert man den sja 1000

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.