Sida 1 av 1
Utgång som ingång :)
Postat: 9 april 2007, 10:50:23
av squiz3r
Hej, igår att när jag var *lite* trött uptäckte jag att man kan använda en utgång som en ingång på en PIC16F628A

Jag glömde sätta pinnen till ingång, så den stog som en låg utgång, Men trots det så gick det att se status med "btfss" komandot. Kopplade jag den till plus var den hög men om jag kopplade den till pluss via ett 10k motstånd gick det inte.. Men det borde väll gått väldigt mycket ström genom den? Det gick inte alls mycket, kanske 100mA max...
//Daniel A
Postat: 9 april 2007, 11:15:35
av bearing
Hehe, ja, nä 100mA är ju inte alls så mycket...
Om du kollar I/O-pins-schemat i databladet ser du också varför det funkar.
Har hört om folk som har använt utgångar som ingångar med ett syfte (vilket jag inte minns).
Det känns ju inte som att det är så bra för livslängden. Men det borde inte påverka så mycket om den är kortsluten kortare andelar av tiden, så att kretsen inte blir varm.
Fast att ha den inkopplad i sekunder kan ju inte vara så bra dock. Den utvecklar ju trots allt minst 0,5 Watt extra då. Blev den inte varm?
Postat: 9 april 2007, 11:34:27
av Matte
i lite värre chipp andvänds det ofta som "WEAK output" alltså att det funkar som pull-up/pull-down, kan andvändas då man kör bidirectional kommunikation på en ledning
tex
MCU skickar ut en svag etta för att starta något och sen kan den confirma med att dra ner den till noll.
Postat: 9 april 2007, 12:25:37
av squiz3r
Ok, värm blev den inte alls... Jag satte den på fel håll en gång, då flödade det strax över 1 amp igenom men vad jag kände blev den ändå inte värm
//Daniel A
Postat: 9 april 2007, 13:39:07
av $tiff
>> squiz3r
Det är en bra metod att dubbelkolla så att utgången beter sig som man vill. Om du vill göra en energiineffektiv oscillator kan du hänga på en stor konding på utpinnen och toggla den när du har en match mellan satt utgångsvärde och reellt värde.
Om jag inte minns fel så har PIC(16) gemensamt register för skrivning och läsning till I/O, som alltså beter sig olika om man läser eller skriver till det.
På AVR finns det tre register till varje I/O. Två för att ställa ingång/utgång, hög/låg, pullup/ej inte pullup och det sista för att läsa av verkligt tillstånd.
Postat: 9 april 2007, 14:28:15
av Marta
PIC16 (alla före PIC18?) läser pinnens nivå, inte utgångsregistret. Med PIC18 kan man välja hur det skall vara genom att det finns två SFR, ett som läser pinnen och ett som läser registret. Att kretsen inte blev varm tror jag inte på, 100mA är 0.5W och det värmer gott i en IC. Hur som helst är det klart olämpligt. Vill man ha soft pull-up så finns det på någon av portarna, en bit i ett SFR aktiverar den.
Vissa MCU, t.ex. 8051, har bara pull-up på utgångarna. Det finns ingen riktig drivning för att sourca ström. Kan vara bra om man vill driva transistorer o.dyl. eller ha någon sorts 1-trådsbuss, men personligen tycker jag inte om det.