Sida 1 av 3
Fler portar på PIC
Postat: 3 januari 2013, 01:41:26
av SeniorLemuren
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?
Re: Fler portar på PIC
Postat: 3 januari 2013, 01:51:07
av gkar
Re: Fler portar på PIC
Postat: 3 januari 2013, 02:12:03
av SeniorLemuren
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
Re: Fler portar på PIC
Postat: 3 januari 2013, 08:16:45
av TomasL
Varför inte en processor med fler portar i stället?
Re: Fler portar på PIC
Postat: 3 januari 2013, 08:20:10
av janno
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
Re: Fler portar på PIC
Postat: 3 januari 2013, 09:07:16
av TomasL
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
Postat: 3 januari 2013, 09:14:16
av AndLi
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.
Re: Fler portar på PIC
Postat: 3 januari 2013, 09:45:27
av SeniorLemuren
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.
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?
Re: Fler portar på PIC
Postat: 3 januari 2013, 09:54:58
av TomasL
Nja, inte i min situation, eftersom jag ändå har en 16-bitars databus med 4 kontrollsignaler.
Re: Fler portar på PIC
Postat: 3 januari 2013, 09:58:53
av Swech
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.
Nej. De kommer inte att fladdra till. Det går alldeles för fort för att dina relä skall hinna
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
Re: Fler portar på PIC
Postat: 3 januari 2013, 10:01:39
av SeniorLemuren
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.
Re: Fler portar på PIC
Postat: 3 januari 2013, 10:09:29
av SeniorLemuren
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
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?
Re: Fler portar på PIC
Postat: 3 januari 2013, 11:40:24
av Swech
javisst men då försvinner ju en pinne till på PIC
Swech
Re: Fler portar på PIC
Postat: 3 januari 2013, 12:20:55
av YD1150
En CMOS 4094 seriell in parallell ut, har inbyggd latch.
Re: Fler portar på PIC
Postat: 3 januari 2013, 12:59:07
av sodjan
> 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.