CPLD-FPGA eenvoudige voorbeelden.

Op 31 oktober 2007 18:15:29 schreef driessens_nl:
@fotoopa:
de karakterrom is gepost ! (via email)

Bedankt! Net een mailtje terug gestuurt. Het ziet er perfect uit, staat reeds klaar als .hex file voor Quartus.

Integratie in de LCD driver zal geen probleem zijn gezien alles met parameters instelbaar is.
Ik verwacht de resultaten begin volgende week, gezien de komende feestdag en lang weekeind zijn de vrije uren wat beperkt.

Maar visueel gezien via de editor ziet hij er zeker bruikbaar uit.

Zo, dat is veel animo :O.

Ik heb even de schema's + bom online gezet
http://www.the12be.demon.nl/psp_lcd/ .

Ik heb nog twee complete setjes onderdelen liggen, en nog 18 PCB's.

Dat betekend dus dat er niet genoeg is voor iedereen. De gebruikte onderdelen zijn iig voor een gedeelte anders als de print van xantus ( wat package groote's, en een step-up convertor voor de backlight ).

Een los PCB'tje kan je voor 3 euro krijgen ( in elcheapo envelop :P), de onderdelen erbij voor een extra 10 euro.

Mijn email adres is e.pap (at) home.nl

Ik heb even moeten opzoeken wat een .ods file is :P.
Ik denk niet dat iedereen OpenOffice heeft en je BOM dus kan lezen. Kun je die als een 'gewone' tekst file opslaan en sharen?

Ondertussen heb ik zelf even een viewer gevonden die er iets van maakt maar is niet echt optimaal. Maar het geeft even een overzicht.

[Bericht gewijzigd door Eagle666 op donderdag 1 november 2007 01:24:44 (28%)

Vanuit OpenOffice kun je ook gewoon voor Excel opslaan geloof ik, misschien kan the12be dat beter even doen.

If you want to succeed, double your failure rate.

En anders exporteren als pdf, gaat erg goed met OO. ;)

Heb iedereen die me een mailtje gestuurd heeft eentje terug gedaan. Lijkt me handig dat we het zo verder regelen, en het maar weer over FPGA's gaan hebben :D.

En voor iedereen wie geen OO heeft, FOEI :P. Maargoed, de pdf staat er nu ook.

Ik liet het ook aan hem over want anders had ik het wel gepost hier.

En wat nou foei ? ;)
edit: ik heb OpenOffice er nu op staan, ziet er wel goed uit. Beter zo? :P Wel een heeeeeel stuk kleiner dan MS Office. Bij MS moeten ze eens leren programmeren.

[Bericht gewijzigd door Eagle666 op donderdag 1 november 2007 20:56:09 (47%)

free_electron

Silicon Member

Op 1 november 2007 20:03:29 schreef Eagle666:
Ik liet het ook aan hem over want anders had ik het wel gepost hier.

En wat nou foei ? ;)
edit: ik heb OpenOffice er nu op staan, ziet er wel goed uit. Beter zo? :P Wel een heeeeeel stuk kleiner dan MS Office. Bij MS moeten ze eens leren programmeren.

en openoffice moet eindelijk eens leren word en excel files creeren die juist zijn.... openoffice claimt heel veel maar in veel gevallen werkt het totaal niet ...

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Op 1 november 2007 22:11:06 schreef free_electron:
[...]

en openoffice moet eindelijk eens leren word en excel files creeren die juist zijn.... openoffice claimt heel veel maar in veel gevallen werkt het totaal niet ...

Openoffice claimt heel veel?? Is microsoft daar niet veel beter in ;) ?

Op 1 november 2007 22:11:06 schreef free_electron:
en openoffice moet eindelijk eens leren word en excel files creeren die juist zijn

Dat gaat ook heel goed als Microsoft zo geheimzinnig doet over het formaat. Ze moeten telkens per rechtzaak gedwongen worden om weer wat vrij te geven. Ontwikkelt ook niet echt handig zo voor de OO mensen.
(...zei een M-Office gebruiker)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Update info over het LCD4.3" grafisch display:

Enkel de 4polige connector door Paul geleverd is de juiste versie. De nabestelling via Madwizard is een verkeerd type.

De weerstand van 3K in serie met de backlight is te groot. deze moet 330 ohm zijn dan is de stroom 18 mA bij een spanning van 29.9V van de DC/DC convertor. Deze spanning is eigenlijk wat aan de hoge kant omdat er nu bijna 6V over de weerstand staat en dit is allemaal energie die via de 3V3 regulator onboard van de FPGA moet geleverd worden. Hierdoor krijgt hij behoorlijk warm. Een alternatief zou zijn om 5V op de connector te plaatsen langs de kant van de backlight. De DC/DC convertor mag die ingang hebben en de stroom zou niet meer door de 3V3 onboard van de FPGA board. Maar om te starten gaat het wel.

Helderheid van de display is heel mooi, heel mooie kleuren en stabiel beeld. Ik moet nog wat verder aan de character driver werken vooraleer de resultaten vrij te geven. Maar background en rand kleuren werken al.

Ik heb flexible kabeltjes gemaakt voor de 2x20 polige aansluitingen. Hierdoor is er voldoende vrije ruimte om te meten en kan ik beter het display inbouwen. Lengte van de draden is ongeveer 20 cm en dit heeft geen invloed op de goede werking van het display. Het bestukkingsplan heb ik aangepast en is op mijn speciale page te bereiken. (zie link in mijn signature)

Update:

Ik heb de bovenste 3V3 pin van SV1 losgemaakt en een draadje verbonden met de 5V op de powerinput J1. Hierdoor krijgt de LM2733 van de DC/DC convertor op de LCD 4.3" print 5V input ipv 3V3. Nu blijft de regulator op de FPGA mooi koel. De 330 ohm serie weerstand voor de backlight zou eventueel wat mogen verlagen tot 270 ohm zodat er 20 mA door de leds vloeit.

[Bericht gewijzigd door fotoopa op vrijdag 2 november 2007 14:23:42 (12%)

De via Madwizard bestelde connector:
609-1846-1-ND > Connector Type: Bottom Contacts

En de juiste connector:
609-1847-1-ND > Connector Type: Top Contacts

Wie besteld er toevallig binnenkort nog bij Digikey?

Ondertussen is mijn driver voor het LCD 4.3" klaar. De eerste resultaten zijn zeer goed. Hierbij een opname van het schermpje:

http://users.skynet.be/fotoopa/fpga/FV1_5418.jpg

Niet zo eenvoudig om dit perfect in beeld te nemen. Ook de kleuren van de foto verschillen nogal met het werkelijke beeld.

Zoals je ziet is er de mogelijkheid om een kader te gebruiken waarbinnen de characters opgebouwd worden. Dit is niet verpicht en kun je wijzigen door een aantal parameters te wijzigen en opnieuw te compileren. Ik heb nu gekozen voor 5 regels van 16 characters maar ook dit kun je gewoon herbepalen door de parameters. Max kan je dit instellen tot 16 regels van 64 characters.
Van de characters kan de voorgrond en de achtergrond ook geregeld worden. Alle 24 kleurbits zijn aangesloten zodat je ieder mogelijk kleur binnen de 16 miljoen kleuren kunt gebruiken.

Er worden 266 LE's gebruikt in de FPGA en 11.776 bits data waarbij ook de character generator en de interne characterbuffer ram inbegrepen zijn.

free_electron

Silicon Member

kwijl ..... ( en dan met emmers tegelijk .... ) das zo een PSP display veronderstel ik ?

Geen zin om hier te komen 'in pensioen zijn' en een code te schrijven voor mij als bijverdienste ?

[Bericht gewijzigd door free_electron op vrijdag 2 november 2007 23:38:07 (37%)

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Geweldig !!!
(mij ontbreken de woorden om dit te beschrijven....)

@free: Betaal je dan ook z'n reis naar de VS? Ik denk dat hij wel een vakantie verdient heeft ;). En wie heeft er daar nou niet zin in :P. Enfin, ik neem aan dat de code uiteindelijk ook vrij komt? Dat was na mijn idee toch de bedoeling?

@free_electron,

Ik denk dat je nog niet beseft welke vrijheid ik hier geniet na al die jaren stress. Maar toch is het eigenaardig dat je zoveel gemakkelijker iets in alle rust kunt ontwerpen en maken. Jullie hebben daar niet eens mijn belgische voorkeur "biertje", ook niet ons gezond eten.

@driessens_nl,

Straks test ik je characterrom. Die zit in een 8x16 bit patroon. Ik ga de parameters aanpassen en hercompileren en dan zou het moeten werken. Ook eens proberen met meer characters per lijn en meer lijnen per frame.

@Eagle666,

De code komt er wel maar eerst nog wat opkuisen. Ook moet de dualported ram nog geactiveerd worden zodat er dynamisch update kan gebeuren van de data. Zo moeten de resultaten van de gegevens op het scherm komen en niet louter tekst. Origineel was ook image voorzien maar bij de huidige hardware is geen voldoende snelle ram beschikbaar. Volgende week hang ik het LCD 4.3" displaytje eens aan mijn DE1 board. Daar zit wel voldoende SRAM van 10 nsec op.

Om ook het displaytje aan de DE1 te kunnen hangen heb ik die draden van 20 cm en connectors aan het printje gemaakt. Nu kan ik een verloop printje maken op gaatjesprint om de DE1 board aan te hangen.

Over het resultaat van het 4.3" scherm ben ik heel tevreden. Helderheid en kleuren zijn nog veel mooier dan op de foto. Ook de fijne resolutie is buitengewoon goed.

Het totale stroomverbruik inclusief de 4x7 segments display die ook nog draait is nu iets minder dan 300 mA.

Update:

Een heel mooie combinatie is 6 regels van 20 characters per regel. Characters zijn heel mooi en goed leesbaar. Door de frame background color gelijk te stellen aan de character background color vervalt die randkleur en is het als zuivere tekst nog mooier. Nog meer characters per lijn zetten kan maar dan heb je al zoveel input data dat die tenslotte ook nog moet aangebracht en verwerkt worden.

[Bericht gewijzigd door fotoopa op zaterdag 3 november 2007 10:20:30 (12%)

Op 31 oktober 2007 18:15:29 schreef driessens_nl:
@fotoopa:
de karakterrom is gepost ! (via email)

Zojuist je karacterrom in de FPGA gebracht en de parameters aangepast. En ja hoor! alles werkt perfect. De driver neemt direct het nieuwe formaat van deze characterrom. Deze characters zijn 8 dots breed en daardoor lijken ze totaal anders als font. ze zijn echter nog mooier en prima geschikt voor dit type display. Ik ga later daar nogwel een foto van nemen.

Omdat ze nu iets breeder zijn heb ik ook andere parameters wat moeten aanpassen. De beste compositie lijkt mij 6 regels van elk 18 characters. Op deze manier zijn ze heel goed leesbaar. Wow, wat ik ben blij met deze versie van characterrom. Zoiets manueel editeren is anders een enorm werk. Trouwens deze rom is dubbel zo groot als mijn voorgaande. Ik heb de interne ram moeten aanpassen voor deze versie waardoor er nu 19.968 bits ram gebruikt worden samen met 268 LE's. Je ziet dat het aantal LE's vrij laag blijft tov het beschikbaar aantal (5980) maar ook voor de ram is er voldoende reserve (19.968 uit 92.160 bits).

Nogmaals vele dank voor het opsturen van deze characterrom.

@fotoopa:
het doet me deugd dat U zo blij bent met het rommetje. Maar de eer gaat eigenlijk naar de persoon (onbekend)die deze +/- 25 jaar geleden gemaakt heeft.
Deze Rom is inderdaad 2x zo groot ls een "normale" maar dat komt omdat elk kararkter is opgebouwd uit 16 bytes, waarvan de laaste 8 bytes telkens 0 zijn. Dit heeft te maken met de gebruikte videocontroller bij deze rom nl. 6845. Deze gebruikt (in de door mij gebruikte configuratie) 11 scanlijnen per karakterregel. 8 lijnen voor het karakter zelf en dan nog 3 voor de onderlijning en tussenruimte naar de volgende regel. Hiervoor heb je dus 4 adreslijnen nodig en dat is de reden waarvoor ieder karakter op een veelvoud van 16 ligt.
Maar als U wilt kan ik een binaire file genereren waar de karakters op een 8 byte grens liggen (scheelt de helft in geheugen)

In ieder geval heeft U mooi werk geleverd.

Bedankt voor het aanbod om de rom te reduceren. Ik heb echter een heel goede editor die dit werkje kan doen. Trouwens er zijn waarschijndelijk nog andere roms vb 7*9 en die gaan dan ook 16 bits hoog hebben. veel maakt het voor mij niet uit.

hierbij een foto hoe mooi dit reeds is:

http://users.skynet.be/fotoopa/fpga/FV1_5429.jpg

Ik heb hier de frame color gelijkgesteld aan de background van de characters zodat je geen frame meer ziet.

Ook het formaat is nu 6 regels van 18 characters en er is gebruik gemaakt ook van de kleine letters. Ze zijn 1 dot breder maar ze blijven heel mooi.

Ik had wat last om goede foto's te nemen. Ik mag niet volledig scherpstellen omdat je anders de scanning in het beeld ziet. Maar deze foto is heel realitisch wat kleuren betreft. Letter zijn wit met een licht blauwe achtergrond.

Intussen heb ik de ram voor de characterbuffer aangepast dat hij volledig dual ported is zodat ik straks waardes van registers kan op het scherm brengen die ook snel veranderen en dit terwijl terzelfde tijd de data uitgelezen wordt voor de display.

Heb je al wat voorbeelden online staan voor het psp scherm of komen die als alles goed werkt.

Kan je eens een foto posten van de opbouw van het printje zodat ik kan zien hoe je R5 hebt vast gezet.

Dit is een foto van de text modes zoals sony die bedacht heeft voor de psp, het is een font van 6*8 zodat je 34 regels hebt met ieder 80 karakters :D

Hobby, maar sample met mate. | BumbleBee plus pack | Weerstand calculator voor je PSP

Ik post de sources wel zodra ze wat verder getest zijn. Ook moet de data die je in de FPGA ergens gebruikt naar de ram gekoppeld worden. Dit is nu al voorbereid door een dual ported ram maar moet nog wat verder afgewerkt worden.

Die aanpassing van R5 staat getekend op het bestukkingsplan die ik beschikbaar gesteld heb. Er zijn 2 rode stipje getekend waar je het draadje moet leggen. R5 moet je vertikaal op het padje solderen zodat je bovenaan de weerstand een draadje kunt leggen naar de andere kant van R3.

Het is idd geen enkel probleem om 34 regels van 80 characters op het scherm te krijgen. Dat kan ik ook met mijn eerste characterrom die 5x7 is maar dit is voor mij veel te klein. Trouwens je moet ook informatie voor zoiets hebben om op het display te zetten. Het is geen technisch probleem maar eerder een praktische keuze. pas je de parameters aan dan kun je idd ook zo klein gaan.

Als er zijn die echt klaar zijn met hun bestukking van het displaytje dan wil ik wel een .pof file beschikbaar stellen zodat je direct kunt testen of de boel loopt. De aansluitingen zijn de origineele zoals xantus voorzien had.

Update 3 nov:

Ik heb de sources verder getest en bijgewerkt en die werken nu perfect tot 16 regels van 64 characters. Met de breedere font (zoals de foto met de witte tekst) ben ik beperkt tot 58 characters horizontaal. Iedere dot is dan idd 1 pixel. De leesbaarheid is nog verrassend goed maar de hoeveelheid data wordt nu 1 Kbyte voor de ascii buffer.
Echt een mooi display zou ik zeggen!

Update 4 nov:

De dual ported interne ram werkt nu. Hierdoor kan de applicatie alle variable data ook naar het display realtime sturen. Mede door de dualported ram geeft dit geen enkele invloed op het goede gedrag van de display. Update van de data blijft stabiel afleesbaar op het grafisch display. De refresch staat nu op 100x per seconde.
Volgende update worden de atributes voor de display met o.a. blinking data rate slow en fast, individueele kleur per character van voorgrond en background en AND, OR, XOR mode van characters met achtergrond.

[Bericht gewijzigd door fotoopa op zondag 4 november 2007 10:45:57 (16%)

Ik weet niet of dit al eerder aanbod is gekomen, maar ok:

Ik vind het vreselijk om de pinnen te assignen, nu heb ik dit al een keer eerder gedaan in een oud projectje. Nu is mijn vraag of ik deze assignments kan kopieeren ofzo? Of dat ik in de toekomst een blokje heb, met de juiste pinout voor mijn peripherals. Dat dat dan een kwestie van blokje plaatsen is in mijn blok diagram.

Ik maak de eerste keer een leeg project waar alle in en uitgangen in voorkomen. Daar kun je bepaalde outputs ook in een veilige toestand vastleggen. Dit werk moet je slechts 1 maal voor een nieuw design maken. Ken alle pinnummers hierbij toe, compileer en save deze template.

Als je nu een nieuw project maakt vertrek je best van deze template, maak een copy, wijzig de module naam en je hebt meteen alle in en uitgangen.

Nu kun je in Quartus een import maken van je origineele template waar je 1 maal al die pinnen hebt toegekent. Quartus neemt die pin's over en je hoeft geen enkele meer op te geven.

Slechts 1 maal hoef je dus het vervelende werkje uit te voeren.

Surge_me heeft me een beetje geholpen. De pin assignment kan je exporteren naar een .qsf file. Dit is een tekst bestand waar de pinout staat opgegeven. Hier in kan je dan mooi editten. En dan kan je via view->utility windows->tcl
een console scherm, waar je de .qsf kan uitvoeren: >source <filename>.qsf

dan wordt het voor je ingevoerd! :)