LCD und UART am selben Port

Gast #89557
Lesenswert?
• ▲
▼
Hallo!

Ich hab einen ATmega8 mit LCD Display an Port D (da ich die Platine
nicht ändern will, kanns nicht Port B sein). Wenn ich jetzt noch
zusätzlich die serielle Kommunikation verwenden will, ist das durch
dementsprechende Softwareänderung überhaupt möglich? Hat jemand sowas
schon gemacht?

lg
Andi
Gast #89559
Lesenswert?
• ▲
▼
Es handelt sich um ein HD44780-kompatibles Display, wie im Tutorial. Die
Initialisierung stammt vom CodeWizard von CodeVision, müsste also im
4Bit Modus laufen. Hier sind dann insgesamt 7 Pins des Prozessors
belegt.

Andi
Gast #89560
Lesenswert?
• ▲
▼
Hi,

wenn die UART-Pins sich die Datenpins des LCD teilen, müsste es gehen.
Problematisch ist es nur, wenn es die Steuerpins sind, da könnte das
LCD meinen, ein Befehl wird gesendet, wenn am UART was passiert.

Sendest Du aber keine Befehle per Steuerpins an das LCD, kannst Du auf
den Datenpins machen, was Du willst.

Sebastian
Gast #89561
Lesenswert?
• ▲
▼
Ja, das ist ja das Problem. Die Steuerpins hängen am Pin 0 bis 2 (RS,
R/W, Enable) vom Port D, genau dort wo der RxD (Pin 0) und TxD (Pin 1)
des mega8 liegt. Die Datenpins hab ich an den Pins 4-7 vom Port D
hängen.
Vielleicht sollte man das Display mittels Enable irgendwie wegschalten,
wenn man UARTet, und umgekehrt. Mal ausprobieren...

Andi
Gast #89562
Lesenswert?
• ▲
▼
Sehe ich als sehr schwierig an, das ohne Layoutänderung zu machen.
Du kannst zwar per TXD senden, ohne dass das Disply beeinträchtigt
wird. Aber wenn Du aufs Display ausgibst, wackelt der TXD-Output der
RS232, was Pseudodaten auf der seriellen Schnittstelle verursachen
kann.

Noch schlimme rist es mit der RXD-Leitung: für die RS232 musst Du sie
als Eingang (am mc) konfigurieren, für das lcd als Ausgang. Du hast
also einen Kurzschluss zwischen RS232-Treiber und mc, wenn Du fürs LCD
konfigurierst.

Wäre vielleicht ein Software-UART eine Lösung für Dich? Dann kannst Du
als RXD/TXD beliebige Pins nehmen. Ansonsten sehe ich keine andere
Möglichkeit außer Fädeln.

Stefan
Gast #89564
Lesenswert?
• ▲
▼
Ich selbst habe das bisher nur auf einem Nicht-AVR gemacht, kann Dir
also nicht weiterhelfen. Ich habe hier aber schon öfters drüber
gelesen, schau mal die Code- oder Linksammlung durch.

Oder frag Peter Danegger, der hat schon alles mal programmiert ;-)

Hardwareseitig bist Du nicht festgelegt, d.h. der RS232-Treiber soll
irgendwo extern aufgbaut werden?

Stefan

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