Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

VFD aansluiten als LCD

Pagina: 1
Acties:

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik heb sinds vandaag een 40x2 VDF hier liggen :9~

Natuurlijk wil ik hem aansluiten, maar ik stuit op wat probleempjes waar ik zelf niet echt uit kom.

Ik heb de datasheet, maar een aantal aansluitingen hebben een andere naam. Daarnaast lijkt er een foutje in de datasheet te staan met betrekking tot de datalijnen.
Als ik de datasheet goed interpreteer, dan is dit scherm HD44780 compatible. Het zou dus moeten kunnen werken met programma's als LCDproc.

Dit heb ik nu gedaan met de aansluitingen, maar dit lijkt niet te werken:
Functie Parallelpoort (pin)Functie LCD (pin)Functie VFD (pin)
D0 (2)D0 (7)D0 (15)
D1 (3)D1 (8)D1 (13)
D2 (4)D2 (9)D2 (11)
D3 (5)D3 (10)D3 (9)
D4 (6)D4 (11)D4 (7)
D5 (7)D5 (12)05 (5)
D6 (8)D6 (13)D6 (3)
D7 (9)D7 (14)D2 (1)
nSTRB (1)EN (6)A0 (19)
nLF (14)nRW (5)\WR (17)
INIT (16)RS (4)


Omdat D2 2 keer voorkomt in de tabel, maar ze niet doorverbonden zijn, is het logisch aan te nemen dat 1 van deze een drukfout betreft. Daarnaast is het rijtje datalijnen eigenlijk regelmatig op 2 punten na, namelijk de 05, wat waarschijnlijk gewoon D5 is en de 2de D2, wat logischerwijs D7 zou moeten zijn. Voor zover zijn er eigenlijk maar weinig problemen. Het punt zijn de lijnen 1, 14 en 16 van de parallelpoort. Daarvoor heb ik 5 aansluitingen over op de VDF, namelijk \WR, A0, \RD, \CS en T0.
T0 is puur voor testen en wordt in dit geval dus niet gebruikt. \CS en A0 lijken in het geval van dataschrijven een gelijke functie te hebben maar tegenovergesteld.

Maar jullie raden het al, er gebeurt niks op het scherm.
Één vermoeden dat ik heb, is dat \WR eerst geïnverteerd moet worden, net als eventuele andere datalijnen met een \ in de datasheet.
Maar wie kan me een beetje op weg helpen? Ik zou graag dit scherm willen gebruiken.

ps. bij inschakelen zie ik wel op de eerste rij, eerste positie een cursor verschijnen, wat er een juiste initialisatie van het scherm duidt. De fout lijkt dus in de interface te zitten.

[ Voor 3% gewijzigd door deepbass909 op 06-10-2006 16:30 ]

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

Mijn gok is dat RS iig gelijk is aan A0, beiden gebruik je om aan te geven wat je precies naar het scherm schrijft. Verder zou /WR dan gelijk moeten wezen aan de EN-ingang. Ik weet zo 123 niet meer of de /EN-ingang op een normaal LCD laag-actief is, zonee zou je er inderdaad een invertertje tussen moeten drukken.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Volgens mij zijn alle pinnen van de hd44780 hoog-actief, op de R/W na. Die staat op Read wanneer hoog, en write wanneer laag.
Als ik de datasheet goed lees, zou ik \WR laag moeten maken om er data heen te kunnen sturen samen met \CS laag of A0 hoog. Data mag zowel laag-actief als hoog-actief zijn.
Nu zou het zo kunnen zijn dat \WR en \RD elkaars geïnverteerde ingangen zijn. Als dat zo is, zou het dus ook kunnen werken als ik in plaats van \WR laag te maken, juist \RD hoog te maken...
Dan zou ik dus de volgende aansluitingen krijgen:

nSTRB - \RD
nLF - A0
INIT -

RS wordt niet gebruikt in 8bit modus waarin ik heb gebruik, tenzij je een 2de display op dezelfde poort wil aansluiten, dan wordt hij al 2de Enable gebruikt, voor het 2de scherm.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

Hmm, ik had niet gezien dat er een datasheet bijstaat :) Volgens mij zou 'ie zo moeten werken:
nSTRB - /WR
INIT - A0
gnd - /CS
+5V - /RD

/WR gaat zonder inverter werken omdat de data op de opgaande flank ingelezen word. Verder betekent deze pinout dat je niet uit het display-geheugen kan lezen, maar 90% van de programma's maakt daar toch geen gebruik van.

Ik weet niet of jouw idee zo goed is: als je zowel WR als RD laag maakt is het resultaat vziw undefined bij dit soort interfaces...

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
ik ga zo meer eens draadjes verwisselen en kijken of LCDd er beeld op krijgt en zal dan een mooi GSM fofootje ervan maken (kan die ook gelijk naar de HK)

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
hmm, ik krijg info op het scherm, maar echt helemaal goed gaat het niet...

Dit komt er nu op
Afbeeldingslocatie: http://80.100.213.215/images/VDF_thb.jpg

Naast foute karakters klopt de uitlijning ook niet... Ik vrees dat de chip dus net teveel afwijkt van de HD44780 in z'n aansturing... Helaas weet ik ook niet wat wel de goede aansturing zal zijn...

[ Voor 51% gewijzigd door deepbass909 op 06-10-2006 23:22 ]

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • blackangel
  • Registratie: April 2002
  • Laatst online: 20:36
Je krijgt er data op, dus het lijkt wel deels te kloppen in ieder geval. Kun je even posten wat er (volgens jou) had moeten staan? Data erop is in ieder geval al een goed begin, daarna is het kijken hoe de data er goed op wordt geschreven :)

Leuk display overigens, tenminste iets meer functies dan een VT162A die alleen maar dom characters kan printen :+ maar ik wel aangestuurd krijg :Y)

[ Voor 53% gewijzigd door blackangel op 06-10-2006 23:34 . Reden: veel ]


  • guus.assmann
  • Registratie: Augustus 2006
  • Laatst online: 27-04-2021
De HD44780 is niet zo heel erg snel.
Je moet een bit in het commando register "pollen" om te kijken of de controller al klaar is voor een volgend karakter. Als je dit aan het begin van de schrijfroutine doet gaat de data het snelste.
Dat hoeft een programma immers niet voor niets te wachten tot de controller klaar is.
Je ontkomt eigenlijk niet aan lezen dus.
Wat je ook kunt doen is een wachtlus inbouwen.
Ga dan voor ongeveer 400Khz aansturing als maximum. (De printerpoort is veel sneller)

De /WR en /RD lijnen zijn zeker niet gelijktijdig laag te maken, dit is een niet gedefinieërde situatie.
Op Micro controllers als de 8052 (en de 8085 processor) zijn de signalen allebei aanwezig en zijn ze actief laag bij lezen of schrijven.

Guus Assmann


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Hij zou in dit geval het standaard opstartscherm van LCDd moeten laten zien. Ik weet niet precies hoe dat eruit ziet op een 40x2, aangezien ik hiervoor nog nooit met een scherm groter dan 20x4 heb gewerkt.
Ik heb het vermoeden dat de driver de verkeerde karakters uit het rom-geheugen aanroept of dat de data strings niet correct worden afgesloten...

@guus.assmann
Ik schrijf er zelf geen routine voor, daar heb ik absoluut niet de kennis voor. De bedoeling is om dit scherm met lcdproc onder linux te gebruiken, maar om eerlijk te zijn is de kans vrij klein omdat het scherm eigenlijk te groot is voor het doel dat ik in gedachten had... Nu is het vooral een leuk proefproject als voorbereiding op een 20x4 die ik in een HTPC wil gaan gebruiken.

[ Voor 36% gewijzigd door deepbass909 op 06-10-2006 23:48 ]

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • blackangel
  • Registratie: April 2002
  • Laatst online: 20:36
Ik ben het wel met guus eens. Echter is het ook weer niet gigantisch slecht. Ik zie vanaf rechtsonder 4478820x2?LPT?0x378.... staan. Dat lijkt mij toch aardig te kloppen, maar niet perfect. Als ik zo bekijk lijkt het verdomd veel op een timing-fout, helaas kun je de timing meestal niet instellen in dat soort progjes :(

Zelf heb ik afgelopen week een c-filetje geschreven wat via /dev/io in FreeBSD een VT162A aanstuurt, wat volgens de specs ook HD44780-compatible moet zijn. Als ik mij niet vergis zit er ook een /dev/io in Linux. Als je interesse hebt kan ik die wel posten (source dus). Het is voldoende gecomentariseerd om het fatsoenlijk te testen en af te stellen (al hoewel je misschien wel iets over c moet lezen/leren). Er zit natuurlijk een nadeel aan, het is geen echt nuttig programma aangezien het alleen maar characters kan printen :P

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik zou dan eens in de docu van lcdproc moeten duiken. Het voordeel van lcdproc is, dat het geheel opensource is en de documentatie van met name de hd44780 erg uitgebreid is.
Ik zal ook de karaktertabel van dit scherm eens vergelijken met die van de hd44780.
Verder maakt het mij niet uit als het scherm wat trager aangestuurd wordt, de verversing zal toch niet veel hoger zijn dan 1 a 2 keer per seconde, want er komt alleen titel info op te staan, geen spectrum analysers enzo.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Er is hoop.
In de documentatie van lcdproc wordt de optie DelayMulti genoemt. Daarmee is het mogelijk om de timing te vertragen met een factor 2 of 4. Eens kijken of dat het gewenste effect heeft, anders zal ik in de code moeten duiken om te kijken of ik daar ergens iets met de timings of karaktermapping uit kan halen...

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • sebastius
  • Registratie: September 2000
  • Laatst online: 18-11 21:59

sebastius

Laten we lekker link gaan doen

Je kan ook een datalijntje verwisseld hebben, dan verspringt je positionering ook.

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:09

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Op zich zitten de datalijnen correct, als ik tenminste ervan uit ga dat de fouten in de datasheet goed zijn verbeterd door mij. Het aparte is wel dat een aantal karakters altijd goed gaan, en een aantal altijd fout. Dat geeft mij toch sterk het vermoeden dat er met de karaktermapping in de driver iets niet gelijk is met mapping in dit scherm.
Ik hem de timing vandaag verlaagd met een factor 2 en 4, maar op een tragere opbouw van het scherm na, had dit geen invloed op de weergegeven tekst. Ik kan timing dus zo goed als zeker uitsluiten.

klein updatetje
Ik heb het scherm in test-modus geforceert, en als ik de opbouwsnelheid als maat neem van de interfacesnelheid, dan is hij veel trager dan een LCD. Ik praat dan over (geschat) 2 karakters per seconde opbouw. Ik kan de timing nog verder aanpassen in lcdproc, veranderen van de DelayMulti lijkt gewoon te werken, dus eens kijken hoever ik moet gaan voor ik iets leesbaars kan produceren...

[ Voor 27% gewijzigd door deepbass909 op 10-10-2006 01:31 ]

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier

Pagina: 1