PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : daten übertragung von lpt zu µ-controller



FJK
04.02.2005, 16:37
hallo

ich hoffe ich bin im richtigen bereich 8-[

ich möchte an meiner schnittstelle (LPT) ein µ-controller (sab 80c517) ansteuern (unter c++ borland 5.0 und win 98) der µ-controller wird in c programmiert.
am controller soll ein LCD-display (161A von displaytech) angeschlossen werden.

das programm soll ein edit feld enthalten, wo ich den text eingeben will der auf dem display ausgegeben werden soll.
das display muss mit 8-bit angesteuert werden.
das eigendliche programm bekomme ich hin (ein und ausgeben auf dem lpt), ich brauche nur hilfe für die daten übertragung zwischen pc und µ-controller.
das problem was ich jetzt habe ist das ich nicht alle 8 möglichen ausgänge von meinen lpt benutzen will. gibt es da irgendwelche tricks

NumberFive
05.02.2005, 10:36
wenn ich das richtig sehe da der controller doch zei seriale infaces warum benutz du nicht die ? sind weniger ports und die Übertragung währe ein fachen.

Aber wenn du unbedingt parallel arbeiten willst aber nicht alle acht pins nehmen willst muß du irgendwie ein künstliche serial über tragung basteln.

Könnte mir so was vor stellen ein pin sagt gültig oder nicht und zwei schaufeln die daten rüber. 8 bit immer in 2 bit schitten.

Das problem ist hal nur der Sync das du die 2 bit wieder richtig zu sammen baust.

A = 65 = 01000001

Step 1:
PinA 0
PinB 1
PinC 1


Step 2:
PinA 0
PinB 0
PinC 1

Step 3:
PinA 0
PinB 0
PinC 1

Step 4:
PinA 0
PinB 1
PinC 1

Nun ist das A drüben.

Ich hoffe du verstehst das

Gruß

FJK
06.02.2005, 10:13
hallo

ich habe mir das so vorgestellt

1. leitung sagt dem µ-controller das ein bit an der zweiten leitung zum aufzeichnung bereitliegt.
2. leitung überträgt die acht bit nacheinander
3. leitung schickt der µ-controller ein signal wenn er das bit erhalten hat.

also:

A = 65 = 01000001

pin a = 1 // sagt dem controller es liegt ein bit an
pin b = 0 // ist der eigendliche befehl

pin c = (wenn µ-controller signal bekommen hat, schickt der µcontroller) 1

pc = signalisiert an pin c ein 1 signal also schickt er die nächste frequenz los
pin a = 1
pin b = 1

pin c = (wenn µ-controller signal bekommen hat, schickt der µcontroller) 1
.
.
.
usw
dauert halt länger da ich nur eine "datenleitung"

klingt etwas komplieziert aber ich glaube da habe ich keine problemme mit der synkroniesation, da der µ-controller ein bereitsignal zurückschickt, wenn er bereit zur nächsten übertragung ist.

aber was meinst du mit: "zei seriale infaces warum benutz du nicht die?" damit
kannst du mir das nochmal erklären?

NumberFive
06.02.2005, 10:33
doch hast ein prolem mit sync da du am mircocontroller nicht weißt wann es los geht.

genau was du da beschreibst währe eine Seriale übertragung. nur halt mit deinem eingenen protokoll. es gibt da ein standart protokoll sag ich jetzt das nennet sich rs232 das müsste dein controller auch können wenn ich das auf datenplatt richtig gesehen habe. ich wahrseinlich nur ein problem
mit dem pegel aber es gibt ja den max232 der mach die pegel an passung
machen hier alle so.

ist jetzt klarer was ich meine ?
Ich habe was von einem Baudrate generator gelesen

FJK
06.02.2005, 11:03
hallo

daher habe ich ja die erste leitung die dem controller sagt das da ein signal anliegt, das signal liegt solange an bis der controller ein "fertig" signal rausschickt.

rs232
also sind das protokolle die includen muss oder was??

noch eine frage kann ich denn controller direckt am lpt-port aschließen oder mach ich da irgendetwas kaput

NumberFive
08.02.2005, 10:34
also wie das mit dem pegel auf dem prallel port ist weiß ich nicht so genau bei rs232 braucht du einen pegel wandler.

http://info.electronicwerkstatt.de/bereiche/stecker/parallel.html

laut der seite sollte aber bei der parallen das dirrect gehen (kein garantie)

zu rs232:

http://www.engelmann-schrader.de/handbuch/mcb517.pdf
und nach rs232 suchen

http://www.c51.de/c51.de/Dateien/Baugruppen.php?UIN=
hier steht auch noch was zum Thema

Gruß

lorcan
08.02.2005, 11:22
Du kannst das das LCD auch direkt an die Parallele Schnittstelle hängen, dann brauchst Du zwar min. 6 Datenleitungen, aber derartiges gibt es schon und Du musst Dich nicht mit µControllern rumschlagen und kein neues Protokoll erfinden.
Die Pegel am LPT sind übrigens TTL-kompatibel, haben also +5V.
Bei der Seriellenübertragung würde ich Dir einen Takt zur synchronisation empfehlen, da asynchrone Datenübertragung nicht ganz einfach ist. Oder wie schon von NumberFive vorgeschlagen die serielle Schnittstelle, da kannst Du dann auch ganz leicht mit einem Terminalprogramm Deine Displayansteuerung testen.