Forum: Mikrocontroller und Digitale Elektronik myAVR Board MK3 PLUS LCD Ansteuerung


von Jochen (Gast)


Lesenswert?

Guten Abend,
ich verwende das myAVR Board MK3 PLUS.
Die Ansteuerung vom LCD-Display ist mir nicht klar.
Auf
www.myavr.info/download/produkte/myavr_board_mk3/techb_myavr-board-mk3_d 
e_en.pdf
Seite 8 ist die Anschaltung zum ATMEGA 2560 skizziert.
Wieso sind dort insgesamt 4 IC's mit einbezogen? Auch nach dem Ansehen 
der Datenblätter ist mir nicht klar,was die in der Schaltung bewirken.

Wie kann (C++) das Display angesteuert werden, z.B. möchte ich Text 
darstellen oder grafische Elemente. Wahrscheinlich muss eine Bitfolge an 
das Display geschickt werden. Wie kann man vorgehen um das Display 
anzusteuern?

Schönen Dank,
jo

von Karl (Gast)


Lesenswert?

74LVX3245:

"The LVX3245 is a dual-supply, 8-bit translating transceiver that is 
designed to interface between a 3V bus and a 5V bus in a mixed 3V/5V 
supply environment."

Also 3V <> 5V.

74VHCT245: Octal bus transceiver.

T/R ist dauerhaft auf GND. Nach Logiktabelle schaltet OE (über P1/2/3) 
von B nach A oder HIGH-Z (Hochohmiger Zustand).

von Jochen (Gast)


Lesenswert?

Hallo Karl, danke für Deine Antwort!
74LVX3245 ist mir jetzt klar.
Deine Beschreibung vom 74VHCT245 verstehe ich nicht ganz. Wozu ist das 
gut, dass diese Durchschaltungen notwendig sind?

Wie kann das Display nun konkret angesteuert werden(Text, Grafiken)? Wo 
steht da was zu?

von Karl (Gast)


Lesenswert?

Jochen schrieb:
> Wie kann das Display nun konkret angesteuert werden(Text, Grafiken)? Wo
> steht da was zu?

Da bin ich überfragt. Ich würde mich einfach an den Beispielen 
orientieren:

http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl158

Jochen schrieb:
> Deine Beschreibung vom 74VHCT245 verstehe ich nicht ganz. Wozu ist das
> gut, dass diese Durchschaltungen notwendig sind?

Ich denke, das wird hier erläutert.

"Das myAVR Board MK3 besitzt für alle Komponenten eine
"quick connect option"; d. h. alle Geräte können per Jumper
sofort zugeschalten oder bei Bedarf frei verdrahtet
werden."

Der Jumper steuert den 74VHCT245 zwischen "sofort zugeschalten" und 
"frei verdrahtet".

von Jochen (Gast)


Lesenswert?

Danke für deine Antwort! Durch die Jumper habe ich die Verbindung 
hergestellt. Jetzt ist in dem Paket die Software Sissy, die fertige 
Klassenbibliotheken zur Ansteuerung mitliefert. Ich möchte, nach der 
korrekten Zuschaltung der Leitungen, das Display aber in C++ von Grund 
auf, ohne Klassenbibliotheken ansteuern (Hintergrund ist, dass ich AVR 
Studio verwende und m.E. dies Bibliotheken nicht zur Verfügung stehen).
Leider bin ich überfragt. Gibt es sowas wie eine Anleitung, welche 
Bitmuster geschickt werden müssen, um einen Text (Bsp in ASCII ) 
anzeigen zu können?

Grüße,
jo

von Karl (Gast)


Lesenswert?

Mit C kenne ich mich nur wenig aus. Vielleicht kann ja einer der 
C-Profis weiterhelfen. Ansonsten würde ich auf das Tutorial verweisen:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

Pinbelegung und Frequenz musst Du entsprechend anpassen.

Du meinst aber bestimmt das GLCD auf dem Board. Evtl. ist das der 
richtige Beitrag:

Beitrag "Library für EA-DOGM Grafikdisplays inkl. Font-Generator"

von Jochen (Gast)


Lesenswert?

Danke, ich schaue mir die Lib an..

von Jochen (Gast)


Lesenswert?

> Da bin ich überfragt. Ich würde mich einfach an den Beispielen
>orientieren:

>http://shop.myavr.de/index.php?sp=download.sp.php&;...

In dem Beispiel zum LCD kommt die Funktion cbi und sbi und WaitMs vor, 
die nicht deklariert ist und auch zu einem Compiler Fehler führt.

Sind Imports notwendig? Wenn ja welche?

von Jochen (Gast)


Lesenswert?

Hallo, ist
cbi(PortLcdCtrl,0);

gleich mit
PortLcdCtrl|= (0<<PB0);

und weiter

sbi(PortLcdCtrl,4);
gleich mit
PortLcdCtrl|= (1<<PB4);

Vielen Dank!

von spess53 (Gast)


Lesenswert?

Hi

>Hallo, ist
>cbi(PortLcdCtrl,0);

>gleich mit
>PortLcdCtrl|= (0<<PB0);

Nein. Das verodern mit einer 0 bewirkt nichts.

PortLcdCtrl&= ~(1<<PB0);

>und weiter

>sbi(PortLcdCtrl,4);
>gleich mit
>PortLcdCtrl|= (1<<PB4);

Ja.

MfG Spess

von Jochen (Gast)


Lesenswert?

klingt logisch. Danke Dir!

von Jochen (Gast)


Lesenswert?

Das Programm ist nun auf dem Controller.
Die Taktrate (16 MHZ) stimmt überein.
Jedoch wackelt das Bild, bzwl läuft viel zu schnell.
Nur beim Reset vom Prozesoor oder beim Abkapseln des LCD(über Jumper) 
ist der Text zu sehen. Woran kann das liegen?

von Jochen (Gast)


Lesenswert?

Ps
Die Funktion waitMs, die in dem Beispiel vorkommt, aber im AVR Studio 
nicht zugreifbar ist, habe ich wie folgt programmiert
1
void waitMs(int zeit)
2
{
3
  int count = 0;
4
5
  while(count <= zeit) {
6
    count++;
7
  }
8
}
Vielleicht liegt das flackern daran?

von Jochen (Gast)


Lesenswert?

Hallo, ich habe das Problem selber gelöst. Die Zeichnungen auf dem 
Display werden nicht in einer Schleife wiederholt.  Dadurch,d ass die 
Verzögerungsroutine fehlerhaft war (s.o) ging alles zu schnell.

von Jochen (Gast)


Lesenswert?

Nach weiteren Tests muss ich feststellen, dass die Konstruktion nur 
direkt nach dem Brennen funktioniert.
Wennd er Controller vom Strom genommen und angeschlossen wird, klappt es 
nicht mehr. Nur direkt nach dem Brennen.
Ich habe recherchiert und die Bibliothek bereitet wohl allgemeine 
Probleme. Deswegen habe ich auf
http://myavr.info/myforum/viewtopic.php?p=11055#11055
noch einen Beitrag abgesetzt. Falls jemand von Euch ein Problem hat, 
freue ich mich über Hinweise.

von Christoph H. (christoph_b)


Lesenswert?

kennst du schon diese Webseite?
www.mikrocontroller-4u.de

von Jochen (Gast)


Lesenswert?

Nein, noch nicht. Super Seite, danke!

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.