Forum: Mikrocontroller und Digitale Elektronik STK500 und Port`s


von Samy (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag

Habe mich die letzten Tage mit dem ansteuern eines LCD`s 2x20
beschäftigt. Funktioniert auch ganz gut bis auf ne Kleinigkeit!
Steuere das Display mit einem STK500 auf dem ein 90S8515 arbeitet an.
So PortA steuert DB0-DB7 des Displays an. PortD steuert RS=PD2 R/W=PD3
und E=PD4 des Displays! Funtzt prima!!!!!!

So wenn ich jetzt E auf PD0 lege (Source-Code natürlich angepasst)
spinnt das Display d.h es läßt Zeichen aus oder zeigt falsche an! Das
selbe Prob habe ich wenn ich E mit irgendeinem Bit des PortB steuern
will!
Das Ansteuern von LED`s funktioniert mit allen Ports also ist der AVR
i.O.!
Das ist doch nicht normal, oder?
Hat der Controller ne Macke oder das STK!
Habe die Vermutung das der AVR eventuell keinen sauberen Kontakt zum
Board hat da die IC-Fassungen erstens recht billig sind und zweitens
recht oxidiert (Habe das Bord seit nem Monat)!
Wenn dem so ist das es vom Board kommt ist es dann ein Garantiefall?

von Markus Oberschaetzl (Gast)


Lesenswert?

Hi,

also zu den Ports des STK500 habe ich mir auch schon ein paar gedanken
gemacht: Wenn ich einen PIN des AVR auf 1 setze, geht die LED aus.
Konnte mir die Ursache aber nicht aus der Anleitung erschließen.
Deshalb: Probiere es mal mit einer invertierten LCD-Ansteuerung.

gruß Markus.

von Samy (Gast)


Lesenswert?

Hallo

Schau dir mal das Tutorial an auf dieser Seite

http://www.mikrocontroller.net/tutorial/io-basics.htm

Die LED liegt mit der Anode (+) an VCC (Betriebsspannung) und die
Kathode (-) der LED liegt am I/OPin des AVR.
Wenn der I/OPin High-Signal hat, also +5Volt kann die LED nicht
leuchten da beide Anschlüsse der LED auf +5Volt liegen.
Wenn der I/OPind Low-Signal hat, also GND leuchtet die LED da der eine
Anschluß auf GND und der andere Anschluß auf +5Volt liegt.

von Uwe Arends (Gast)


Lesenswert?

Samy,

wahrscheinlich 'ne blöde Frage, aber hast du die Pins, an denen du E
erzeugen willst im entsprechenden (Datenrichtungs-)Register auf
"Ausgang" gesetzt?

groetjes
-uwe

von Samy (Gast)


Lesenswert?

Ist ne blöde Frage! Na klar!!!

P.S. Habe nicht umsonst meinen Source-Code hier zum download gestellt!

von Uwe Arends (Gast)


Lesenswert?

Sorry, das mit dem Sourcecode hab' ich übersehen!
Aus dem geht allerdings auch nicht hervor, wie du mit DDRB im Falle von
E auf PortB umgehst!
PD0: wenn du RXEN in UCR gesetzt hast , also Serielles empfangen
willst, ist das ein Eingang.
Zum Thema Wackelkontakt: Miss doch das erzeugte Signal mal nach.

von Samy (Gast)


Lesenswert?

Das PortB als Eingang konfiguriert war ist ausgeschlossen, da sonst das
Display überhaupt nicht funktioniert hätte!
Habe den Verdacht das die Datensignale nicht immer sauber übertragen
werden!
Nachmesen würd ich gern aber dazu brächte ich ein Oszi weil der Fehler
anscheinend nur bei höheren Frequenzen auftritt! Bei Dauersignal
(steuern von LED`s) funktioniert PortD.
Da kein Oszi vorhanden habe ich mal Reichelt wegen dem Fehler
angeschrieben. Antwort-->Sie können es gerne zu Atmel schicken zum
prüfen bzw.Rep oder Garantie!
Werd ich wohl einsenden und nen Monat warten müssen bis das Board
wieder da ist!

Habe ne Woche nach dem Fehler in meinem Source-Code bzw. Schaltung
gesucht bis ich auf das mit PortD gekommen bin. Das tue ich mir nicht
nochmal an da sollen sie das Teil auf Herz und Nieren Prüfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.