hallo allemaal,

ik ben met een projectje bezig en ik ga met een binaire up counter twee sram chips die parralel staan uit te lezen, door deze met de adresslijnen te verbinden.
alleen ik ben tegen een probleem aangelopen, de teller moet maar tot een bepaald getal tellen, dec: 307200 daarna moet hij weer bij 0 beginnen, heeft iemand enig idee hoe dit op te lossen is.
ik zat te denken om met and poorjes deze binaire waarden uit de adress lijn te filteren en bij dit getal een reset geven aan de up counters. alleen dit lijkt me een beetje beun, misschien dat jullie iets beters weten? of is dit de enige manier?

Gr, Jeffrey

Met 2 stuks 74LS460, of 3 stuks 74LS688? (10 en resp. 8 bits address comparators)

Op 14 december 2010 23:54:06 schreef Jeffreynlnl:
ik zat te denken om met and poortjes deze binaire waarden uit de adress lijn te filteren en bij dit getal een reset geven aan de up counters. alleen dit lijkt me een beetje beun

Dit is een prima manier, maar dan moet je de reset wel synchroon maken anders kan het zijn dat je teller niet helemaal reset.

Als de reset namelijk direct is aangesloten (asynchroon dus) zullen niet alle flipflops gelijk naar 0 springen. Het resultaat is dat je reset dan wegvalt omdat je ketting and/or poortjes niet meer die eind waarde ziet. Het resultaat is een heel kort reset naaldje. Kortom een z.g.n. race conditie.

Dus de decodering van het getal eerst in een D-FF stoppen die dan doorklokken naar de reset. Het bijkomstig effect is dan wel dat je de decodering van je eindpunt EEN lager moet kiezen.
Dus 0x4AFFF ipv. 0x4B000

Of gewoon een teller kiezen met een synchrone reset, wel zo handig.

ja ik zat ook al te kijken naar een synchrone reset, alleen ik kan niet echt een goede chip vinden, hij moet signalen van 5v schakelen en op een klok van rond de 30MHz of hoger werken, en een synchrone reset hebben, het liefst een 8 bit up counter.

De 74Fxxx serie gebruiken, daar is genoeg spul van.
Of een van de modernere series ACT etc.
P.S. De 74ALSxxx serie heb ik een hekel aan, te storings gevoelig.

maar deze kunnen allemaal op een clock van 25MHz lopen?

[Bericht gewijzigd door Henry S. op (71%)]

Weet ik niet, gewoon het datasheet raadplegen. Verder alleen volledig synchrone tellers gebruiken, die zijn het snelst.

Ik begrijp je vraag eigenlijk niet goed.

Jij gaat ram chips uitlezen via de adreslijnen met een up counter.
Het moet sneller dan 25Mhz gaan, waarom?
Bij een bepaalde tellerstand resetten met poorten.

Dat kun je ook aan 25Khz bij wijze van spreken.

Wat ik mij ook afvraag is het feit dat je een 'ingewikkeld' proces/ontwerp wilt maken maar nog geen feeling hebt met TTL,HTC...ic's.

Als je rams wilt copieren die in een schakeling staan dan zul je iets meer nodig hebben dan een paar counters.

Op 15 december 2010 13:56:24 schreef MGP:
Ik begrijp je vraag eigenlijk niet goed.

Sorry, maar waarom trek je dan een foute conclusie c.q. een aanname fout?

ik zal het om het wat duidelijker te maken even uitleggen wat ik van plan ben, het is de bedoeling om een simpele vga driver te maken voor mijn microcontroller projecten, ik laat eerst mijn microcontroller de sram chip's inladen, en daarna laat ik deze continue uitlezen door de up counter, en de data versturen naar een RAMDAC die deze signalen weer omzet in RGB niveaus, en inderdaad ik weet nog niet veel van analoog, dit is zelfs mijn eerste projectje dat ik ontworpen heb en waar ik analoog in ga werken. maar om die sram chips uit te lezen heb ik een up counter nodig die dus die chips uitleest, en daarom moet hij ook zo hoog draaien.

Misschien is dit een leuke voor je. Hier wordt een SDRAM module aan een AVR geknoopt om beeld te produceren.
http://tinyvga.com/avr-sdram-vga

ik ben eruit gekomen, ben nu tegen nog iets aangelopen en weet niet of ik hiervoor een nieuwe discussie moet starten.

maar het probleem is dat ik mijn 25.175 MHz klok door 800 moet delen voor de verticale sync, is hier een chipie voor of hoe is dit het makkelijkste op te lossen?

Zo kom je nog veel meer problemen tegen, je moet ook nog een V-sync maken en de voor/na stoep signalen etc.
Dan kom je snel uit dat je beter het hele spul in een fpga/pld kunt stoppen anders heb je straks een berg IC's die groter wordt als een A4-tje.

Wil je het toch "discreet" maken kun je ook een losse MC6845 gebruiken om de sync timing te maken. Uiteindelijk komt je dan uit op een echte VGA controller :)

ja ik wil het zo retro mogelijk houden, omdat ik helemaal nieuw ben in het gebied met ictjes enzo.

maar die MC6845 die je zij, dat is een hele controller voor de sync, maar ik heb de Vsync al klaar, ik hoef alleen de klok nogmaar door 800 te delen, is daar een makkelijke oplossing voor?

[Bericht gewijzigd door Henry S. op (49%)]

Met alleen delen door 800 ben je er niet!

Je moet +/- een 4 uS brede sync maken, dan een uS geen video, dan 800 CLK perioden voor de pixels, dan een paar uS geen video.

Die paar uS geen video zijn de voorstoep en achterstoep (Back/Front porch).
Dat moet dus ook allemaal getimed worden. Daar heb je nog wat meer tellers voor nodig of heb je die al in de 800 clocks meegenomen?

640 pixels beeld +
160 clock perioden voor de back+sync+front porch
---
800

Kijk even op:
http://en.wikipedia.org/wiki/Video_Graphics_Array

jha daar heb ik allemaal rekening mee gehouden, alleen wat ik met die klok delen door 800 wil bereiken is, dat ik dan met het normale klok signaal ik de horizontale sync kan genereren, en door die klok door 800 te delen, kan ik de verticale sync genereren doordat dan elke klokpuls 1 horizontale lijn pixel lijn is en ik daar makkelijker mee kan tellen met de logische componenten.

jha daar heb ik allemaal rekening mee gehouden, alleen wat ik met die klok delen door 800 wil bereiken is, dat ik dan met het normale klok signaal ik de horizontale sync kan genereren, en door die klok door 800 te delen, kan ik de verticale sync genereren doordat dan elke klokpuls 1 horizontale lijn pixel lijn is en ik daar makkelijker mee kan rekenen met de logische componenten.

[Bericht gewijzigd door Henry S. op (34%)]

ik heb mijn hsync en vsync nu goed afgesteld, de monitor ziet het signaal wat hij binnenkrijgt als : 640 * 480 60Hz, dit was ook de bedoeling.
alleen zit ik nu met het probleem dat ik zwart beeld heb, ik heb de rgb signalen 100% van de tijd op 100% kleur (wit) staan, is dit gewoon mogelijk en kijkt de monitor alleen naar de zichtbare tijd dat het signaal binnen is, of moet de rgb op 0 staan als het buiten het zichtbare veld is?

Dat het beeld zwart is zou misschien wel kunnen als je continue het signaal 100% uitstuurt. In TV's zit een clamp circuit dat het nul niveau in de sync tijd meet, maar of dit bij een monitor ook zo is weet ik niet.

Wat is je niveau? Dit moet dacht ik uit mijn hoofd 0.7V zijn voor 100%.

ja mijn niveau is max 0.7 volt. maar de sync signalen werken helemaal 100%, volgens het scherm en mijn oscilloscope.
oke dus ik moet alles buiten het zichtbare vlak naar 0 halen en alles erbinnen naar 1 dan zou ik wel beeld moeten krijgen?

[Bericht gewijzigd door Jeffreynlnl op (22%)]

In principe wel, als het aan de clamping ligt.
Je zult dus een display enable signaal moeten maken waarme je het video signaal blanked zowel vertikaal als horizontaal.

Dat was de reden waarom ik ook zei dat je het handigst een 6845 ervoor kunt gebruiken. Want stiekem heb je heel wat timing signalen nodig. Die laat je dan op de gedeelde pixel clock lopen.

En vintage is het genoeg, de originele 6845 is minimaal zo'n 30 jaar oud! Het is zeg maar de '555' onder de video controllers.
Net effe het datasheet opgezocht: 1977.
Nog in East Kilbride Schotland gemaakt, daar ben ik toevallig nog eens geweest in die fabriek. Toen was 4Kx4 SRAM state of the art...

ja het lag dus aan de clamping, ik heb hem nu aan de gang gekregen, ik krijg een èèn kleurig beeld op mijn scherm. alleen nu zit ik nog met een probleem dat het scherm om de 5 - 30 seconden op zwart gaat. waar kan dit aan liggen?(dit op zwart gaan duurt ong 2 seconden, en ik denk dat het scherm hier naar een formaat zoekt of een frequentie)

[Bericht gewijzigd door Jeffreynlnl op (20%)]

Op 15 december 2010 16:42:21 schreef Jeffreynlnl:
ik zal het om het wat duidelijker te maken even uitleggen wat ik van plan ben, het is de bedoeling om een simpele vga driver te maken voor mijn microcontroller projecten

Gaat je niet lukken met een uc. Te traag. Als je dit wilt, dan moet je met fpga's gaan werken.

heb jij ooit met fpga gewerkt en zo ja is het moeilijk te leren? en zijn er makkelijke beginner setjes ofzo?

[Bericht gewijzigd door Henry S. op (55%)]

ja. fpga is doodsimpel.
grabbel een de1 development bordje van het internet , download Quartus software bij altera en vort met de geit.
je kan of schema tekenen (alle basispoorten en de ganse 74xx reeks zit er in), of je gaat voor een synthesetaal.

zo een vga controller maken is in ene vloek en een zucht klaar in een fpga. je kan er gelijk een karaktergenerator mee in duwen. ( daar al aan gedacht / of ga je dat pruts processortje pixeltjes laten duwen ? )

oke dus met een DE1 dev bordje kan ik vanaf 0 fpga leren? is hiervoor ook veel online documentatie en voorbeelden beschikbaar?