Cafte, mate niekto skusenosti s tymto procakom ? Neche sa mi na nom rozbehnut externy oscilator (interny nema) skusam RC, tak ako je nakresleny v DS, ale nenaskoci vobec procak, dnes este skusim HS, ked budu kondy
Pre istotu pripajam program, ci som tam niekde nepochybil
Konkretne s 16F77 skusenost nemam, ale s jeho bratom 16F74 skusenost mam, aj s 16F777, co je lepsia verzia 16F77.
Mimochodom, 16F77 je jeden z tych skutocne obstaroznych a muzealnych kuskov, takze pokial zacinas novy projekt, tak sa radsej obzri po niecom novsom, ako napriklad 16F887.
No ale k tomu problemu, to by chcelo schemu, lebo zle zapojeny HW sa z programu da tazko spoznat
A este k tomu programu - ten robi to, ze v nekonecnej slucke nastavuje PORTD,0 a nuluje PORTD,1
Ak to malo byt blikanie LEDkou, tak treba najprv nastavit a potom vynulovat ten isty bit:
PROGRAM
BSF PORTD,0
CALL CAKAJ
BCF PORTD,0
CALL CAKAJ
GOTO PROGRAM
To dava casovu konstantu 2,2x10-4 sekundy, teda frekvencia asi 4,5kHz. Rychlost vykonavania instrukcii je zhruba 1000 instrukcii za sekundu. To znamena, ze podprogram CAKAJ so svojimi asi 2-mi milionmi instrukcii sa bude vykonavat asi 1700 sekund, co je zhruba pol hodiny.
Aha, ale to nevysvetluje preco tu ledku ani nezapne. Prva instrukcia je BSF, teda by sa mala rozsvietit, a cakat pol hodinu, nie ? Pri zmene odporu za 3k3 tiez ziadna zmena
Ano, malo by to fungovat tak, ze sa najprv rozsvieti LEDka na PORTD,0 a potom cakat pol hodiny. Teda za predpokladu, ze LEDka je zapojena katodou na zem a anodou cez odpor na pin, teda v pozitivnej logike.
To je jeden z dovodov, preco som si pytal schemu, lebo bez schemy, alebo aspon poriadneho popisu mozem len hadat, co je tam zapojene.
Co sa tyka RC oscilatoru, tak by som volil cca 4,7kOhm a 22pF.
heh, ano ledka je zapojena spravne, akurat bez odporu. skusam menit tie hodnoty, ale nic sa nedeje
dokonca ani ked zmenim program, ze miesto CLRF portov dam
MOVLW .255
MOVWF PORTA
MOVWF PORTB
MOVWF PORTC
MOVWF PORTD
MOVWF PORTE
tak sa nerozsvieti, ten procak nebeha
Nechcem byt hnusny, ale obavam sa, ze tu nam chyba toho podstatne viac ako len nejaky odpor alebo co. Ono je to tak, ze pokial nemas odpor k LEDke, ako mozem vediet, ci mas odpor na MCLR? A blokovacie kondiky? A ci je to vobec dobre zapojene? Ak niekto urobi tak katastrofalny pruser ako chybajuci odpor k LEDke, nemozem ocakavat, ze ostatne bude dobre. Hoci aj bez odporu sa da LEDka prevadzkovat, ale clovek musi presne vediet, co robi a preco to robi, co evidentne nie je tento pripad.
Takze, ak sa mame pohnut niekde dalej, potrebujem vidiet schemu tak ako je skutocne zapojena, fotka by bola k tomu este lepsia, plus info o tom, aky programator je pouzity.
Nakolko radic portov obmedzuje prud na pin na 20, alebo 25mA odpor na ziadnu ledku pripajanu k ziadnemu mcu nedavam, takze ziaden katastrofalny pruser sa nekona.
Nemam ziadne dalsie kondy okrem oscilacneho, cely procak je prpojeny k pickitu2, takze schemu budem asi tazko kreslit.
jedine suciastky v poli su: mcu, led, odpor, kond.
Kde je napisane, ze “radic portov” obmedzuje prud na 20 alebo 25mA?
To, ze ako jeden z elementarnych elektrickych udajov IO pinu je udaj “Maximum output current sourced/sunk by any IO pin” s hodnotou 25mA, tak to znamena, ze je tvojou ulohou ten prud obmedzit na tych 25mA max, nie ze pin to robi sam. A kedze je to v kategorii “Absolute maximum ratings”, znamena to, ze po prekroceni takychto parametrov vyrobca nic negarantuje.
Dalej, ak po pripojeni LEDky bez odporu k pinu LEDka nezhori, tak to je preto, ze skratovy prud (resp. nie skratovy, ale v rezime tlacenia prudu do priechodu LEDky to nebude daleko od pravdy) CMOS hradla je mensi ako to, co LEDka kratkodobo utiahne, neznamena to vsak, ze takyto navrh je dobry. Takisto to neznamena, ze PIC-ku takyto rezim vyhovuje. Argumentacia “ale ved mne to takto funguje” je chybna. Treba najprv vediet preco to tak funguje. resp. preco je to tak dobre alebo zle.
A to je ten katastrofalny pruser, o ktorom som pisal predtym, tu nejde o jeden blby odpor.
Pokial nemas odpor medzi MCLR a Vdd, tak to bezat moze, ale nemusi. Ale skor to bezat nebude, lebo MCLR vystup u PK2 je po programovani v stave vysokej impedancie a MCLR pin je CMOS vstup. Treba tam strcit pull-up odpor cca 22kOhm.
A samozrejme blokovacie kondiky 100nF co najblizsie k napajacim parom Vdd/Vss su snad samozrejmostou v digitalnej technike.
…a pritom je to v dokumentacii k PicKit-u…
Tu sa ukazalo, ze aj ked si ho tam nikdy nedaval, tak ho tam bolo treba. Argument, ze predtym to fungovalo, tak to netreba, vseobecne neplati.
Ale som rad ze to uz funguje.
Este si zvykni na tie blokovacie kondenzatory. Fakt to nie je buzeracia, ono to moze fungovat aj bez nich, ale skor ci neskor sa na tom popalis a samozrejme to bude v tu najmenej vhodnu chvilu.
No kedze to napajam PK2, tak je to super hladkych 5V, takze kondy nedavam, ale keby to slo cez hocico ine, tak tam su urcite.
Btw, uz su objednane 16F1939 a 18F4550, takze vpohode
Blokovací kondíky tam nejsou pro vyhlazení napětí, ale pro eliminaci parazitních vlastností přívodů napájení. Každý vodič má totiž vlastní indukčnost. Pokud se procesor zrovna rozhodne něco přepnout, vznikne tam proudová špička(ano, při přepnutí CMOS hradla může vzniknout impulz i několik desítek mA) a indukčnost přívodů způsobí, že tam třeba na 10ns nebude dostatečný napájení, procesor zblbne nebo se ti resetuje a budeš koukat jak trubka a celej den hledat, proč se to děje.
Holt někdo ale musí na všechno přijít sám…
Dovolím si malou citaci : “Young not always do what they are told”.
Ta spicka ma velkost pokojne aj niekolko stoviek mA, u hodne velkych MCU aj jednotky A.
Vlastne cely odberovy diagram ma priebeh ostrych spiciek s amplitudou niekolko desiatok az stoviek mA, polozenych na pozadi s hodnotou inzinierskej nuly (0,000nic), ale stredna hodnota tohto je ten znamy odoberany prud, ktory sa da zmerat multimetrom, typicky to byva u 16F PICiek niekolko stoviek uA az niekolko jednotiek mA.