Forum: Mikrocontroller und Digitale Elektronik Probleme mit Wintek 2704 am STK500


von Stefan M. (interceptor)


Lesenswert?

Hallo Leute

Ich bin Anfänger im Bereich der Microcontroller und habe hier ein STK500 
sowie das STK501

Mit diesem Versuche ich ein Display namens Wintek 4x27 von Pollin ans 
laufen zu bekommen.

Ich programmiere in C und benutze die Lib von Stefan Seegel.

Angeschlossen ist das Display an einem Port, die Anschlüsse sind wie in 
der Header-Datei angegeben bis auf den Offset. Den habe ich auf 0 
geändert, da ich ja alle Pins über einen Port betreiben will.

Als CPU benutze ich einen ATMega128 der mit internem Osszilator auf 4MHz 
betrieben wird.

Ich benutze die Beispiel Datei von Stefan und nichts klappt.
Zeile 1 zeigt einen Balken.
Zeile 2 zeigt nichts.
Zeile 3 und 4 zeigen auch einen Balken, allerdings mit verminderter 
Intensität.

Ich habe auch schon verschiedene Ports durchprobiert. Kein Erfolg.

Ob die CPU überhaupt was macht, habe ich insofern getestet indem ich den 
Port wo das Display dranhängt einfach mal die LED`s vom STK drangehängt 
habe.

Da blinkt dann auch einiges.

Ich hoffe Ihr könnt mir helfen.

Mit freundlichen Grüßen

Stefan

von Pete K. (pete77)


Lesenswert?

Bitte poste mehr Infos. So können wir nur raten ...

- RW richtig angeschlossen ?
- Mal mit mehr als 4 Mhz probiert ?
- Irgendwo noch Ports vom Display für andere Aufgaben definiert ?
- JTAG Fuse ausgeschaltet ?
- Eventuell die delay-Routinen durch die aus <avr/delay.h> ersetzen
- Spannungsversorgung ok ?

von Stefan M. (interceptor)


Lesenswert?

Pete K. wrote:
> Bitte poste mehr Infos. So können wir nur raten ...
>
> - RW richtig angeschlossen ?
Angeschlossen habe ich die Pins wie hier in der Header-Datei angegeben.
1
//Hardware pin definitions
2
3
#define LCD_DATA_PORT    PORTD  //Port on which the 4 LCD datapins are connected to
4
#define LCD_DATA_OFFSET    0    //Offset for data pins (e.g. 0 = PIN0..PIN3, 2 = PIN2..PIN5)
5
#define LCD_CTRL_PORT    PORTD  //PORT on which E1, E2, RS and RW are connected to
6
#define LCD_PIN_RW      4
7
#define LCD_PIN_RS      5
8
#define LCD_PIN_E1      6
9
#define LCD_PIN_E2      7
> - Mal mit mehr als 4 Mhz probiert ?
Nein das habe ich noch nicht probiert, da ich von 4MHz ausgehen muss.
In der wintek2704.c steht folgendes:
1
#define delay(us)  _delayFourCycles( ( ( 1*(F_CPU/4000) )*us)/1000 )
Demzufolge müssen es wohl 4MHz sein.
> - Irgendwo noch Ports vom Display für andere Aufgaben definiert ?
Könnte sein, aber da ich es mit allen Ports versucht habe ...
> - JTAG Fuse ausgeschaltet ?
JTAG ist noch EIN, aber das betrifft doch nur den Port B, oder ?
> - Eventuell die delay-Routinen durch die aus <avr/delay.h> ersetzen
OK das könnte ich mal probieren.
> - Spannungsversorgung ok ?
Ich benutze die Spannung vom STK500 -> 4,92 V

Mit freundlichen Grüßen

Stefan

von Gerd G. (elektrikser)


Lesenswert?

>> - Mal mit mehr als 4 Mhz probiert ?
>Nein das habe ich noch nicht probiert, da ich von 4MHz ausgehen muss.
>In der wintek2704.c steht folgendes:
>
>#define delay(us)  _delayFourCycles( ( ( 1*(F_CPU/4000) )*us)/1000 )
>
>Demzufolge müssen es wohl 4MHz sein.

Nein, da steht nur, dass F_CPU durch 4000 geteilt wird. Such mal wie 
F_CPU definiert wird.
>> - JTAG Fuse ausgeschaltet ?
>JTAG ist noch EIN, aber das betrifft doch nur den Port B, oder ?

Nein, es betrifft PORTC!

von Pete K. (pete77)


Lesenswert?

Hast Du Pins D4-D7 oder Pins D0-D3 vom LCD angeschlossen ?

von Stefan M. (interceptor)


Lesenswert?

Gerd G. wrote:
>>> - Mal mit mehr als 4 Mhz probiert ?
>>Nein das habe ich noch nicht probiert, da ich von 4MHz ausgehen muss.
>>In der wintek2704.c steht folgendes:
>>
>>#define delay(us)  _delayFourCycles( ( ( 1*(F_CPU/4000) )*us)/1000 )
>>
>>Demzufolge müssen es wohl 4MHz sein.
>
> Nein, da steht nur, dass F_CPU durch 4000 geteilt wird. Such mal wie
> F_CPU definiert wird.
OK Ich habe einfach mal 100 für us eingesetzt, da dann 100 rauskam bin 
ich davon ausgegangen das es 4MHz sind. Stefan sagt ja auch das die lib 
auf der von P.Fleury basiert.
Er sagt auch nur was davon das er die F_CPU in dem Makefile definiert.
Ich programmiere mit AVR-Studio.
Allerdings habe ich grade gesehen das man in den Projekteinstellungen 
die CPU Frequenz einstellen kann.
Allerdings hat sich nichts geändert.
>>> - JTAG Fuse ausgeschaltet ?
>>JTAG ist noch EIN, aber das betrifft doch nur den Port B, oder ?
>
> Nein, es betrifft PORTC!
hm, hast recht.

Ich habe aber alle Ports ausprobiert. Von A-F

Ich habe auch Probleme damit rauszufinden wie ich die delay Funktionen 
durch die aus delay.h ersetzen kann.

Naja es hätte ja auch einfach mal klappen können.
Da ich so ein Display hier liegen hatte, wollte ich halt nur mal 
versuchen es zum laufen zu bringen.
Leider fällt es mir noch recht schwer den C-Code zu verstehen.

Wie gesagt bis auf die Änderungen des Ports habe ich in der Lib von 
Stefan Seegel nichts geändert.

Mit freundlichen Grüßen

Stefan

von Stefan M. (interceptor)


Lesenswert?

Pete K. wrote:
> Hast Du Pins D4-D7 oder Pins D0-D3 vom LCD angeschlossen ?

Ich habe die Pins D4-D7 angeschlossen.

Allerdings hatte ich erst D0-D3 angeschlossen. Da hatte ich nicht 
aufgepasst.
Bei 4-Bit-Mode wird ja das obere Nibble benutzt.

Ich hoffe nicht das das Display dabei Hops gegangen ist.


Mit freundlichen Grüßen

Stefan

von Stefan M. (interceptor)


Angehängte Dateien:

Lesenswert?

Hallo Leute

Ich mal wieder.

Ich habe nun das Display versucht mit der Lib von Peter Fleury zu 
betreiben.

Genau das gleiche Bild.

Dadurch, das ich allerdings nur einen Controller benutze werden die 
beiden oberen Zeilen mit ca. 50% Intensität als Balken angezeigt.

Ich habe die Verdrahtung jetzt noch mal genau durchgemessen.
Das stimmt alles.

Ich hänge die lib mit den geänderten Einstellungen mal hier dran.

Die test_lcd.c ist unverändert von Peter übernommen.


Kann es etwas mit dem STK500 zu tun haben ?

Am Display ist ein Flachbandkabel angelötet auf dessen anderen Seite ein 
10poliger Pfostenstecker sitzt.

Die Portpins sind genau wie in der lib angegeben verdrahtet.

Ich weiß jetzt echt nicht mehr weiter.

Und ja JTAG Fuse ist nicht gesetzt.

Mit freundlichen Grüßen

Stefan

von spess53 (Gast)


Lesenswert?

Hi

Kann es etwas mit dem STK500 zu tun haben ?

Nein. Ich habe Displays von 1x8...4x20,Dog, Grafik bis 240x128 am STK 
gehabt.

MfG Spess

von Pete K. (pete77)


Lesenswert?

Funktioniert es jetzt ?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das 2704 läuft am STK500 einwandfrei - da vermutest Du falsch.

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.