Sida 2 av 3

Re: Fler portar på PIC

Postat: 3 januari 2013, 13:22:24
av Icecap
Om man har ett helt vanligt skiftregister behöver man bara 2 pinnar. Det är en ful lösning men det fungerar.

Om vi antar att det rör sig om en PIC kommer den att kunde skifta ut bits med ung. 8 CPU-cyklar per bit.
Vid 8 MHz kristall och 8 bit tar en full uppdatering alltså ung. 32 µs.

Uppstartsdelen är viktig och där måste man se till att t.ex. inte använda externt kristall, ska man ha något externt kan man ha en resonator. Orsaken är att kristallen tar längre tid på sig att starta. Man ska även välja bort all startfördröjning. Om man samtidig säkra sig att vilken kombination som helst inte kan elda upp något kan man känna sig mindre osäker.

Re: Fler portar på PIC

Postat: 3 januari 2013, 13:26:07
av sodjan
Vissa varianter av latch/shift har även en OE "Output Enable" pinne.
Den kan användas för att se till att utgångarna inte "driver" förrens
de har kända och kontrollerade nivåer. Den ger normalt pinnarna ett
high-Z läge och extern pullup/down ger ett känt startläge.

Även OE pinnen behöver dock ett externt pull up/down så att den
inte aktiveras innan processorn har startat... :-)

Re: Fler portar på PIC

Postat: 3 januari 2013, 13:29:14
av Icecap
Definitivt den mindre osäkra lösningen men mycket hänger ju på vilket säkerhetsnivå kontra bekvämlighetsnivå som efterfrågas.

Re: Fler portar på PIC

Postat: 3 januari 2013, 13:32:45
av SeniorLemuren
Swech skrev:javisst men då försvinner ju en pinne till på PIC

Swech
Den är redan utdragen till skiftregistret. (enligt mitt första inlägg).

Re: Fler portar på PIC

Postat: 3 januari 2013, 14:17:15
av gkar
SeniorLemuren skrev: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.)
Hur tänker du nu?!?
Klocka, data, latch. 3 pinnar.
(Sedan kan du sätta 100st efter varandra och fortfarande går det bara åt 3st pinnar.)

Re: Fler portar på PIC

Postat: 3 januari 2013, 14:24:26
av sodjan
Det låter lite som att Lemuren har tittat på en "adressable latch" där man har
adresspinnar istället för data/clock pinnar. De har väl sina fördelar (snabbare
att ändra en pinne utan att samtidigt mata ut alla andra), men de är å andra
sidan inte möjliga att seriekoppla för att utöka antalet I/O.

Re: Fler portar på PIC

Postat: 3 januari 2013, 14:38:03
av blueint
Kanske kan man koppla en liten kondensator mellan jord och "reset" på en I/O utökare? då borde man få ett känt utgångsläge.

Man kan ju också använda en billig MCU som I/O utökare ;)

Re: Fler portar på PIC

Postat: 3 januari 2013, 15:53:55
av gkar
Varför bara inte klocka ut ett känt tillstånd så fort man vaknat?
Det går rätt fort.

Re: Fler portar på PIC

Postat: 3 januari 2013, 16:05:39
av Swech
ja men om du inte vaknar.... om reset på processorn är aktiv t.ex.

Swech

Re: Fler portar på PIC

Postat: 3 januari 2013, 17:00:21
av sodjan
> Det går rätt fort.

Det kan också gå fel rätt fort.

Man kan självklart (om det faktiskt är kritiskt) förlita sig
på att det "bör fungera" eller något liknande.

Re: Fler portar på PIC

Postat: 3 januari 2013, 17:44:25
av gkar
Jag visste inte att det skulle vara failsafe, att det kan hända något farligt om något går fel.
Om det behöver vara failsafe, löser en resetkonding inte heller problemet och gör varken från eller till.

Normalt vill man skydda sig mot ett singelfel.
Ett huvudrelä som bryter alla kanalreläerna, vi antar att det är säkert att bryta reläerna.
Drivsteg på båda sidorna om alla reläer, med avkänning om signalen ligger hög/låg eller mittemellan.
2x100k eller dyl som balanserar insignalen till reläerna mittemellan, avläses hela tiden med AD.
När man drar relät måste båda sidorna dras, eftersom en brunnen fet eller styrning inte får bli farligt.

I serie med mosfetgatearna som drar reläerna sitter det en seriekondensator som skyddar mot I/O som fastnat, och vidare till en diod som likriktar gatespänningen.
För att dra ett relä skickar man alltså ut ett pulståg konstant.

I alla de olika stegen läser man hela tiden av om något skiljer sig mot hur det borde vara och kontrollerar matningsspänningen. Om något är dåligt så bryter man huvudreläet.
Ganska enkelt, men det blir mycket jobbigare om man skall klara ett dubbelfel.

Re: Fler portar på PIC

Postat: 3 januari 2013, 17:57:42
av Pudrik
Osäker vad du mena med in data

Men om du försöker läsa massa pinnar seriellt så är 4021 att rekommendera, den shiftar in resultatet på alla parallela ingångar till seriella porten vid varje clockpuls och går även att hänga på flera i rad för fler pinnar.

Re: Fler portar på PIC

Postat: 3 januari 2013, 18:36:50
av SeniorLemuren
Om du syftar på "data in " i mitt första inlägg så menar jag seriell data in till skiftregistret (SIPO). Jag skall dra ett antal reläer, tända lysdioder m.m med PIC'en. Något PISO behövs inte, till indata har jag tillräckligt med portar, direkt på PIC'en.

Jag hittade en 74LS299 i min pryttelsamling. Den har ju inbyggd latch och går även att kaskadkoppla så den verkar ju Ok. att använda om jag inte fattat helt fel.

Re: Fler portar på PIC

Postat: 3 januari 2013, 18:46:33
av sodjan
> Den har ju inbyggd latch...

Nej, det ser den inte ut att ha. Vid "shiftning" så flipprar alla utgångar.
Eller så stänger man av utgångarna (med OE-pinnarna) under tiden,
men då "faller" också alla funktioner under tiden som shiftningen sker.

Inte helt idialisk med andra ord. Du behöver en modell som har ett extra
steg mellan D-vipporna och utgångs drivarna, som de som har nämnts här.

Re: Fler portar på PIC

Postat: 3 januari 2013, 19:07:53
av SeniorLemuren
Du har rätt. Frågan är då om det är som Swech tidigare nämnde, att reläerna aldrig hinner reagera under dom få µS det tar att skifta 8 bitar. Får nog göra lite praktiska tester. :)

Edit: Nu beror det ju på vad man skall driva med ett relä, och vilken typ av reläer man använder så frågan kanske är lite hypoptetisk.

Ett 5 Volts reed-relä har en frånslagstid på ca. 1 mS så det hinner säkert att reagera, men i mitt fall skulle de användas till olika larmsignaler så det är betydelselöst om det blir ett avbrott på någon mS.

Ett annat fall är om man skall driva ett större relä som hanterar flera ampere, då blir spolen i reläet så pass stor att reläet aldrig hinner reagera.