Zum Inhalt springen

Datentransfer PC->Microcontroller


RainerKa

Empfohlene Beiträge

Hallo,

für eine Anwendung brauche ich einen einfachen aber schnellen Datenaustausch zwischen einem PC und einem Microcontroller.

Der Parallelport des PC's mit 2 MByte sek im EPP Modus währe dafür ausreichend.

Mein Problem, wie kann ich Daten in beiden Richtungen über den Parallelport im EPP Modus übertragen.

Mit den Windows API Funktionen

Handle = CreateFile("LPT1", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

WriteFile(Handle, Data, byteszuschreiben, &bytesgeschrieben, NULL);

oder ReadFile

bekomme ich es nicht gebacken. Dort kann ich zwar Daten zu einem Drucker übertragen, wenn ich aber den µC anschließe hängt sich die Write Funktion auf. Auf dem µC läuft der Handshake für den EPP Mode.

Mit inpout32.DLL, komme ich auch nicht auf Geschwindigkeit.

Wie bekomme ich den Datentransfer im EPP Mode hin. ?

Gruß Rainer

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Eine möglichkeit wäre, daß der µC nicht mit der EPP-Version des PC zusammenarbeitet. Du solltest mal im BIOS nachschauen, ob Du den Modusauf eine ältere Version setzen kannst (EPP 1.7). Bei einigen Druckern wirkt das Wunder.

Dann ist die Frage, ob Du die Negotiation(aushandeln des Betriebsmodus) selber in Software lösen musst, oder ob der µC bzw der entsprechende Baustein das für Dich erledigt. Es könnte sein, daß der PC auf eine entsprechende Antwort vom µC wartet und ihn als "dummen Drucker" behandelt, wenn nichts kommt.

Es wäre auch interessant zu wissen, welchen µC Du verwendest und, wenn vorhanden, welcher Baustein sich um den Parallelport kümmert. Da kann ich dann vielleicht nicht viel zu sagen, aber jemand anderes könnte Rat wissen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Der µC ist ein c167, wo ich das Timing über einen Port programmiert habe.

Als Timingvorlage habe ich dieses genommem und den µC darauf programmiert

Interfacing the Parallel Port

Aber die Negotiation, ich programmierte bis jetzt immer nur µC oder FPGA's, PC habe ich bisher kaum programmiert, habe dem µC nur ein Handshake verpasst, wird dann wohl das Problem sein. Hast du da was zum Lesen, muß nicht unbedingt englisch sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, leider nicht. Ich habe mich mal grob mit dem Parallelport beschäftigt, er war aber für meine Anwendung zu langsam und ich habe mich darum nicht groß in die Materie eingelesen.

Ich glaube fast nicht, daß Dein Problem etwas mit der PC-Seite zutun hat, sondern der PC eben kein korrekt funktionierendes EPP-Gerät erkennt.

Hast Du es schonmal in den einschlägigen µC-Foren versucht? Da hat sicher schonmal jemand mit EPP gearbeitet.

RoboterNetz.de :: Index

News - www.mikrocontroller.net

Ich kann leider erstmal nicht weiterhelfen, es würde mich allerdings interessieren, wie es mit Deinem Projekt weitergegangen ist, bzw welche Lösung zum Ziel geführt hat.

P.S.: Reicht die RS232 nicht für Deine Zwecke? Lässt sich dann schnell und einfach mit dem max232 realisieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Trotzdem Danke.

RS232 langt nicht, brauche ungefähr 200000 kByte sek, ein wenig schneller ist auch nicht verkehrt.

Wird wohl so sein das der PC kein EPP Gerät erkennt, wollte eigendlich nicht in den tiefen Wirren des Windows Betriebssystems umherirren. In anderen Foren habe ich auch schon gefragt, außer Roboternetz, kenn sich anscheinend Keiner so richtig mit aus :(

Dachte Parallelkabel anschließen Windows API Funktionen aufrufen und das wars, falsch gedacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das problem ist gelöst :)

ihr seit mir Spezis, zumindest hab ihr versucht mir zu helfen, ist

ja schon mal was, danke.

Wie komme ich nun an den Parallelport des PC ran, mit inpout32.dll und

wie kann ich den EPP Mode nutzen.

Nach stundenlangem wühlen im Müll des Internetes, habe ich die Perle

gefunden.

Der Port kann den Handshake für den EPP Mode selber machen,

man muß nur in die Basisadresse + 3 für die Adressübertragung und

Basisadresse + 4 für Datenübertragung reinschreiben/auslesen, der Rest

läuft dann von alleine. Nun komme ich auch um einiges über die

angestrebte Geschwindigkeit so um und bei schaffe ich jetzt 300000 Bytes pro Sekunde, wobei der µC der Zeitfresser ist, werde wohl einen FPGA anstelle des µC nehmen, das läuft dann Hardwaremäßig, für die Datenübertragung.

Möglich ist, das da irgend wo noch ein Haken ist, das werde ich noch

rausfinden.

Gruß Rainer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...