Ik ben hier nieuw, maar ik loop al een tijdje uit te zoeken hoe ik het volgende probleem kan oplossen:
Uit een oude fax heb ik het frontpanel gesloopt. Wat ik toen overhield was een panel met 39 knoppen en een lcd. Dat lcd boeit nu even niet zo, het gaat meer om die knoppen.
Ik zou graag willen dat wanneer ik op een knopje druk er bijvoorbeeld een programma gestart wordt op de PC. De communicatie moet verlopen via de seriele poort en niet via de parallele, wnat die is al bezet.
Nu heb ik de volgende constructie bedacht: Ik neem twee 4x5 keypad matrix encoders (74C922 IC). Deze geven dus bij een druk op de toets een parallele output, bijvoorbeeld 1000. De tweede matrix encoder geeft dan dus 0000, want daar wordt geen knop ingedrukt (kan maar 1 knop tegelijk indrukken).
Deze parallel output wordt vervolgens in een 8-bits schuifregister (4021 IC) gezet, dus 1000 0000. Vervolgens wordt dit omgezet naar serieel en moet dus naar de com poort worden verstuurd.
Ik heb al onderstaand schema, maar dat is verre van compleet. Hoe moet ik nu verder om dit te laten werken? Of is er misschien een makkelijkere methode? Ik heb nog niet zo heel veel ervaring met electronica, maar ik doe mijn best natuurlijk
. Iemand de kan helpen?
menno
Je biertje wordt niet jaloers als je een andere pakt, je vrouw wel ...
elektron_
beetje gek
Voor deze schakeling moet je goed de tijdsdiagrammen bestuderen van de datasheets, het effect van enable, clock enz.
Een seriele poort heeft 3 uitgang signalen, TX, RTS, DTR
en daar moet je het mee doen. Om de "inlees controller"
te sturen.
De data uitgangen van de 74C922 hebben een Tristate uitgang dat wil zeggen dat de uitgangen van de 2 eventueel aan mekaar kunt maken. Maar dan moet je beurtelings de ene dan de andere key-encoder uitlezen. Je hebt dan een kleinere shiftregister nodig,
4 bit in. Maar dan heb je misschien meer controle signalen van de pc nodig.
[Bericht gewijzigd door elektron_ op ]
Hmm, ik hoor al wel dat het niet zo makkelijk is als dat ik dacht. Een microcontroller zo kunnen dat klinkt me iets te moeilijk, omdat ik me nog maar net heb verdiept in deze materie.
Maar als ik de documentatie van deze IC's lees dan maak ik er uit op dat de 74C922 een eigen oscilator nodig heeft om de matrix om de zoveel tijd te controleren op een toetsaanslag. Als ik het dan goed begrijp moet je die timings dus afstemmen op de timings van het schuifregister?
Zou bovenstaande schakeling makkelijker te maken zijn voor de parallele poort ipv de seriële?
elektron_
beetje gek
Op 12 oktober 2003 19:17:14 schreef Wouter Wittekamp:
Als ik het dan goed begrijp moet je die timings dus afstemmen op de timings van het schuifregister?
quote]Ik denk het niet, want er staat dat de 74C922 een register heeft die de laatste key onthoudt. Dus is je moet deze chip selecteren en hierdooraangeven dat het zijn beurt is om data op de bus te zetten. (Tristate uitgang)
Ok, thx elektron_. Ik lees ff verder, want het stuk register naar com-poort is me nog een beetje vag.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
In deze draad http://www.circuitsonline.net/forum/view.php?id=6482 wordt eigenlijk precies het zelfde gevraagd. Ik heb daar aangeboden een PIC programmatje te schrijven als de OP zijn probleem goed beschrijft. Als hij dat doet is de oplossing misschien ook bruikbaar voor de vraag hier.
He, dat draadje had ik nog niet gezien, dat zou zeker bruikbaar zijn jah
Maar ik heb zelf de balle verstand van microcontrolles en het programmeren ervan, dus als ik dat programma dan ook zou mogen gebruiken....
En als ik dan wat meer begrijp van het proggen van zo'n ding, kan ik het zelf altijd nog aanpassen 
Maar als ik het goed begrijp, hoef je dan ok geen key matrix meer te gebruiken, daarvoor gebruik je gewoon de hoeveelheid ingangen van de PIC? Dat zou het geheel wel erg versimpelen.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 13 oktober 2003 16:49:47 schreef Wouter Wittekamp:
Maar als ik het goed begrijp, hoef je dan ok geen key matrix meer te gebruiken, daarvoor gebruik je gewoon de hoeveelheid ingangen van de PIC? Dat zou het geheel wel erg versimpelen.
De prijs van een PIC (of andere microcontroller) is nogal gerelateerd aan het aantal pinnen. Voor 39 pinnen zou je net niet uit kunnen met een 40 pins chip, dan moet je naar nog grotere en die zijn duur en niet DIP. Dus multiplexen is toch beter, en dat kan de PIC ook voor je doen dus wat is er tegen?
Boudie
Vervangen DOOR.
Wat hier wordt geprobeerd is inderdaad gelijk aan wat ik wil. Ik ben na alle hier opgedane kennis en zoeken op het net tot de conclusie gekomen dat een PIC met seriële communicatie aan boord de beste oplossing is (voor mij althans) en ik denk ook voor het hier beschreven probleem.
Hmm, dan gaan we dus voor de PIC.
Als Wouter er dan een prog voor wil maken, dan is de grootste drempel in ieder geval verholpen 
Want volgensm mij kunnen Boudie en ik hetzelfde prog gebruiken, twee vliegen in een klap 
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 13 oktober 2003 19:17:20 schreef Wouter Wittekamp:
Want volgensm mij kunnen Boudie en ik hetzelfde prog gebruiken, twee vliegen in een klap
Dan moet je Boudie nog even overtuigen dat hij precies aangeeft wat hij nodig heeft.