Pic 16f87-vstupní pin odebíra velký proud

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
ferda3
Příspěvky: 5
Registrován: 06 srp 2013, 00:00

Pic 16f87-vstupní pin odebíra velký proud

#1 Příspěvek od ferda3 »

Zdravím,
mám zapojení dle obrázku
Obrázek.
VDD je +5V, v programu mám nastavený porty RB jako vstupní. Pokud takto připojím tlačítko na vstup RB0 prochází proud odporem 5mA (změřeno). Pokud jej ale připojím na RB1 tak proud vzroste na 50mA (změřeno). Zkoušel jsem i další vstupy RB (RB2, RB3 OK ale RB4, RB5 opět 50mA). Odpory jsou 10KΩ, přeměřeny. Vyzkoušel jsem i jiný PIC a problém je stejný. Vyzkoušel jsem jedno stejné tlačítko i odpor na různé vstupy RB a problém je stejný. Můžete mi poradit čím to může být?
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#2 Příspěvek od forbidden »

Jak může 10 kΩ odporem při napájení 5 V procházet 5, nebo dokonce 50 mA? 8O Musíš měřit někde něco jinýho, jinak to není možný.
Uživatelský avatar
Michal22
Příspěvky: 8229
Registrován: 28 bře 2012, 00:00
Bydliště: Brno

#3 Příspěvek od Michal22 »

A nemyslel po stisku toho spínače?
Pro proud 50mA by musel mít Vcc= 500V, to by ten procesor už nikdy nenašel :D
Civilizace založená na oboustranné lepící pásce nemůže dobře skončit...
I kdyby se z tebe jednou stal král, neodsuzuj lidi, kteří ti nebudou provolávat slávu- raději se zeptej sám sebe, proč tomu tak není...
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek od forbidden »

Píše, že proud odporem, tak nevím co měří.
Uživatelský avatar
ferda3
Příspěvky: 5
Registrován: 06 srp 2013, 00:00

#5 Příspěvek od ferda3 »

Omlouvám se za chybu (chyba v desetinné čárce), proud správně má být 0,5mA ale těch 50mA opravdu prochází a PIC topí... Proud je měřen při stisku tlačítka. Na obr jsem doplnil ampérmetr

Obrázek
Uživatelský avatar
breta1
Příspěvky: 3494
Registrován: 09 zář 2005, 00:00

#6 Příspěvek od breta1 »

To vypadá, že ty B porty nejsou nastaveny jako vstupní.
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#7 Příspěvek od hakamusai »

Nemáš chybu v programu ? (port RB1 jako výstup,nebo povolený SDI/SDA)
Bylo by dobře dát sem i program.
Uživatelský avatar
ferda3
Příspěvky: 5
Registrován: 06 srp 2013, 00:00

#8 Příspěvek od ferda3 »

Porty mám nastaveny takto:

TRISA = 00000;
TRISB = 11111111;
TRISC = 00000000;
TRISD = 00000000;

PORTA = 0b00000;
PORTB = 0b00000000;
PORTC = 0b00000000;
PORTD = 0b00000000;
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#9 Příspěvek od forbidden »

Takže měříš proud pinem (z pinu), ne proud odporem, to je dost podstatnej rozdíl.
Nastavení portů přes TRIS registry ještě nic neznamená, musíš ještě přes ostatní registry nastavit a povypínat případný jiný periferie, nebo ještě třeba nastavit piny jako digitální.
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#10 Příspěvek od mikollar »

problem je tu 11111111; toto je decimal cislo, ma tam byt 0b11111111; pre binarny zapis
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#11 Příspěvek od MiloPS3 »

no ale default jsou nastaveny jako vstupni , a pokud s nima nic nedelal tak i zustanou a to uplne vsechy protoze neprepina banky, na RB1 nic neni takze nevypnuti nejake periferie tu nehrozi..

kolik tam tece kdyz to tlacitko hodis na VSS a odpor na VDD ?
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#12 Příspěvek od mikollar »

tak si preloz to cislo do bin
101010011000101011000111

posledne 8 bity su 11000111 a takto mas nasteveny PORTB

Ak das blbe cislo neznamena ze sa to nenastavi. Ono robi len to co mu povies.
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#13 Příspěvek od MiloPS3 »

default jsou nastaveny jako vstupni
neprepina banky takze sou porad vstupni tudiz zapis na PORTB nemuze nic ovlivnit
pokud tedy ty banky opravdu neprepina ,jinak ano

tak si preloz to cislo do bin
101010011000101011000111
a i kdyby to tak bylo tak to nejak nesedi
Pokud takto připojím tlačítko na vstup RB0 prochází proud odporem 5mA (změřeno). Pokud jej ale připojím na RB1 tak proud vzroste na 50mA
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#14 Příspěvek od Chenzee »

to co zde dal je zcela nedostačující. Řekne se, aby sem dal program a on sem dá totok. :roll:
Žádnej učenej z nebe nespadl ...
Uživatelský avatar
ferda3
Příspěvky: 5
Registrován: 06 srp 2013, 00:00

#15 Příspěvek od ferda3 »

Zkusil jsem tedy binární zápis (TRISB = 0b11111111) a pomohlo to. Nahrál jsem znovu program a RB5 už byl OK, ale RB4 protékal proud 50mA. Zkusil jsem tedy vymazat paměť procesoru a nahrát program znovu a už je to vše v pořádku.
Vyzkoušel jsem také na jiném procesoru (16f57) ověřit zápisy portů TRISB = 0b11111111 vs TRISB = 11111111 a oba případy byli v tomto případě totožné (všechny porty RB nastaveny jako vstupní). Program píši v MPLAB X IDE v2.30 v jazyku C a programuji přes PICKIT 2. Je možné, že by kompilátor při jiném typu procesoru různě kompiloval nastavení portů?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“