Hallo Zusammen,
habe ein Nokia Display vom 3510 am STK500 hängen.
Es kommen aber nur Balken.
Zwischen den Pins des AVR und des Dislay sind
3 Dioden in Reihe ( für 2,9V).
Habe die Hardware kontrolliert kein fehler gefunden.
Habt ihr ne Ahnung?
Achso nicht schimpfen, habe das in nem Anderen Thread geschriben
möchte diesen aber nicht auf mich lenken.
Motto: Eigenes Problem, eigener Thread ;-)
Hallo,
> Pin1 _Reset> Pin2 _Cs> Pin3 Gnd> Pin4 Sdata> Pin5 Sclk> Pin6 Vio 1.8V> Pin7 Vbooster in 2.7V> Pin8 Vlcd max.12V>das habe ich auch grad wieder gefunden, ist wieder anders zudem was ich >angeschloßen habe
Am besten alle mit einem Multi-Z mal "durchpiepsen". -> hast du ja
bereits gemacht.
Die richtige Pinbelegung fuer deinen Code siehst du in Nokia_3310.h,
bzw. musst du dort festlegen. Verwirrend ist das fuer CS (ChipSelect)
zwei verschiedene Pins in Software definiert sind, obwohl in Hardware
nur einer (SS) angeschlossen sein kann. Die Hardware macht die Vorgaben.
Wichtig, der Code den du verwendest macht HW-Spi, also(ATmega8):
| LCD3310 | ATmega8 |
--------------------------------------------
| SCLK (Pin5) | SCK |
| SDATA (Pin4) | MOSI |
| CS (Pin2) | SS |
Den Pin1 Reset kannst ueberall anschliessen, wichtig nach startup ein
Reset N3310_InitDisplay ausfuehren und am besten den Reset lange
halten also das delay aendern auf min. 200ms.
Was bei deiner LCD Pin Belegung fehlt ist der D/C - Data / Control Pin.
Dieser ist wichtig, er steuert den Typ der Daten die ueber Hardware SPI
zum LCD gesendet werden. Wo ist dieser?
Wie nun die Versorgungsspannungen fuer den Controller und den LCD selber
sind, kann ich dir nicht genau sagen, wichtig ist dass die
Versorgungspannung fuer den Controller das selbe Spannungsnievau wie der
Mikrocontroller ist.
Ich sehe du brauchst nicht soviel loeten, aber immer schoen die
Verbindungen pruefen, dann klappts auch. Viel Spass!
Gruss daniel
mit dem D/C pin habe ich ohne erfolg rumgespielt.
habs so defined gelassen und am lcd gebrückt, den hw-pin
gebrückt, nix, joa habs auf den selben pin defined, nix.
alle anderen möglichkeiten habe ich auch durch.
das lcd kann mich langsam mal ;-)
werde ihm mal schreiben, nein den link kannte ich noch nicht,
danke
yast schrieb:> mit dem D/C pin habe ich ohne erfolg rumgespielt.> habs so defined gelassen und am lcd gebrückt, den hw-pin> gebrückt, nix, joa habs auf den selben pin defined, nix.
An der Vorgehensweise solltest Du noch arbeiten. Das Display hat seine
Anschlüsse nicht aus Jux und Dollerei, die haben eine Bedeutung.
Auf http://www.jtronics.de/avr-projekte/display-nokia3310.html ist die
Beschriftung der Pinbelegung etwas verrutscht, deswegen hier nochmal:
1 - VCC 2,7 bis 3,3V
1 - SCK Clock
2 - SDIN Data in
3 - D/C Data=1/Command=0
4 - SS Chip select - low aktiv
5 - GND GND
6 - VOUT Contrast LCD(~10µF to GND)
7 - RES Reset LCD - low aktiv
Vielleicht funktioniert die ganze Angelegenheit bei Dir auch nicht, weil
das Frickelboard Kontaktprobleme hat; das wäre nicht das erste Mal in
diesem Forum.
genau so hatte ich es angeschlossen.
das tauschen war nur noch ein verzweiflungsakt....
das pinout habe ich von der seite.
habe vom avr-pin pis zum displaypin gemessen, immer durchgang.
kann mir einer die defines erklären(also das doppelte wie oben
beschrieben)?
daniel schrieb:> Die richtige Pinbelegung fuer deinen Code siehst du in Nokia_3310.h,> bzw. musst du dort festlegen. Verwirrend ist das fuer CS (ChipSelect)> zwei verschiedene Pins in Software definiert sind, obwohl in Hardware> nur einer (SS) angeschlossen sein kann. Die Hardware macht die Vorgaben.> Gruss daniel
das meinte ich damit.
Gruß
#error Please define in Nokia_3310.h the hardware pins for your device !
7
#endif
Also wenn du
>Please define in Nokia_3310.h the hardware pins for your device !
beim compilieren erscheint, hast du weder ATmega8, noch ATmega128, oder
vielleicht gar nicht mcu definiert(-Dmcu= und #include <avr/io.h>
setzen die richtigen defines).
Ich nehme mal an du hast ein ATmega8 dann ist fuer dich nur folgender
Code interresant.
1
...
2
#if defined (__AVR_ATmega8__)
3
// Lcd Port Settings ATmega8
4
// Lcd Port Settings ATmega8
5
#define N3310_SER_PORT PORTB
6
#define N3310_SER_DDR DDRB
7
#define N3310_SCLK PINB5 // clock
8
#define N3310_MOSI PINB3 // send data
9
#define N3310_CS_ PINB2 // SS
10
11
#define N3310_CTRL_PORT PORTD
12
#define N3310_CTRL_DDR DDRD
13
14
#define N3310_DC 5 // Trasfer DATA(high) or Control(low)
15
#define N3310_CS 6 // Chip Enable
16
#define N3310_RES_ 7
17
...
Der Author der Bibliothek arbeitet mit Hardware SPI und initialisiert
entsprechend alle am N3310_SER_DDR dafuer. Jedoch kontrolliert er den CS
Pin selbst, welche mittel N3310_CTRL_DDR initialisiert werden. Da nun CS
am N3310_SER_DDR nicht gleich dem am N3310_CTRL_DDR ist, kann es nicht
gehen.
Variante 1: Headerfile an die Hardware anpassen.
Fuer einen Atmega8 wuerde ich es wie folgt abaendern:
1
#if defined (__AVR_ATmega8__)
2
// Lcd Port Settings ATmega8 - DIP
3
#define N3310_SER_PORT PORTB
4
#define N3310_SER_DDR DDRB
5
#define N3310_SCLK PB5 // pin19 serial clock
6
#define N3310_MOSI PB3 // pin17 serial data out
7
#define N3310_CS_ PB2 // pin16 serial chip select (nur Init)
8
9
#define N3310_CTRL_PORT PORTB
10
#define N3310_CTRL_DDR DDRB
11
#define N3310_DC PB1 // pin15 Trasfer DATA(high) or Control(low)
12
#define N3310_CS PB2 // pin16 serial Chip Select (nur Steuerung)
Wie du siehst habe ich alle Pins an PortB gelegt, so ist auch N3310_CS_
gleich N3310_CS, werden aber beide initialisiert.
Variante 2: Hardware an das Headerfile anpassen.
Fuer einen ATmega8 DIP wie folgt:
(oben sind die Ziffern verrutscht, ich beziehe mich auf korrigierte
Ziffern, Pin 1 am Display musst du selber finden)
PIN LCD3310 - PIN ATmega8-DIP
2 - SCK - 19 (PB5) Clock (HW SPI)
3 - SDIN - 17 (PB3) Data in (HW SPI)
4 - D/C - 11 (PD5) Data=1/Command=0
5 - SS - 12 (PD6) Chip select - low aktiv
8 - RES - 13 (PD7) Reset LCD - low aktiv
Spannungsversorgung musst du selber wissen. Bei 5V eben 3 Dioden in die
Hauptzuleitung fuer Controller UND Display und mal messen.
1 - VCC 2,7 bis 3,3V
6 - GND GND
7 - VOUT Contrast LCD(~10µF to GND)
Wenns immer noch nicht geht mal eine Bibliothek ohne HW SPI versuchen
oder das Display auseinander bauen :).
Gruss daniel
Hallo,
wie ich beim nochmaligen anschauen der Routinen sehe, wird die
Helligkeit (Vout) ueber den OC1B gesteuert. Also mittels PWM ein eine
Spannung fuer den Contrast erzeugt.
Damit kann man Vout LCD pin 7 direkt an uC pin 16 anschliessen und den
Contrast per Software steuern.
Aus diesem Grund ist N3310_CS_ - PB2 (SS) aus meiner Variante 1 oben
nicht verwendbar und muesste auf ein anderen freien Pin (PB6, PB7) am
Port B gelegt werden. Das geht aber auch nur wenn kein externer Quarz
verwendet wird. Andernfalls eben die Init nicht aufrufen in main.
Hallo,
>Damit kann man Vout LCD pin 7 direkt an uC pin 16 anschliessen und den>Contrast per Software steuern.
Das sollte man auf keinen Fall, den Vout bedeutet sicherlich
Spannungsausgang.
Gruss daniel
jetzt hab ichs gerafft mit der pindefinition.(Habe einen At88
ist aber pinkompatibel...)
das heißt die unteren defines sind dann für software spi?
werde das heut mal ausprobieren und dann berichten.
kontrast mach ich über ein C.geht wunderbar.
lasse also den pwmpin einfach frei.
mit dem At88 ist quatsch der ist in nem anderen projekt verbaut..
aber wenns mit dem At8 läuft, dann werde ich das auch angehen.
du siehst daniel, wirst nicht arbeitslos ;-)
Vielen dank für die Hilfe( und geopferte Zeit)
Hallo,
>die unteren defines sind dann für software spi?
Teils. So wird das CS in den unteren Defines definiert und das obere
define fuer CS hat gar keine bedeutung, das es in der Software sogar
ueberschrieben wird mit dem OC1B. Also auf keinen Fall als CS nehmen.
Aber wichtig ist es, deswegen in den unteren defines definieren.
Probier erstmal die Variante2 mit eine ATmega8.
>Vielen dank für die Hilfe( und geopferte Zeit)
Gut Ding will Weile haben.
Gruss daniel
Hast du es jetzt hin bekommen?
Die Lib habe ich erst letzte Woche mit einem Atmega128 getestet und
anschließend auf einen Xmega portiert. Hat alles super geklappt.
Der Ausgangspin für das Hintergrundlicht ist nur optional und soll über
PWM
die LEDs für das Hintergrundlicht schalten. Natürlich über einen
externen Transistor oder Mosfet.
Grüße martin
nein leider hatte ich gestern keine zeit. heute wirds aber was
denke ich.
achso was mir aufgefallen ist das display oben im bild hat nur
8pins ,wie oben beschrieben, nichts weiter.
das andere display, auch angeblich 3510 hat neben den 8
pins noch 4 stück an denen kondensatoren sitzten.
Die pins sind aber nicht an die federkontakte angeschlossen.
was sind das für welche (hab leider kein bild da).
Hallo,
> auch angeblich 3510 hat neben den 8 pins noch 4 stück an denen> kondensatoren sitzten.> was sind das für welche
Kann es sein das es ein 3510i ist, dann ist diese nicht monochrom. Das
3510(ohne i) ist monochrom. So hab ich es hier im forum mal gelesen.
Einfach mal nach 3510 suchen.
Gruss daniel
ist schwer da es nur zeichnungen sind. danke den link kenne ich;-)
beim 6310 sind noch 3 "knubbel" gezeichnet, das könnten die
c´s sein. ich mach heut abend mal nen foto.
komisch ist nur, das sie die gleichen plexiglasträger haben
wie das mit dem ich grad kämpfe.
also beide varianten funktionieren nicht.
vlt hat das display auch ne macke?!
keine ahnung. hab alles durchgeklingelt, passt.
spannung gemessen, passt.
keine ahnung vlt fuses? habe alles standart. nur den
quarz intern auf 8 Mhz, extern hängt natürlich keiner dran.
noch ne idee? sonst wandert das die aufm direkten weg in de müll :D
Hab grad gesehen, dass das ja kein N3310 ist, daher wird das nicht gehn.
Die Displays sehen zwar ähnlich aus, haben aber komplett andere
Initialisierungsroutinen.
Hallo,
>noch ne idee?
Bist du auch sicher das der HW-SPI aktiv ist? Ansonsten SW-SPI mal
probieren der muss dann funktionieren. Gibts in dem Code
Beitrag "LCD Nokia 5510 Initialisierungsproblem" ein paar Ansaetze,
musst eben die Defines anpassen.
Hast du mal den User Meik http://www.mikrocontroller.net/user/show/meik
eine Private Nachricht geschickt und gefragt wie er es gemacht hat?
> dass das ja kein N3310 ist, daher wird das nicht gehn.
Da gab es hier irgendwo im Forum mal den Mythos das es geht, aber wir
sind ja alle Mythbusters.
>sonst wandert das die aufm direkten weg in de müll
Auf keinen Fall ! Vorher AUS EINNANDER NEHMEN und hier Fotos posten.
Wir wollen ja nicht dumm sterben und sind alle neugirieg wie es in drin
aussieht. Dann kannst es ja als jPad mini auf Ebay verticken :).
Gruss daniel