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

LCD-controller met AVR

Pagina: 1
Acties:

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

Sprite_tm

Semi-Chinees

Topicstarter
LCD-controller met AVR

In de loop der jaren heb ik het een en ander bijelkaargespaard aan LCDs. Zoals sommige van jullie misschien wel weten zijn lang niet alle LCDs echter aan te sluiten: van de mooiere typen hebben de meesten geen controller en zijn er maar een paar via een alternatieve manier (vesa-poort) aan de praat te krijgen. Met dit apparaat heb ik weer een paar extra LCDs aan de praat kunnen krijgen. Ik deel deze info met jullie, misschien kan iemand er wat mee.

Ten eerste:
Dit project is niet voor yer olde beginner die zonder al te veel verstand van DRAMs, AVR's, spanning en stroom een LCD aan wil sluiten. Dit project is in een middagje inelkaargefietst; er zitten dus nog een redelijke hoeveelheid rough edges aan en ik heb geen zin om iedereen die wel een leuk LCD in z'n kast wil aan het handje te mee te nemen. Wat ik hier dan ook niet wil zien is:
Kan dit LCD er ook mee werken? Dat kan je uit dit topic en het datasheet van je LCD halen. Lukt dat je niet, jammer, misschien gaat iemand nog wel es een makkelijke howto schrijven.
Heeft iemand de datasheet/pinout van dit LCD? Gebruik Google, daarmee kan je veel datasheets / pinouts vinden. Van veel LCDs is die info echter gewoon niet aanwezig, sja, dan heb je pech gehad.
Mijn LCD is anders. Kan je de firmware daarvoor aanpassen? Jahoor, mail me maar en dan breng ik een offerte uit.

Mijn excuses voor deze norse FAQ/regeltjes, maar ik wil dit topic graag op een hoog nivo houden.

Op wat voor LCDs werkt dit?

Nou, het werkt eigenlijk alleen maar 100% zeker op mijn eigen LCD :) De kans is echter groot dat je je eigen LCD ook aan de praat kan krijgen zonder al te veel software-wijzigingen als:
• Je LCD controllerloos is
• Je LCD een 4-bits databus heeft
• Je de pinout, of beter, de datasheet van je LCD hebt.
• Je LCD 320x240 of kleiner is
• Je LCD monochroom is (zwart-[andere kleur])
Waarschijnlijk is het idee ook wel aan de praat te krijgen (met firmware-wijzigingen) als:
• Je LCD 1 of 2 bits aan databus heeft
• Je LCD 8bits aan databus heeft, je moet dan een 2e stukkie RAM toevoegen.
• Je LCD een ander formaat dan 320x200 heeft. Als je LCD groter is kan het wel zo zijn dat je refresh rate te laag gaat liggen en het display gaat flikkeren.

Het schema
Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/projects/lcdc-avr/tmb-hpim3317.jpg
En nee, ik doe nog steeds niet aan CAD-programma's om mijn schema's te ontwerpen.
Het schema bestaat uit niet meer dan een AVR en een 4-bits DRAM-chipje. Ik heb een bepaald Hynix-chipje gebruikt, maar je kan eigenlijk elk chipje wel gebruiken, zolang het ding een 4-bits databus heeft, minimaal 64kx4bit kan opslaan en Fast Page ondersteunt. Zie de datasheets van de chipjes die je kan vinden voor meer info. Als je een kleinere chip pakt mis je waarschijnlijk A8 en/of A9, da's niet erg.
Het geneuzel rond de BC550 kan je ook vervangen door een Siemens datakabel (zoals ik gedaan heb) of iets in de trand van een MAX232. Zolang het RS232->TTL-conversie kan doen is het OK.

Ow, en als je je afvraagt waar je in godsvredesnaam aan dat stukkie RAM komt: hier heb ik de mijne vandaan:
Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/projects/lcdc-avr/tmb-hpim3319.jpg
De meeste 30-pins simmetjes met minder dan 8 chipjes erop hebben wel compatibele chips erop zitten.

Plaatjes sturen naar het LCD
...gebeurt door middel van een serieele interface. Ik heb zelf een proggie geschreven om png'tjes richting het LCD te sturen, maar da's zo lelijk dat ik het niet ga uitbrengen. Het protocol is echter niet moeilijk: de serieele poort werkt op 115200 baud, 8 databits, 1 stopbit, geen parity. Het display word per regel herschreven: stuur eerst 0xA5, dan het regelnummer, dan 40 bytes aan data. Het uploaden van een compleet nieuw scherm duurt ongeveer een seconde, en helaas zie je het wel gebeuren. Het is wel een stuk mooier te maken door de volgorde van de lijnen aan te passen, zie dit filmpje voor een voorbeeld.

De firmware
...staat hier. Het is goed gedocumenteerd, je zou het dus redelijk simpel moeten kunnen aanpassen aan andere LCDs.

ToDo
Sja, ik zou graag wat dingen aan dit ontwerp anders zien:
• RAS is nu nog gedeeld met de HSYNC-lijn. Het kan zijn dat sommige LCDs dit niet snappen, vandaar dat ik die liever apart zou hebben.
• De -24V komt nu nog uit mijn voeding. Ik zou dit liever door middel van een boostconvertertje opbouwen.
Voor beide zaken heb ik echter een I/O-pinnetje nodig, wat ik in deze opstelling mis. Vandaar dat het hele project een dezer dagen waarschijnlijk naar een ATMega88 verhuist zal worden.


PICS!!!111
Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/projects/lcdc-avr/tmb-hpim3316.jpg
Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/projects/lcdc-avr/tmb-hpim3312.jpg
Afbeeldingslocatie: http://sprite.student.utwente.nl/~jeroen/projects/lcdc-avr/tmb-hpim3313.jpg

[ Voor 20% gewijzigd door Sprite_tm op 16-12-2005 14:44 ]

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


Verwijderd

can i just be the first to say..


_/-\o_ _/-\o_ _/-\o_


That's nice..

  • roelke
  • Registratie: Juli 2005
  • Laatst online: 20-11 21:15
heb ik maar 10 smilies voor :
_/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_

I've GoT a solution


  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Mooi werk, en leuk dat er iemand die anime en manga ook leuk vindt ;)

Het is nog even wachten op nettere schema's en op kleine verbeteringen.
Monochrome scherm aansturen is eenvoudiger dan kleurenscherm aansturen toch? (al zie ik elders wel meer 256 color displays aangestuurd of zo) :>

Verwijderd

Erg netjes gedaan! Goed dat iemand een keer wat aandurft zonder de standaard controllers erbij! _/-\o_

Wel leuk om te lezen, nu ik met school ook net bezig bent met een AVR programmeren enzo :)

  • WoRsTeNBoY
  • Registratie: Januari 2005
  • Laatst online: 21-01-2024
_/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_
mooi, dit ga ik van dichtbij volgen daar ik met die pled bezig ben (128 op 64).

Sprite_tm : petje af!!!!

  • LWY
  • Registratie: September 2004
  • Laatst online: 29-07-2022

LWY

= Louie

Mooi project _/-\o_
Toevallig heb ik hier in de kast nog een 640x200 LCD zonder controller liggen, dus ik ga dit zeker volgen. Ben een tijdje geleden al met dat ding aan het klooien geweest, maar hij wil minimaal 50 frames per seconde hebben en dat kreeg ik zelfs met een PICje op 20Mhz niet voor elkaar (flikkerend beeld :r).

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

Sprite_tm

Semi-Chinees

Topicstarter
LWY: Ik heb hier ook nog een heel mooi wit-blauw LCD liggen wat 640x200 is en wat volgens mij wel aan de praat moet zijn te krijgen; misschien heb je geluk :) Je pic zou inderdaad te traag zijn voor het LCD; een PIC op 20MHz voert namelijk 5 miljoen instructies per seconde uit, een AVR 20 miljoen.

Volgens mij kan ik het probleem met mijn tekort aan I/O-pinnetjes trouwens wat makkelijker oplossen door een schuifregister te gebruiken; dat zou me maar een uniek pinnetje kosten (load; de data en clock kan ik vast wel ergens anders aanvastknopen) en daarmee zou ik ruimte overhebben voor een -24V-generatorschakelingetje.

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


  • LWY
  • Registratie: September 2004
  • Laatst online: 29-07-2022

LWY

= Louie

Het LCD klok-lijntje zou je bijvoorbeeld vast kunnen knopen aan de output-enable van je ram, zo heb ik dat toen met mijn LCD ook gedaan en het werkte perfect. (hier wat inspiratie opgedaan destijds)

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

Sprite_tm

Semi-Chinees

Topicstarter
LWY: Dat was ook mijn eerste idee, maar daar kreeg ik timing-issues mee :/ De data was blijkbaar niet lang genoeg stabiel als OE omhoogging Die 6-inverter-hack kan het misschien wel oplossen; morgen maar es proberen.

Dank voor de link trouwens, ik dacht dat ik de enige was die een display aansturen op deze manier probeerde. Nja, ik ben iig nog wel de enige die er DRAM voor gebruikt ipv SRAM :)

[ Voor 11% gewijzigd door Sprite_tm op 18-12-2005 01:05 ]

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

Pagina: 1