CPLD-FPGA eenvoudige voorbeelden.

Vooral als je die zelf nog moet bij editeren is het veel gemakkelijker als hij op een exponent 2 adres zit. Ik heb wel een versie gevonden die .pdf is maar toch een heel mooie indeling heeft. Ik kan gemakkelijk het offsetadres bij iedere entry bij editeren in die pdf file. Hij komt van een Xilinx FPGA gebruiker die ze blijkbaar ook zo gebruikt.

Een 5x7 dot versie zou ik eerst gebruiken maar vooral de 7x9 rom versie's zouden welgekomen zijn. Een zuivere layout met getekende raster erop helpt echter heel veel en ja manueel ingeven moet maar 1 maal gedaan worden.

Van rom versie's moet je in ieder geval de indeling hebben anders wordt het een echte puzel. offset van de ene naar de andere character opzich is niet zo erg. In hardware is dit toch een ADD met een bepaalde konstante en een multiplay. Dat kan toch in enkele tientallen nsec. die berekeningen zijn reeds voorzien.

Uiteindelijk zou ik mij richten op een max afmeting van 8x16 bit voor 1 character font. Zijn niet alle bits gebruikt, dat maakt niets uit. De statemachine regelt dit wel bij het aflopen. Hoever de characters uit elkaar liggen in de fontrom kan ik ook instellen via een parameter. De Quartus compiler neemt dit wel keurig mee.

fotoopa

Ik heb nog wel een 5x7 versie gevonden in picbasic:

code:


CDATA $00,$00,$00,$00,$00,$00		'Graphic character 0
CDATA $FF,$FF,$FF,$FF,$FF,$FF		'Graphic character 1
CDATA $07,$07,$07,$00,$00,$00		'Graphic character 2
CDATA $00,$00,$00,$07,$07,$07		'Graphic character 3
CDATA $E0,$E0,$E0,$00,$00,$00		'Graphic character 4
CDATA $00,$00,$00,$E0,$E0,$E0		'Graphic character 5
CDATA $FF,$FF,$FF,$00,$00,$00		'Graphic character 6
CDATA $00,$00,$00,$FF,$FF,$FF		'Graphic character 7
CDATA $07,$07,$07,$07,$07,$07		'Graphic character 8
CDATA $E0,$E0,$E0,$E0,$E0,$E0		'Graphic character 9
CDATA $E0,$E0,$E0,$07,$07,$07		'Graphic character 10
CDATA $07,$07,$07,$E0,$E0,$E0		'Graphic character 11
CDATA $FF,$FF,$FF,$E0,$E0,$E0		'Graphic character 12
CDATA $E0,$E0,$E0,$FF,$FF,$FF		'Graphic character 13
CDATA $07,$07,$07,$FF,$FF,$FF		'Graphic character 14
CDATA $FF,$FF,$FF,$07,$07,$07		'Graphic character 15
CDATA $55,$AA,$55,$AA,$55,$AA		'Graphic character 16
CDATA $AA,$55,$AA,$55,$AA,$55		'Graphic character 17
CDATA $01,$01,$01,$01,$01,$01		'Graphic character 18
CDATA $80,$80,$80,$80,$80,$80		'Graphic character 19
CDATA $FF,$00,$00,$00,$00,$00		'Graphic character 20
CDATA $00,$00,$00,$00,$00,$FF		'Graphic character 21
CDATA $FF,$01,$01,$01,$01,$01		'Graphic character 22
CDATA $01,$01,$01,$01,$01,$FF		'Graphic character 23
CDATA $FF,$80,$80,$80,$80,$80		'Graphic character 24
CDATA $80,$80,$80,$80,$80,$FF		'Graphic character 25
CDATA $00,$00,$00,$00,$F0,$F0		'User defined character 26
CDATA $00,$00,$00,$00,$0F,$0F		'User defined character 27
CDATA $00,$00,$00,$00,$00,$00		'User defined character 28
CDATA $00,$00,$00,$00,$00,$00		'User defined character 29
CDATA $00,$00,$00,$00,$00,$00		'User defined character 30
CDATA $00,$00,$00,$00,$00,$00		'User defined character 31
CDATA $00,$00,$00,$00,$00,$00		'32 -   - 20        
CDATA $00,$00,$4F,$00,$00,$00		'33 - ! - 21
CDATA $00,$07,$00,$07,$00,$00		'34 - " - 22
CDATA $14,$7F,$14,$7F,$14,$00		'35 - # - 23
CDATA $24,$2A,$7F,$2A,$12,$00		'36 - $ - 24
CDATA $23,$13,$08,$64,$62,$00		'37 - % - 25
CDATA $36,$49,$55,$22,$50,$00		'38 - & - 26
CDATA $00,$05,$03,$00,$00,$00		'39 - ' - 27
CDATA $1C,$22,$41,$00,$00,$00		'40 - ( - 28
CDATA $00,$00,$41,$22,$1C,$00		'41 - ) - 29
CDATA $14,$08,$3E,$08,$14,$00		'42 - * - 2A
CDATA $08,$08,$3E,$08,$08,$00		'43 - + - 2B
CDATA $00,$50,$30,$00,$00,$00		'44 - , - 2C
CDATA $08,$08,$08,$08,$08,$00		'45 - - - 2D
CDATA $00,$60,$60,$00,$00,$00		'46 - . - 2E
CDATA $20,$10,$08,$04,$02,$00		'47 - / - 2F
CDATA $3E,$51,$49,$45,$3E,$00		'48 - 0 - 30
CDATA $00,$42,$7F,$40,$00,$00		'49 - 1 - 31
CDATA $42,$61,$51,$49,$46,$00		'50 - 2 - 32
CDATA $21,$41,$45,$4B,$31,$00		'51 - 3 - 33
CDATA $18,$14,$12,$7F,$10,$00		'52 - 4 - 34
CDATA $27,$45,$45,$45,$39,$00		'53 - 5 - 35
CDATA $3C,$4A,$49,$49,$30,$00		'54 - 6 - 36
CDATA $01,$71,$09,$05,$03,$00		'55 - 7 - 37
CDATA $36,$49,$49,$49,$36,$00		'56 - 8 - 38
CDATA $06,$49,$49,$49,$3E,$00		'57 - 9 - 39
CDATA $00,$36,$36,$00,$00,$00		'58 - : - 3A
CDATA $00,$56,$36,$00,$00,$00		'59 - ; - 3B
CDATA $08,$14,$22,$41,$00,$00		'60 - < - 3C
CDATA $14,$14,$14,$14,$14,$00		'61 - = - 3D
CDATA $00,$41,$22,$14,$08,$00		'62 - > - 3E
CDATA $02,$01,$51,$09,$06,$00		'63 - ? - 3F
CDATA $32,$49,$79,$41,$3E,$00		'64 - @ - 40
CDATA $7E,$11,$11,$11,$7E,$00		'65 - A - 41
CDATA $7F,$49,$49,$49,$36,$00		'66 - B - 42
CDATA $3E,$41,$41,$41,$22,$00		'67 - C - 43
CDATA $7F,$41,$41,$22,$1C,$00		'68 - D - 44
CDATA $7F,$49,$49,$49,$41,$00		'69 - E - 45
CDATA $7F,$09,$09,$09,$01,$00		'70 - F - 46
CDATA $3E,$41,$49,$49,$7A,$00		'71 - G - 47
CDATA $7F,$08,$08,$08,$7F,$00		'72 - H - 48
CDATA $00,$41,$7F,$41,$00,$00		'73 - I - 49
CDATA $20,$40,$41,$3F,$01,$00		'74 - J - 4A
CDATA $7F,$08,$14,$22,$41,$00		'75 - K - 4B
CDATA $7F,$40,$40,$40,$40,$00		'76 - L - 4C
CDATA $7F,$02,$0C,$02,$7F,$00		'77 - M - 4D
CDATA $7F,$04,$08,$10,$7F,$00		'78 - N - 4E
CDATA $3E,$41,$41,$41,$3E,$00		'79 - O - 4F
CDATA $7F,$09,$09,$09,$06,$00		'80 - P - 50
CDATA $3E,$41,$51,$21,$5E,$00		'81 - Q - 51
CDATA $7F,$09,$19,$29,$46,$00		'82 - R - 52
CDATA $46,$49,$49,$49,$31,$00		'83 - S - 53
CDATA $01,$01,$7F,$01,$01,$00		'84 - T - 54
CDATA $3F,$40,$40,$40,$3F,$00		'85 - U - 55
CDATA $1F,$20,$40,$20,$1F,$00		'86 - V - 56
CDATA $3F,$40,$38,$40,$3F,$00		'87 - W - 57
CDATA $63,$14,$08,$14,$63,$00		'88 - X - 58
CDATA $07,$08,$70,$08,$07,$00		'89 - Y - 59
CDATA $61,$51,$49,$45,$43,$00		'90 - Z - 5A
CDATA $7F,$41,$41,$00,$00,$00		'91 - [ - 5B
CDATA $02,$04,$08,$10,$20,$00		'92 - \ - 5C
CDATA $00,$00,$41,$41,$7F,$00		'93 - ] - 5D
CDATA $04,$02,$01,$02,$04,$00		'94 - ^ - 5E
CDATA $40,$40,$40,$40,$40,$00		'95 - _ - 5F
CDATA $00,$01,$02,$04,$00,$00		'96 - ` - 60
CDATA $20,$54,$54,$54,$78,$00		'97 - a - 61
CDATA $7F,$48,$44,$44,$38,$00		'98 - b - 62
CDATA $38,$44,$44,$44,$20,$00		'99 - c - 63
CDATA $38,$44,$44,$48,$7F,$00		'100  d - 64
CDATA $38,$54,$54,$54,$18,$00		'101  e - 65
CDATA $08,$7E,$09,$01,$02,$00		'102  f - 66
CDATA $0C,$52,$52,$52,$3E,$00		'103  g - 67
CDATA $7F,$08,$04,$04,$78,$00		'104  h - 68
CDATA $00,$44,$7D,$40,$00,$00		'105  i - 69
CDATA $00,$20,$40,$44,$3D,$00		'106  j - 6A
CDATA $7F,$10,$28,$44,$00,$00		'107  k - 6B
CDATA $00,$41,$7F,$40,$00,$00		'108  l - 6C
CDATA $7C,$04,$18,$04,$78,$00		'109  m - 6D
CDATA $7C,$08,$04,$04,$78,$00		'110  n - 6E
CDATA $38,$44,$44,$44,$38,$00		'111  o - 6F
CDATA $7C,$14,$14,$14,$08,$00		'112  p - 70
CDATA $08,$14,$14,$18,$7C,$00		'113  q - 71
CDATA $7C,$08,$04,$04,$08,$00		'114  r - 72
CDATA $48,$54,$54,$54,$20,$00		'115  s - 73
CDATA $04,$3F,$44,$40,$20,$00		'116  t - 74
CDATA $3C,$40,$40,$20,$7C,$00		'117  u - 75
CDATA $1C,$20,$40,$20,$1C,$00		'118  v - 76
CDATA $3C,$40,$30,$40,$3C,$00		'119  w - 77
CDATA $44,$28,$10,$28,$44,$00		'120  x - 78
CDATA $0C,$50,$50,$50,$3C,$00		'121  y - 79
CDATA $44,$64,$54,$4C,$44,$00		'122  z - 7A
CDATA $08,$36,$41,$00,$00,$00		'123  { - 7B
CDATA $00,$00,$7F,$00,$00,$00		'124  | - 7C
CDATA $00,$00,$41,$36,$08,$00		'125  } - 7D
CDATA $00,$08,$04,$08,$04,$00 		'126  ~ - 7E     
Hobby, maar sample met mate. | BumbleBee plus pack | Weerstand calculator voor je PSP

Ohh, dit is wel een heel aparte.
Deze heeft de data in kolommen gerangschikt staan, niet erg gebruikelijk omdat normaal in rijen gewerkt wordt (scan lines).

@Switching Power,
Is mooi maar ik ken geen software en zeker geen pic basic. ( is veel te moeilijk)
Als ik het goed voor heb is het in een 8x6 matrix opgebouwd. Enkel met een zuivere binaire file kan ik werken. Ook files in het hex8 of hex16 formaat of motorola S9 formaat. Al die standaard files zou ik via een HEX editor kunnen herleiden tot het juiste formaat die ik naar de FPGA moet sturen. ( Die neemt eigenlijk een HEX8 formaat maar de hex editor doet die omzetting wel)

Zo heb ik ook al een boel lijsten in assembler maar weer het zelfde probleem, die kan ik niet importeren als binaire data file.

Dat de matrix op zijn kop ligt is nog niet zo erg. Hoewel het voor de normale scan nog moet omgezet worden.

uiteindelijk maak ik een 8x8 matrix omdat dan alle waarden modulo 8 (2^3) van elkaar liggen. Met een optie dat 8x16 ook goed is.

Update:

Hierbij een tekening die ik gebruik om de hardware te implementeren voor deze LCD display. Je ziet hier hoe de characters gepositioneerd zijn binnen een characterframe, binnen een characterlijn horizontaal en vertikaal. Ook zie je dat er nog rest pixels overblijven langs alle randen. Die pixels zijn de image pixels en als er geen characters gebruikt worden in overlay heb je er 480x272 pixels.

Routine wordt in verilog geschreven en is nogal complex.Het zal nog een paar dagen duren eer dit klaar en getest is maar werken zal het. kleur is 24bit, dus full color en moet draaien op de FPGA board. Mijn LCD display boardje moet ik nog bestukken omdat nog wat componenten ontbreken maar deze week moeten ze binnen komen. De LA zal ook zijn werk hebben om dit allemaal te testen. Als het klaar is wordt de volledige verilog code vrijgegeven.

http://users.skynet.be/fotoopa/fpga/lcd43_hoek.png

[Bericht gewijzigd door fotoopa op 23 oktober 2007 20:05:02 (35%)

@fotoopa:
als u font files heeft in een assembler vorm en die hebben de (of kunnen makkelijk worden omgezet in) volgende vorm

code:


        org     $00            ;R O M   A R E A
;
hexdec  fcb     $00,$01,$02,$03,$04,$05,$06,$07,$08,$09
	fcb     $10,$11,$12,$13,$14,$15,$16,$17,$18,$19
	fcb     $20,$21,$22,$23,$24,$25,$26,$27,$28,$29
	fcb     $30,$31,$32,$33,$34,$35,$36,$37,$38,$39
	fcb     $40,$41,$42,$43,$44,$45,$46,$47,$48,$49
	fcb     $50,$51,$52,$53,$54,$55,$56,$57,$58,$59
	fcb     $60,$61,$62,$63,$64,$65,$66,$67,$68,$69
	fcb     $70,$71,$72,$73,$74,$75,$76,$77,$78,$79
	fcb     $80,$81,$82,$83,$84,$85,$86,$87,$88,$89
	fcb     $90,$91,$92,$93,$94,$95,$96,$97,$98,$99
;

dan hebik wel een programma voor U die hier een binaire file van maakt. Het betreft hier een dos programma welk ook onder Xp loopt.

ik heb 2 tft schermpjes gekregen type : TD036THEA1
zag op de altera pagina dat hun dat schermpje ook aanbieden samen met een DE2.... eens kijken of ik hem aan mij DE1 kan hangen.....

alleen die aansluiting van het schermpje... kijken of dat lukken wil....
http://www.terasic.com.tw/attachment/archive/78/TRDB_LCM_UserGuide_061…

cnc filmpjes op Http://www.arjan-swets.com

@fotoopa: Als de missende resources alleen maar geheugen is, is er dan niet een manier om die extern uit te bereiden? Ik vraag me al een tijdje af of het makkelijk is om aan deze FPGA een RAM geheugen te hangen? SDRAM begrijp ik online is best wel moeilijk maar een paar MB moet toch via simpelere RAM IC's kunnen?

@Jochem_S: Ik snap waarvoor de [ code ] tag is maar ik had al gezien dat de tekst van surge_me geen sourcecode was maar gewoon tekst en dus een quote. Source code is vaak gelukkig kort genoeg zodat de [ code ] tag daar wel lekker werkt in een forum.

@driessens_nl,
Bedankt voor het aanbod. Ik heb jaren lang software assembler gedaan maar dat was niet op PC, maar onder OS9 multitasking. Dat was bijna uitsluitend assembler. Maar nu op PC heb ik alle software laten varen. Als ik nog eens terug actief kom zal het met de AVR chips zijn. Die liggen mij dichts bij de Motorola familie. Ik was gewoon met de types 6809 tot 68030 te werken. Maar de laatste 15 jaar heb ik mij bijna uitsluitend op hardware toegelegd.

Een kant en klare characterrom zie ik nog zitten maar anders editeer ik hem toch manueel. Vooral het zelf direct kunnen aanpassen waar nodig is een must.

@Eagle666,
Extra resources bijschakelen lijkt mij geen ideale oplossing. Voor wat ik momenteel aan het voorbereiden ben heb je geen extra's nodig. Je plaatst gewoon het origineel LCD printje direct op de connectors van de FPGA board. Daarvoor zijn de afmetingen en de montage gaten op elkaar afgestemd. Het werkt dan op 24 bit kleur maar je hoeft daarvoor niet iedere pixel met een eigen kleur aan te sturen. Enkel voor een full grafisch images van 480x272 pixels zou je extra resources nodig hebben.

Als alles af is wordt het wel duidelijker.

@Arjan Swets,
Ja die LCD display kun je zo op de DE1 board hangen. De pinout is compatibel enkel moet je eens kijken om dat stukje software over te nemen en aan te passen aan de DE1 pinnummers. Voor de rest moet het werken.
Ik heb ook op het punt gestaan om hem te kopen maar had toen reeds die bij xantus besteld. Die van xantus is 480x272 pixels. Maar het bestukken van de print is wel erg fijn werk. Niet iedereen zal dit tot een goed einde brengen zonder ervaring.

Ja ik had dus begrepen uit eerdere posts dat de totale resolutie van de LCD niet haalbaar was en dat je daarvoor meer geheugen nodig had. Het leek mij wel leuk om het board completer te maken zodat ik de LCD wel full kan gebruiken. Daarom vraag ik mij ook af of een uitbereiding te doen is, dus onafhankelijk van jouw huidige project.

Voor wie nog met FPGA's begint, ik heb hier een kleine uitleg en een start gevonden:
http://www.fpga4fun.com/FPGAinfo1.html

Kijk in het linkermenu naar de rest onder FPGA information (How FPGA's work, FPGA pins, etc, etc), dat staat iets naar onderen, dus een beetje naar beneden scrollen in het linkermenu.

[Bericht gewijzigd door Eagle666 op 24 oktober 2007 16:41:29 (16%)

Ja dat kan zeker maar je moet toch eerst vastleggen wat je ermee wilt doen en hoe de de data denkt aan te brengen. Ieder full resolutie beeldje bevat immers 480x272x24 bits of 3.133.440 bits. Je hebt bijgevolg een 4Mbit ram nodig. Opzich geen probleem als je tenminste voldoende pinnen beschikbaar hebt. 4Mbit = 512k*8 en daarvoor heb je 19 adr, 8 data, ce, rw of 29 pinnen. Die zijn niet meer beschikbaar zonder meer op het boardje. Dus moet je andere truks gebruiken. Nieuwe data moet je dan nog ergens toevoeren. Hiervoor kun je de USB lijn gebruiken maar dat verondersteld koppelen met een PC. Anders kun je ook een flash kaard gebruiken maar als het deze is onboard denk ik niet dat je serieel de data rate kunt halen.

Serieele datarate voor volle resolutie is:
480*272*24* 60 beelden per seconde zelfs als het beeldje vast blijft moet je die telkens terug uit je flash halen want er is geen voldoende onboard ram beschikbaar. Dit is een datarate van 180 Mbit/sec dat haalt het kaartje niet.

Je kunt de kleurdiepte beperken maar dan spreken we niet meer van full resolutie.

Wat ik aan het maken ben is een praktische toepassing, voor heel veel gebruikers meer dan voldoende en met heel wat eigen configuratie mogelijkheden. Omdat ik hem ook op mijn DE1 board ga aansluiten heb ik daar wel voldoende resources en kan ik full resolutie gebruiken en uittesten. Met 1 bitje te zetten in de FPGA kun je zo de karacters weglaten om plaats te maken voor zelfs een full resolutie video beeld. Daar zit SDRAM op en kan meerdere image frames bevatten. Maar op de Blue Bird FPGA board is het meer een super de luxe characters display met nog enkele grafische mogelijkheden.

Het is inderdaad afhankelijk van wat je wilt maar het leek mij leuk om het LCD schermpje volledig te kunnen gebruiken.

Maar tis ook maar een gedachte gang en van de reacties leer ik weer veel ;).

Eigenlijk zou een grote serieele RAM een uitkomst zijn dan (minder lijnen) maar dan zit je waarschijnlijk met snelheid. Ware het niet dat ik nog niet zulke grote heb gezien.

Het voorbeeld van die gast die 2 DS schermen aanstuurt (http://home.comcast.net/~olimar/DS/jumbotron/) blijft wel enorm leuk (niet dat ik het ga maken hoor! ;)). Daar lukt het dus zeker wel maar die Spartan-3 die hij gebruikt zal dan ook wel enorm veel groter zijn (resources). Ik neem echter wel aan dat hij dan meer RAM onboard heeft omdat de spartan-3 zelf "maar" 1.8Mb intern heeft (lees ik nu ff op Xilinx site).

Grote vorderingen gemaakt met het afmaken van m'n Bluebird, zoals sommigen ook gelezen zullen hebben op SK.net. We moeten daar eigenlijk niet meer dat soort technische dingen posten, dus ik bedacht me dat ik het hier maar even zou neerzetten.

Ik heb het soldeerwerk af, de 3.3V kwam eerst niet verder dan 1.25 volt, maar de 30k weerstand van de spanningsdeler bleek niet goed vast te zitten aan 1 kant en na dat gefixed te hebben deed hij het wel. Overigens kom ik met mijn ALDI-metertje op 3.39 volt uit, is dat niet wat ruim? Ik zal het weekend eens even een goede meter eraan hangen voor wat meer zekerheid.
Alle rode ledjes gaan aan, de gele ook (zie ik nou in het schema dat die beide op 3V3 zitten :?), de groene niet.

Op SK.net schreef fotoopa:

Ik heb toch 2 maal de weerstandjes rond de spanningsregulatoren met de ohm meter nagemeten vooraleer daar spanning op te plaatsen. Jullie nemen toch risico als ik dit lees!
Je had evengoed de max spanning kunnen hebben en dit kon te veel zijn voor de FPGA tenzij die nog niet gesoldeerd was.

Groene led zal idd enkel werken als er een programma kan geladen worden en met een lege EPCS1 zal hij niet oplichten. De rode ledjes branden zonder programma lichtjes door de tristate van de FPGA. Eens ze normaal gestuurd worden vanuit een programma zullen ze meer oplichten.

3.39V is heel goed, mag tot 3.6V hebben.

Ho ho, ik heb HEEL rustig de spanning opgedraaid. Reeds bij 1.5V rees bij mij het vermoeden dat er met die 3V3 iets niet goed zat (die bleef steken). Was het maximaal geweest, dan was ik bij 3V5 toch zeker opgehouden met spanning opvoeren. Natuurlijk waren de weerstandjes de eerste verdachten. Kennelijk vond ik die weestandjes toch lastiger te solderen dan die hele Cyclone zelf.. 1206'jes hadden overigens ook best gekund, die zijn net wat beter te hanteren.

Ik heb wat gisteren wat foto's gemaakt, die zet ik er vandaag of morgen wel op. Heb ik gisteren niet voor niets de boel lekker schoongesopt in het ultrasoon-bad

Op SK.net schreef fotoopa:

Sorry, ja dan heb je de perfecte methode gebruikt. Ik was bang dat je daar de volle power had opgeplaatst om te starten.

En het schoon maken, ja daar had ik vroeger ook geen probleem mee, even naar de produktie afdeling en hij was gereinigd maar nu thuis zit die mogelijkheid er niet meer in.

Ik ben blij dat ik het toch goed heb gedaan ;)

Op SK.net schreef Eagle666:

Hmm een ultrasoon-bad. Maak je daar elektronica onderdelen/pcb's mee schoon? Wat gebruik je dan als vloeistof, gedestilleerd water? Ik heb zo'n ding niet maar wel heel vaak gezien. Ik vind het nog steeds leuk om d'r eens 1 aan te schaffen maar weet niet goed wat ik er nou wel en wat niet in kan doen. En als je er vanalles in doet kun je het dan goed schoonmaken voor als je weer andere zaken erin wilt doen?

Geen idee wat er precies in het ultrasoonbad zit (inderdaad: de produktie-afdeling :P), maar het is in ieder geval een reinigingsmiddel wat zelfs zonder ultrasoon al flink de flux eraf weet te krijgen, maar door het ultrasoon gaat het allemaal net wat vlotter en komt het spul ook overal goed tussen.

Daarna afspoelen in gedestilleerd water en vervolgens een paar uur in de oven op 70 graden om netjes te drogen. Fohn kan ook, maar daar kan je nog wel wat mee missen. De luchtverplaatsing helpt wel juist weer mee, maar ik kies toch liever voor rustig in de oven.

Switches heb ik na dit proces pas gemonteerd, holle 'dichte' onderdelen wil nog weleens wat in lopen en daar komt het reinigingsmiddel dan niet altijd goed weer uit. Geldt ook voor niet-ingegoten DC-DC convertors en dat soort componenten, maar die hadden we in dit geval niet.

Ik heb voor de JTAG overigens een boxed-header gebruikt die ik nog had liggen, helaas paste er vervolgens niet meer een boxed header voor AS bij (zitten te dicht tegen elkaar), maar door de positie kan de AS net langs de box van de JTAG en kan hij meteen niet meer verkeerd om, omdat de notch van de connector niet langs de buitenkant van de box van de JTAG past. Ik moest aan de 7seg kant wel de zijkant van de box wegknippen, want anders paste ook dat niet.

De grote headers voor de diverse externe signalen heb ik er nog niet op zitten, daar wil ik iets slims gaan doen met THD-weerstanden en een printje erbovenop, ter protectie van de FPGA en bovendien om ruimte te kweken zodat straks het gebruik van headers met flatcables mogelijk is (want ook dat past anders niet).

Resistor-packs voor de VGA heb ik ook niet geplaatst, moet eerst nog zien of ik dat ga gebruiken, mede wegens de matige helderheid. Ik snap zowieso niet helemaal de keuze voor het wel-of-niet gebruiken van resistor-packs. Bij de VGA zijn ze niet optimaal benut en soms met omslachtige doorverbindingen, terwijl ik bij de DIP- (en eventueel tact-)switches, alsmede bij de LEDs en de 7-seg displays juist packs had verwacht in plaats van die rijen weerstanden.

Op SK.net schreef madwizard:

Was ultrasoon niet gevaarlijk voor sommige onderdelen, ik dacht dat lijm e.d. ook los kwam met ultrasoon geluid. En voor kristallen is het misschien ook niet al te best. Maar goed ik weet er verder niets van.

Ik heb zo'n PCC flux remover spuitbus met een kwastje eraan, dat werkt altijd ook prima. In principe is het no-clean soldeerpasta wat ik meestal gebruik maar het ziet er toch een stuk netter uit als het schoon is.

Heb een stencil gesneden voor het FPGA bordje, was aardig wat werk maar dan gaat de rest straks een stuk makkelijker. Zondag proberen alles te solderen. Stuk voor stuk opbouwen gaat wat lastig met soldeerpasta en hete lucht, dat is het makkelijkst op te brengen als het bord leeg is. Maar ik controleer alle verbindingen altijd wel met een multimeter, en met een labvoeding erbij moet het wel lukken.

Wat betreft ultrasoon-reinigen, ze doen dat hier op het werk altijd zo. De kristallen kunnen er prima tegen iig. Het nadeel van handmatig (spuitbus) reinigen is dat je zo moeilijk de flux die overal onder is gekropen kunt bereiken. Op zich niet erg, want die flux kan weinig kwaad behalve misschien wat stof 'vangen' (het spul plakt nogal). Ik gebruik niet, zoals jij, soldeerpasta, maar gewoon tin met zoals gezegd een kwast flux her en der. Je zet de FPGA op een paar hoeken even vast en dan even fluxen en een bol tin langs elke zijkant trekken. Overtollig tin tussen de pootjes haal je ook gemakkelijk weg, vooral met een holle punt (en wederom lekker fluxen :)). Zo'n chip zit binnen de kortste keren netjes vast!

Van het weekend eens even de ByteBlaster in elkaar solderen, dan kan ik gaan testen!

If you want to succeed, double your failure rate.

:edit: had ik niet goed gelezen over die JTAG connector...

De grote headers voor de diverse externe signalen heb ik er nog niet op zitten, daar wil ik iets slims gaan doen met THD-weerstanden en een printje erbovenop, ter protectie van de FPGA en bovendien om ruimte te kweken zodat straks het gebruik van headers met flatcables mogelijk is (want ook dat past anders niet)..

Bedenk dat de LCD 4.3 display gemaakt is om hem direct op die pinheaders aan te sluiten. Heb je dit display niet dan maakt het niet zoveel uit. Ik plaats voor gewone expantie vrouwelijke headers op die pinheaders en met soepele draad gaan die dan naar de normale 3M flatkabel versie's. Zo blijkt het boardje intact en blijft geschikt voor LCD 4.3" en expantie.

Die VGA ga ik idd niet zo bestukken bij mijn 2de bordje. Die I/O lijnen hou ik vrij voor andere zaken.

En die dip swithen heb ik ook op voetjes. die switchen zijn zo klein en onhandig. Daar heb ik mijn 4x4 matrix keyboardje ophangen. Moet ik toch weer terug naar het origineele dan is het gewoon uit en inpluggen. Zo ook voor die 4x7 segment display's ipv LCD2x16 char.

Ik denk dat je me verkeerd begrijpt. Voor de AS zit zeker wel een header, alleen niet boxed. Door de zijkant van de box van de JTAG-header wordt meteen voorkomen dat de AS-header verkeerd om geplaatst kan worden. Simpelweg voor allebei een boxed header paste niet naast elkaar.
edit: Je hebt de opmerking hierover inmiddels zelf weggepoetst ;)

De DIP's, de 7-seg en de TSOP hebben van mij ook cupjes gekregen als bestukking, mede door de eerdere suggestie daaromtrent.

Een 4.3 display heb ik niet, ik begreep destijds uit de discussie dat dat niet zoveel zin had zonder RAM, dus heb hem niet besteld.

If you want to succeed, double your failure rate.

Op 26 oktober 2007 12:54:31 schreef Jochem_S:
Een 4.3 display heb ik niet, ik begreep destijds uit de discussie dat dat niet zoveel zin had zonder RAM, dus heb hem niet besteld.

Hangt ervan af wat je ermee wilt doen. Ik maak nu de driver hiervoor en kan tot 16 regels van 32 characters op het display plaatsen. Mijn default setting is echter 5 regels van elk 16 chars. (zijn dan wat groter)
De image achtergrond is een egaal kleur (instelbaar), de voor- en achtergrond van de characters hebben ook een eigen instelbaar kleur. Als kleur kun je voor ieder een 24 bit waarde kiezen. Maar alle characters hebben hetzelfde kleur.

Voor deze versie gaat het heel gemakkelijk zonder extra's op de FPGA board. Je hebt dus een mooie kleur character display met programmeerbare hoeveelheid characters. De characters kun je schuiven op de image achtergrond en ook je regellengte kan je instellen.

Heb je extra geheugen dan kan het image gedeelte vervangen worden door een echte foto op 24 bit resolutie.
De character generator wordt in de interne ram geladen door de config EPCS1 eeprom.

Tja, dat klinkt dus nog wel interessant. Maar ach, voorlopig toch geen mogelijkheid om na te bestellen, als ik zo eens een inschatting maak van de ontstane situatie. :S

If you want to succeed, double your failure rate.

@Jochem_S: Als je uiteindelijk dezelfde LCD wilt kopen die wij hebben dan even wat info:
Sharp LQ43T3DX02 (klik voor datasheet)
Beter bekend als PSP LCD ;)

Dus zoek even op die laatste term op google en je vind em overal:
ebay (maar zoek even verder op ebay voor betere hits)
Marktplaats

En uiteraard op SparkFun maar die is mogelijk wat aan de dure kant dan je in de shops van ebay kunt vinden.

@Fotoopa: Heb je een tijdmachine toevallig? Ik zie dat je de 27ste je pagina hebt geupdated terwijl het de 26ste is :P :P :P. Of heeft belgie een andere tijdzone dan nederland? ;)

@Eagle666: bedankt, maar die LCD moet dan ook nog op een printje natuurlijk... ach, we zien wel..

If you want to succeed, double your failure rate.

@Fotoopa: Heb je een tijdmachine toevallig? Ik zie dat je de 27ste je pagina hebt geupdated terwijl het de 26ste is :P :P :P. Of heeft belgie een andere tijdzone dan nederland? ;)

Het is gewoon om te zien wie er naar de site kijkt en wakker is :)

Voordeel is dat ik hem morgen niet moet aanpassen als ik weer wat info bijvoeg.

En ja ik wacht nog steeds op een zending met enkele componenten om de LCD aan te sluiten. Maar ook die driver is niet van de poes hoor! Maar het komt wel in orde, morgen wordt de LA aangesloten en beginnen de eerste metingen. Het wordt een displaytje om van te snoepen.....
Maar dat schema, is werkelijk een doolhof om de aansluitingen te kunnen lezen. Ik ga weer een volledige nieuw bestukkingsplan moeten tekenen en vergt allemaal zoveel werk. Op steun van onze vriend Xantus moeten we blijkbaar niet veel meer rekenen.

@Jochem_S,
Er zullen er wel zijn die hun printje nooit bestukken... is trouwens ook niet zo eenvoudig die super fijne connector.

[Bericht gewijzigd door fotoopa op 26 oktober 2007 17:51:12 (14%)

Ben dus blijkbaar niet de enige die niet echt onder de indruk is van het LCD adaptor printje :P.

Heb via de eerste inkoop actie ook een psp LCD besteld, en eindelijk tijd gehad om de boel eens af te maken.

http://www.the12be.demon.nl/psp_lcd/

Wat je ziet is het lcd aangestuurd door een DE2 bordje. Er staat een patroon op om te kijken of alles wel op de juiste plek staat, en dat klopt zowaar :P. Data wordt uit het sram van de de2 op het lcd gezet, waarbij de sram gevult wordt door een niosII core ( voor somige doelen is die dus wel geschikt ;) ).

Jammer genoeg zit er "maar" 512K sram op, wat net niet genoeg is voor een dubbel buffer :(

Alles geschreven in vhdl.

Volgende stap is een drivertje schijven voor uClinux, zodat ik een leuk linux console kan weergeven.

Je hebt waarschijndelijk een eerste versie printje voor je LCD. De 2de versie is beter gemaakt maar behoud dezelfde layout van de 40 polige connector omdat die bedoelt is om direct op de FPGA board te pluggen. Daarom staan ook op de 2de versie de pluggen weer op 1.5 raster uit elkaar. Dat is de meest vervelende zaak want je kunt geen treffelijke standaard connectie maken.

Ik heb het nog niet gesoldeerd wegens tekorten maar hoop het volgende week te kunnen afwerken. Voor op de FPGA maakt ik enkel de character versie. De driver is reeds voor het grootste deel geschreven. Veel ram heb ik daar niet voor nodig.

Ik ga het direct op de FPGA board oppluggen en dan kan het met gewoone pinheaders en tegen headers. Dat zou wel mooi zijn qua opstelling maar je verliest je normale bedieningen van het FPGA boardje omdat ze bedekt zijn. Gelukkig kan ik via voetjes aan die I/O's voor mijn 4x4 keyboardje.

Enfin als alles klaar is komen er wel beelden en ook de verilog source. Ik heb iets minder dan 16 Kbit interne ram nodig inclusief de character generator. Er is dus ruim geheugen genoeg en de aansturing is ook 24 bit kleur. Maar een full foto image display gaat enkel op de DE1 board. Daar is ook die 256kx16 bit 10 nsec ram, voldoende voor 1 full beeld op volle resolutie. Maar om daar nieuwe data snelgenoeg te kunnen aanbrengen is een probleem.

Voor die ByteBlaster: is het nog handig om hetzij LED1 hetzij LED2 rood of groen te doen? Heb van beide kleuren er eentje bij gekregen, maar er staat nergens welke waar moet. LED2 geeft aan dat er VCC is, LED1 zit aan de 244 en zal wel iets in de trant van BB enabled zijn. Voor de werking op zich natuurlijk niet belangrijk, maar is misschien handig zodat als 'men' het heeft over 'de groene led gaat niet aan', hij bij een ander ook groen is.

If you want to succeed, double your failure rate.

@Jochem_S: Nou het ging mij erom dat Xantus die LCD's in actie 2 al niet meer had dus ik geef je weinig kans om er via hem aan te kunnen komen. Met een beetje geluk heeft hij nog wel een PCB voor je. Dus voor die LCD gaf ik je even die gegevens (en ieder die het wil weten).

Okay, thanx..

Enneh, hoe heb jij die leds? :)

If you want to succeed, double your failure rate.