LCD und UART am selben Port

Gast #89557
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 #89558
Poste mal die Schaltung. Welches Display ist es? Vielleicht kannst Du
das Display im 4-Bit-Modus betreiben oder seriell, damit die UART-Pins
freiwerden.

Stefan
Gast #89559
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
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
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
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 #89563
Software-UART hört sich sehr verlockend an. Gibts hier fertige Module,
und wie aufwändig wird die Geschichte dann?

Danke jedenfalls für den Tipp!!

Andi
Gast #89564
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.