Als ik een GP van een PIC als input instel, kloppen dan volgende veronderstellingen?
- Er kan geen stroom uit de PIC vloeien, ook niet als de PIC op bv 4 V werkt en hetgeen waar ik de PIC input mee verbind op 3 V .
- De PIC input is als de gate van een MOSFET (???) en dus trekt ze geen stroom. Of hoe moet ik de ingangsweerstand zien om te berekenen hoeveel stroom er zou kunnen lopen?
Wat ik eigenlijk probeer te doen is iets aan te sluiten op een PIC dat zowel op een hogere als lagere spanning kan zitten door fluctuaties, terwijl de PIC een stabiele voeding heeft. In geen geval mag de PIC proberen de andere module te voeden, of andersom. Ik denk dat dit wel een probleem zou kunnen zijn als ik de PIC als output zou instellen, maar bij INPUT zijn er hopelijk geen problemen?
Wat is trouwens de standaardstate van de GPIO's op een 8-bit PIC?
PS: ik werk met de 12F683.
Geen idee hoe dat bij pic-dingen zit. Maar het is niet ongebruikelijk dat een pin protection dioden bezit naar voeding en ground. Het ding optillen boven voedingsspanning zal dus tot gevolg hebben dat er stroom gaat lopen.
[offtopic]Heb me nog wel eens de tandjes gezocht naar een de reden achter instabiel gedrag van een AVR. Enkele tientallen boards, 2 boards instabiel, de rest gewoon werken zoals het hoort. Na een dag of 2 blijken er in 2 PCBs (door een niet nader te noemen bedrijf gemaakt) een hele kleine scheur in de voedingslijn van de AVR te zitten. Wel onderbroken dus, maar door het soldeermasker niet gezien. Ding draaide dus gewoon op voeding via de protectie dioden van de I/O lines... Ging onderuit als alle I/O gelijktijdig laag werd...
RoelA
Resistance is futile (If < 1 Ohm)
volgende de datasheet op pagina 54, zitten er inderdaad input protection diodes in. Zodra je input 0.6 volt hoger of lager dan Vdd of Vss gaat, krijg je een latch-up en kun je je pic vernielen.
Ik denk dat je het beste kunt kijken naar een optocoupler om je pic en ander apparaat te ontkoppelen. Wel even opletten dat je de opto met de juiste weerstand aansluit zodat je de led daarin niet opblaast 
/Edit:
Standaard state staan ook in de datasheet, pagina 33/34. Daar staat dat de pinnen als input worden geschakeld bij reset.
[Bericht gewijzigd door RoelA op (12%)]
Verdorie, 0.6 V minder is wel degelijk waar als de pic op 4V draait en de input CMOS aangedreven is, dus rond de 2.8 V. Ik had eerst iets met een NMOS tussen, maar degene die ik heb - BS270 - krijgt met die 2.8 V de geleiding niet genoeg op gang...
Jochem
If you want to succeed, double your failure rate.
Rare redeneringen hier, mijns inziens. Het is een input, een klein beetje stroom zal er wel lopen, maar verder heb je gewoon te maken met de tresholds van pagina 121 van de datasheet. Gebruik je een TTL input of een schmitt-trigger? Die 2.8V zal bij VDD=4V voor TTL zeker lukken, voor schmitt-trigger zou je eigenlijk 0.8 VDD (3.2V) moeten hebben.
Inderdaad wel zorgen dat je input niet (ver) boven VDD of onder VSS komt.
Jochem
If you want to succeed, double your failure rate.
Inderdaad. Onder voorwaarde dat VIN tussen VSS en VDD ligt, en rekening houdend met een ongedefinieerd gebied tussen VIN,LOW,MAX en VIN,HIGH,MIN (waar je best met je input op mag gaan hangen, maar verwacht dan geen voorspelbare 1 of 0).
En is er een manier om de batterijspanning absoluut te bepalen? (Om te detecteren dat de batterij leeg is).
Ik kan ze natuurlijk aan de ADC input hangen, maar dan is er geen referentie.
Ik kan niet meer bedenken dan als referentie dezelfde batterijspanningen te nemen, maar dan via een spanningsdeler, en als de spanning dan zakt, zal er een verschuiving in de gelezen waarde optreden. Maar dat lijkt mij erg onnauwkeurig.
Op 1 september 2009 15:46:30 schreef Jochem:
[...](waar je best met je input op mag gaan hangen[...]
Is dat zo? Geen idee hoe die port in elkaar zit qua hardware. Maar mij is altijd geleerd dat digitale inputs (zonder nader onderzoek) op een gedefinieerd 'hoog' of 'laag' niveau moeten liggen. Had iets met totempole achtige constructies te maken: high side en low side tor gelijktijdig in geleiding, hoop dissiperen dan wel oscilleren.
Om hier nog even op terug te komen: je inputs laten zweven tussen hoog en laag doe je dus beter niet, want dan loop je het risico constant te switchen met meerdere honderden uA verbruik per poort als gevolg. Ongebruikte pinnen best naar boven of onder trekken en als input instellen.
duffel
Mijn vrouwtje houdt ook van kleine dingetjes: www.minifrutsels.nl
Je schrijft dat de PIC een stabiele voeding heeft. Ik ga er van uit dat je batterijspanning hier boven ligt en dat je met een spanningsregelaar je PIC voed. In dat geval kan je inderdaad via een spanningsdeler je batterijspanning meten. Als je wil zien wat de toestand van de batterij is kan je de ADC gebruiken, om enkel te bepalen wanneer de batterij leeg is in de comparator voldoende.
De ADC van de PIC is 10 bits dat lijkt mij meer dan voldoende, de comparator die stel je zo nauwkeurig in als je maar wil.
Nee de PIC zit recht op de batterij en de rest zit achter de DC/DC . Maar het is niet meer van belang want ik heb een DC/DC met low battery detector nu.
neoel
Rather a (_E=MC2_) than a (_?_).
Op 1 september 2009 12:39:28 schreef taddam:
Ik had eerst iets met een NMOS tussen, maar degene die ik heb - BS270 - krijgt met die 2.8 V de geleiding niet genoeg op gang...
Dit is toch niet zo raar? Tenminste. Ik dacht dat Nmos pas in geleiding ging bij een negative spanning over de Vgd?. Of heb ik het hier fout?
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM