Fler portar på PIC
- SeniorLemuren
- Inlägg: 8424
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Fler portar på PIC
Detta är en teoretisk fråga än så länge. Sitter och leker med ett 8 bitars skiftregister. 74LS164.
Tänker så här. Om man matar in ett 8 bitars tal i kretsen så kunde man styra ett antal reläer med ett fåtal portar från PIC:en.
Portar som behövs är, en för reset, en för klockan och en för data in. Problemet är ju emellertid att om skiftregistret är direktkopplat till reläerna (via transistorer) så kommer de ju att fladdra till när man laddar registret.
Man skulle då behöva en 8-bitars latch som håller bitarna medan man laddar skiftregistret och släpper på när alla bitar är på plats. Det kunde gå till så att man alltid skickar en etta först till skiftregistret och låter den biten tala om för latchen när det är klart att lägga ut byten. (Den första biten kommer ju fram till sista porten på shiftregistret sist.)
Det innebär att man kan koppla 7 st reläer med hjälp av 3 bitar, ingen bra utdelning tycker jag.
hur brukar man göra?
Tänker så här. Om man matar in ett 8 bitars tal i kretsen så kunde man styra ett antal reläer med ett fåtal portar från PIC:en.
Portar som behövs är, en för reset, en för klockan och en för data in. Problemet är ju emellertid att om skiftregistret är direktkopplat till reläerna (via transistorer) så kommer de ju att fladdra till när man laddar registret.
Man skulle då behöva en 8-bitars latch som håller bitarna medan man laddar skiftregistret och släpper på när alla bitar är på plats. Det kunde gå till så att man alltid skickar en etta först till skiftregistret och låter den biten tala om för latchen när det är klart att lägga ut byten. (Den första biten kommer ju fram till sista porten på shiftregistret sist.)
Det innebär att man kan koppla 7 st reläer med hjälp av 3 bitar, ingen bra utdelning tycker jag.
hur brukar man göra?
Re: Fler portar på PIC
Du vill ha en 74xx595!
http://se.farnell.com/texas-instruments ... dp/1607849
http://se.farnell.com/texas-instruments ... dp/1607849
- SeniorLemuren
- Inlägg: 8424
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Fler portar på PIC
Då slipper jag latchen men åker på en pinne mer från PIC för att styra den inbyggda latchen så nettot blir väl det samma? (4 pinnar till 8 reläer eller 3 pinnar till 7 reläer.)
Edit: Har en liknande liggande 74LS299
Edit: Har en liknande liggande 74LS299
Re: Fler portar på PIC
Eller så kan man använda en MCP23S17 I/O-Expander (16st extra I/O) fungerar med SPI eller I2C beroende på vilken version man köper och då har man ha både in och utgångar. Den tar min 3 befintliga (man kan kanske klara sig på 2, om man inte ska läsa från kretsen, inget jag prövat) I/O men man kan koppla 8st utan att behöva använda ytterligare I/O för CS.
/J
/J
Re: Fler portar på PIC
Använder mig av 74HC7541 för ingångar och 74HC573 för utgångar, på det sättet kan jag multiplexa alla digitala signaler på samma port, med ett fåtal kontrollsignaler.
Just nu totalt ett 50-tal signaler på en 16-bitarsport samt en 8 bitars kontrollport.
Det hade naturligtvis gått med färre kontrollsignaler, men jag har funktionsavgränsat kontrollsignalerna.
Just nu totalt ett 50-tal signaler på en 16-bitarsport samt en 8 bitars kontrollport.
Det hade naturligtvis gått med färre kontrollsignaler, men jag har funktionsavgränsat kontrollsignalerna.
Re: Fler portar på PIC
Behöver du fler utgångar än vad ett shiftregister ger seriekopplar du bara fler! Så 8 eller 160 utgångar drar lika många pinnar på uC.
- SeniorLemuren
- Inlägg: 8424
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Fler portar på PIC
Men du måste väl ändå ha en SIPO och en PISO tillsammans med dessa? Vill man ha både in och utgångar vore det väl mer effektivt att använda tex. PCF8584?TomasL skrev:Använder mig av 74HC7541 för ingångar och 74HC573 för utgångar, på det sättet kan jag multiplexa alla digitala signaler på samma port, med ett fåtal kontrollsignaler.
Just nu totalt ett 50-tal signaler på en 16-bitarsport samt en 8 bitars kontrollport.
Det hade naturligtvis gått med färre kontrollsignaler, men jag har funktionsavgränsat kontrollsignalerna.
Re: Fler portar på PIC
Nja, inte i min situation, eftersom jag ändå har en 16-bitars databus med 4 kontrollsignaler.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Fler portar på PIC
Nej. De kommer inte att fladdra till. Det går alldeles för fort för att dina relä skall hinnaProblemet är ju emellertid att om skiftregistret är direktkopplat till reläerna (via transistorer) så kommer de ju att fladdra till när man laddar registret.
reagera.
MEN. tänk på att det är ett elände att ha skiftregister som styr utgångar om dessa
är kritiska. t.ex. relä som styr en motor eller liknande. Vid uppstart så kan skiftregistret anta en slumpmässig inställning och om din PIC av någon anledning
inte startar så får du okontrollerade utgångsfunktioner.
Använd dem heller för t.ex. lysdioder mm. men styr alltid funktioner direkt från processorn
Swech
- SeniorLemuren
- Inlägg: 8424
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Fler portar på PIC
Ok. då är det ju inte i närheten av den lösning jag behöver. Jag har ingen 16-bitars buss.
På din fråga varför inte en uC med flera portar är svaret att jag ville bygga på ett befintligt system och vill inte byta ut uC.

På din fråga varför inte en uC med flera portar är svaret att jag ville bygga på ett befintligt system och vill inte byta ut uC.
- SeniorLemuren
- Inlägg: 8424
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Fler portar på PIC
En möjlighet är väl att lägga skiftregistrets resetingång låg med pull down och låta PIC sätta den till ett. I det fallet är ju alltid shiftregistret 0-ställt ända till PIC går igång?Swech skrev:MEN. tänk på att det är ett elände att ha skiftregister som styr utgångar om dessa är kritiska. t.ex. relä som styr en motor eller liknande. Vid uppstart så kan skiftregistret anta en slumpmässig inställning och om din PIC av någon anledning inte startar så får du okontrollerade utgångsfunktioner.
Använd dem heller för t.ex. lysdioder mm. men styr alltid funktioner direkt från processorn
Swech
Re: Fler portar på PIC
> En möjlighet är väl att lägga skiftregistrets resetingång låg med pull down...
Det finns speciella shift/latch kretsar där man "by design" har byggt in
ett säkert läge vid power-on. Jag minns inte exakt, men det kanske
var TI som hade något. Det är alltså inte vanlig standard "74" logik.
Men jag kan inte hitta dom just nu, så jag kan minnas fel...
Fördelen med de olika "port expanders" som finns är ju att man kan
blanda in och ut portar lite som man vill, de fungerar alltså lite som
en av de vanliga portarna på processorn och har ofta även interrupt
logik så att en ändring på en pinne kan dra ett interrupt mot processorn.
En annan fördel är att pinnarna normalt har ett känt läge vid power-on.
Nackdelen är en lite mer komplex programmering och man kan kanske inte
"köra" pinnarna riktigt lika snabbt som en enkelt shiftregister.
Det finns speciella shift/latch kretsar där man "by design" har byggt in
ett säkert läge vid power-on. Jag minns inte exakt, men det kanske
var TI som hade något. Det är alltså inte vanlig standard "74" logik.
Men jag kan inte hitta dom just nu, så jag kan minnas fel...

Fördelen med de olika "port expanders" som finns är ju att man kan
blanda in och ut portar lite som man vill, de fungerar alltså lite som
en av de vanliga portarna på processorn och har ofta även interrupt
logik så att en ändring på en pinne kan dra ett interrupt mot processorn.
En annan fördel är att pinnarna normalt har ett känt läge vid power-on.
Nackdelen är en lite mer komplex programmering och man kan kanske inte
"köra" pinnarna riktigt lika snabbt som en enkelt shiftregister.