Utöka IO på FPGA - MUX vs Shifregister vs ????
Utöka IO på FPGA - MUX vs Shifregister vs ????
Hej,
Jag har ont om IO pinnar på mitt FPGA kort (Spartan 3A Eval kit) och behöver utöka dessa med ca 30-40 st.
För nuvarande har jag två alternativ på att göra detta men andra förslag välkomnas varmt.
Önskemålet är att det skall vara så enkelt som möjligt att bygga (LÄS lite löda), i FPGAn behöver det inte vara enkelt:
- Så få sladdar mellan FPGA och 'IO modul'
- Få komponenter som möjligt
- Inga krav på prestanda (skall driva knappar och rotations encoders)
1. Shift Register.
Kaskad koppla flera shift register som som har paralell load och serial out.
Väldigt få sladdar till FPGAn, nackdelen är att det enda jag har hittat är 8bitars shiftregister med paralell load och serial out.
2. MUX
Elfa har 16 MUXar.
Fördelen är att det blir mycket få komponenter men dock lite flera sladdar till FPGAn.
Några andra förslag?
Jag har ont om IO pinnar på mitt FPGA kort (Spartan 3A Eval kit) och behöver utöka dessa med ca 30-40 st.
För nuvarande har jag två alternativ på att göra detta men andra förslag välkomnas varmt.
Önskemålet är att det skall vara så enkelt som möjligt att bygga (LÄS lite löda), i FPGAn behöver det inte vara enkelt:
- Så få sladdar mellan FPGA och 'IO modul'
- Få komponenter som möjligt
- Inga krav på prestanda (skall driva knappar och rotations encoders)
1. Shift Register.
Kaskad koppla flera shift register som som har paralell load och serial out.
Väldigt få sladdar till FPGAn, nackdelen är att det enda jag har hittat är 8bitars shiftregister med paralell load och serial out.
2. MUX
Elfa har 16 MUXar.
Fördelen är att det blir mycket få komponenter men dock lite flera sladdar till FPGAn.
Några andra förslag?
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
De kan ju kaskadkopplas, de där shiftregistrena. Eller blir det för "krångligt"?
Många knappar kan läsas med få I/O med hjälp av sk. "charlieplexing". Kanske vore det ett alternativ till att utöka antalet I/O?
Många knappar kan läsas med få I/O med hjälp av sk. "charlieplexing". Kanske vore det ett alternativ till att utöka antalet I/O?
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
En uC i mellan kanske? med 4-5 st 8 bitars portar
T.ex en Atmega.. eller liknande PIC
Då blir det inte mycke löda, men däremot mjukvara...
Men t.ex avstudsning och annat kan ju uCn ta hand om
Swech
T.ex en Atmega.. eller liknande PIC
Då blir det inte mycke löda, men däremot mjukvara...
Men t.ex avstudsning och annat kan ju uCn ta hand om
Swech
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Vad sägs om microchip MCP23S17 har 16 i/o:s
Går att kaskadkoppla eller köra 8 enheter med address..(16*8=128), de har 3bit address som man kan sätta individuellt.
De går att köra upp till 10Mhz.
Edit: för 48 i/o:s så behöver du bara 3...
Edit2: du kan få interrupt on change som bonus också.
Går att kaskadkoppla eller köra 8 enheter med address..(16*8=128), de har 3bit address som man kan sätta individuellt.
De går att köra upp till 10Mhz.
Edit: för 48 i/o:s så behöver du bara 3...
Edit2: du kan få interrupt on change som bonus också.
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
då slänger jag in ett förslag med en CPLD programmerad som ett skiftregister eller mux eller vad du nu vill...
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Om det är knappar det handlar om kanske det går att matriskoppla och slippa expansion helt. Eller det kanske redan är gjort och ytterligare IO behövs ändå.
Annars är nog en dedikerad uC det enklaste, kanske med SPI-interface.
Annars är nog en dedikerad uC det enklaste, kanske med SPI-interface.
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
> (skall driva knappar och rotations encoders)
*Driva* knappar och encoders ?
Normalt brukar man läsa knappar och encoders.
> det enda jag har hittat är 8bitars shiftregister med paralell load och serial out.
Då har du inte letat speciellt mycket eller bra.
*Driva* knappar och encoders ?
Normalt brukar man läsa knappar och encoders.
> det enda jag har hittat är 8bitars shiftregister med paralell load och serial out.
Då har du inte letat speciellt mycket eller bra.
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Hej tacksam för alla svar,
Har inga programmerare för uC och CPLDer så det blir inget med det. Men en CPLD i DIL kapsel hade varit perfekt.
Har tyvärr inte tillräckligt med portar för att matriskoppla.
Micke_s:
MCP23S17 verkar bra, interrupten var en fin bonus.
Vet du var man kan köpa några sådana?
Annars så blir det till att kaskad koppla några shiftregister tror jag.
Sodjan din fillur:
Du har helt rätt, man läser knapparna och encoders.
Jag har letat på ELFA, inte så jätte dåligt?
Men om du har några andra tips så får du gärna dela med dig!
Har inga programmerare för uC och CPLDer så det blir inget med det. Men en CPLD i DIL kapsel hade varit perfekt.
Har tyvärr inte tillräckligt med portar för att matriskoppla.
Micke_s:
MCP23S17 verkar bra, interrupten var en fin bonus.
Vet du var man kan köpa några sådana?
Annars så blir det till att kaskad koppla några shiftregister tror jag.
Sodjan din fillur:
Du har helt rätt, man läser knapparna och encoders.
Jag har letat på ELFA, inte så jätte dåligt?
Men om du har några andra tips så får du gärna dela med dig!
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
farnell har t.ex. 1292238 hålmonterad, finns ytad också...
Microchipdirect, digikey, mouser har också,
Edit: Mouser tar 20€ i frakt och tar kort direkt.
edit2: mouser nr 579-MCP23S17-E/SP för hålmonterad
Microchipdirect, digikey, mouser har också,
Edit: Mouser tar 20€ i frakt och tar kort direkt.
edit2: mouser nr 579-MCP23S17-E/SP för hålmonterad
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Förstår inte riktigt. Det går ju åt färre pinnar vid matriskoppling. Har du 20 knappar så går det endast åt 4 utportar och 5 inportar, istället för 20 inportar.arte skrev: Har tyvärr inte tillräckligt med portar för att matriskoppla.
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Hej,
Jag kommer inte att matriskoppla på FPGAn då jag endast har ca 10 pinnar ledigt (och alltid bra att ha några extra).
Så det får bli något serielt interface till en IO modul.
Men man skulle kunna tänka sig att man matriskopplar på IO modulen.
Jag kommer inte att matriskoppla på FPGAn då jag endast har ca 10 pinnar ledigt (och alltid bra att ha några extra).
Så det får bli något serielt interface till en IO modul.
Men man skulle kunna tänka sig att man matriskopplar på IO modulen.
Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Alltså...
Eftersom du skrev "driva" så antog jag att det var *utgångar* du ville ha.
Alltså "serial in, parr out". Du sa att du enbart hade hittat "parr in, ser out",
vilket ju nu låter som precis det du behöver (?). I alla fall för att läsa
vanliga tryckknappar. I'm lost...
Eftersom du skrev "driva" så antog jag att det var *utgångar* du ville ha.
Alltså "serial in, parr out". Du sa att du enbart hade hittat "parr in, ser out",
vilket ju nu låter som precis det du behöver (?). I alla fall för att läsa
vanliga tryckknappar. I'm lost...

Re: Utöka IO på FPGA - MUX vs Shifregister vs ????
Aha, jag utryckte mig lite oklart angående shift registerna.
Vad jag menade var att jag bara hade hittat PISO shiftregister med ENDAST 8bitar.
Skulle gärna vilja ha ett PISO shiftregister med betydligt mera bitar.
Med ett 8bitars PISO så behöver jag kaskad koppla flera stycken (kanske 5 st).
Det jag bygger är en MIDI controller, altså en box med massa rattar och knappar som genererar MIDI signaler via USB.
Orsaken till min noja med att löda är att mitt förra MIDI controller bygge haverarade pga av för mycket sladdar och komponenter.
Då hade jag en PIC + massa muxar som läste av knappar och potentiometrar (via AD).
Nu har jag ersatt pottarna med rotationencodrar, jag har fått för mig att det blir enklare.
Vad jag menade var att jag bara hade hittat PISO shiftregister med ENDAST 8bitar.
Skulle gärna vilja ha ett PISO shiftregister med betydligt mera bitar.
Med ett 8bitars PISO så behöver jag kaskad koppla flera stycken (kanske 5 st).
Det jag bygger är en MIDI controller, altså en box med massa rattar och knappar som genererar MIDI signaler via USB.
Orsaken till min noja med att löda är att mitt förra MIDI controller bygge haverarade pga av för mycket sladdar och komponenter.
Då hade jag en PIC + massa muxar som läste av knappar och potentiometrar (via AD).
Nu har jag ersatt pottarna med rotationencodrar, jag har fått för mig att det blir enklare.