Dag CO'ers,
Ik heb 16 I/O signalen (in0 t/m in15), in rust is alles laag (of als het nodig is hoog), er kunnen er meerdere hoog (of resp. laag) worden. Ik wil nu het signaal dat als eerste hoog (of resp. laag) wordt in een 4 bits code hebben. Dus als in13 als eerste hoog wordt wil ik 1101 op de 4 uitgangen. Na een reset wordt vervolgens de schakeling vrijgegeven en kan opnieuw gekeken worden welk signaal als eerste hoog wordt. Met een uC is dit zo gepiept, maar zijn er andere oplossingen (liefst zonder grote aantallen logische bouwstenen)?
Alle ideeën zijn welkom.
Alvast bedankt!!
jovak
meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
http://www.datasheetcatalog.com/datasheets_pdf/7/4/1/4/74148.shtml
Deze kan je ook samen koppelen en dan 16 lijnen naar 4 maken.
Google termen. Priority encoder. als je er meer over wilt vinden.
Pakt de priority encoder niet alleen de lijn met de hoogst waardering? Dus als eerst 1 hoog wordt en net daarna 6, zal de uitgang 6 zijn, toch?
Ga me er even in verdiepen..
Thevel
Golden Member
Misschien is het een idee om een 4067 te gebruiken, deze heeft 16 ingangen en 1 uitgang.
http://ics.nxp.com/products/hef/datasheet/hef4067b.pdf
Met een teller laat je de 4067 zeer snel lopen.
De uitgang van de 4067 sluit je aan op de SET ingang van een flipflop welke de teller kan laten stoppen.
Als b.v ingang 13 hoog wordt wordt de flipflop geset en stopt de teller, de data van de teller is dan 1101
Wat ik bedoel lijkt een beetje hier op: http://www.uploadarchief.net/files/download/priority%20encoder.jpg
Ik hoop dat het een beetje duidelijk is...
Edit/
Als de teller loopt (dus als er nog geen enkele ingang hoog is) wisselt de data razend snel op de uitgang.
Als dat niet wenselijk is dan kun je op dat moment:
- De uitgangen afkoppelen met b.v een 4066.
- De uitgangen laag maken met diodes.
- Een latch gebruiken, hierbij heb je altijd de laatste data op de uitgang.
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Volgens mij is deze vraag nog niet zo lang geleden hier voorbijgekomen. Daar is de term priority encoder ook genoemd, dus even zoeken moet m opleveren. Iemand had daar een schemaatje gepost.
Thevel
Golden Member
Je bedoelt toch niet dit topic?
http://www.circuitsonline.net/forum/view/65921/1/priority+encoder
benleentje
Golden Member
Neem dan 3 proioriteits encoders
http://www.uploadarchief.net/files/download/priority%20encoder%20met%2…
JE moet alle ingangen hoog maken dan kan geen van de 2 geen ingang encoders zijn gs uitgang laag maken.
Als 1 van de 2 ingang encoders zijn gs signaal laag maakt zal de uitgang encoder ook zijn GS signaal laag maken.
De AND poorten aan de ingang is zinloos en werkt niet. Je op de uitgangen nog een latch moeten zetten die continu geupdated kan worden totdat zijn eneble ingang van signaal verandert op dat moment staat de latch vast.
Ik zal anders morgen er nog verder over nadenken.
Welterusten.
[Bericht gewijzigd door benleentje op (47%)]
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Op 21 juni 2010 21:29:49 schreef Thevel:
Je bedoelt toch niet dit topic?
http://www.circuitsonline.net/forum/view/65921/1/priority+encoder
Nee, die niet. Deze:
http://www.circuitsonline.net/forum/view/84241
Ik weet niet meer precies wat het probleem daar was hoor. Gewoon even lezen, altijd leerzaam 
benleentje
Golden Member
De ingangs latch ziet er goed uit.
Signaal van knop 1 (moet zijn knop0) moet naar d7 want dat geeft de goede logische uitgang voor een 0
Signaal van knop acht (moet zijn knop 7) moet naar D0 want die geeft de goede logische uitgang voor een 7
De inverters aan de ingang van U2 en U3 is een goed idee.
De inverters aan de uitgang is geen goed idee omdat je dan geen goede logische uitgangen meer heb voor 0 t/m 15.
Het is jammer dan de ls148 bij een ongeldige uitgang al zijn uitgangen hoog maakt daarom kan je ze niet direct met een or poort koppelen.
Gebruik mijn schema voor de uitgangen. Met de E0 uitgang laat via een and poort de uitgang van dat IC door of je blokkeert het.
