Sari la conținut
ELFORUM - Forumul electronistilor

Ajutor cu PIC16F876a


lama

Postări Recomandate

  • Răspunsuri 28
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • lama

    14

  • Liviu M

    4

  • costi002

    4

  • MifTy

    2

Top autori în acest subiect

Pai MCLR (Master CLeaR) e de fapt RESET negat. Vezi documentatia, acolose vede cu bara desupra.Deci pui Vdd = NON RESET, nu pui = RESET.thenoble66

bun si nu e buna.Din schema se vede ca e pus la Vdd printr-o resistenta. Deci e no reset. De ce trebuie sa mai apas si butonul ala care pune MCLR la VDD daca el este deja pus?
Link spre comentariu
Vizitator thenoble66

Problema e ca ICSP - oricare ar fi el - initial nu da tensiune pe MCLR, pentru ca acelasi pin MCLR se foloseste si ca intrare pentru tensiune de programare (Vpp se cheama). Deci, ICSP nestiind ce urmeaza, se asigura ca, nu face prostii :-)Urmeaza utilizatorul, care decide ca va fi programare, sau functionare normala.De fapt in schema ta rezistenta pe MCLR are un mic rol de protectie la conectarea tensiunii de programare din ICSP.In mod normal acolo se conecteaza un grup RC pentru a intarzia un pic pornirea PIC, pana se stabilizeaza niste treburi prin circuit.Ai zis de fapt ca, alimentat extern functioneza, deci nu pare sa fie alte probleme.Sper ca am fost explicit.Succes.thenoble66

Link spre comentariu

Din schema se vede ca e pus la Vdd printr-o resistenta. Deci e no reset.

MCLR e pus la VDD prin rezistenta si la programator (MCLR/VPP) direct. Asta inseamna ca programatorul poate tine pinul ala la masa, la VDD sau VPP (programare), in "ciuda" rezistentei.Banui ca programatoarele tin implicit PICurile in reset din motive de siguranta - cum programarea se poate face si in circuit, lasarea unui controller "de capul" lui (inainte sa fie programat, de exemplu) poate avea urmari neastepate/neplacute. E decizia utilizatorului sa-l activeze la momentul "oportun".PS Sper sa intelegi ceva din ce zic, ca eu cand recitesc nu prea mai sunt sigur.
Link spre comentariu

Problema e ca ICSP - oricare ar fi el - initial nu da tensiune pe MCLR, pentru ca acelasi pin MCLR se foloseste si ca intrare pentru tensiune de programare (Vpp se cheama). Deci, ICSP nestiind ce urmeaza, se asigura ca, nu face prostii :-)Urmeaza utilizatorul, care decide ca va fi programare, sau functionare normala.De fapt in schema ta rezistenta pe MCLR are un mic rol de protectie la conectarea tensiunii de programare din ICSP.In mod normal acolo se conecteaza un grup RC pentru a intarzia un pic pornirea PIC, pana se stabilizeaza niste treburi prin circuit.Ai zis de fapt ca, alimentat extern functioneza, deci nu pare sa fie alte probleme.Sper ca am fost explicit.Succes.thenoble66

Nu inteleg. Daca te uiti pe schema vezi ca mclr e pus la V+. Care e prezent continuu pe icsp deci si pe rezistenta care il duce la mclr.
Link spre comentariu

Din schema se vede ca e pus la Vdd printr-o resistenta. Deci e no reset.

MCLR e pus la VDD prin rezistenta si la programator (MCLR/VPP) direct. Asta inseamna ca programatorul poate tine pinul ala la masa, la VDD sau VPP (programare), in "ciuda" rezistentei.Banui ca programatoarele tin implicit PICurile in reset din motive de siguranta - cum programarea se poate face si in circuit, lasarea unui controller "de capul" lui (inainte sa fie programat, de exemplu) poate avea urmari neastepate/neplacute. E decizia utilizatorului sa-l activeze la momentul "oportun".PS Sper sa intelegi ceva din ce zic, ca eu cand recitesc nu prea mai sunt sigur.
HIIIMMMNici eu nu inteleg. Dar in curand o sa ma joc cu un 877 si un 886. Sa vedem la ele cum se comporta.
Link spre comentariu
Vizitator thenoble66

Nici o problema.MCLR e o intrare. Daca conectezi aici o iesire de la un alt controler (de ex. ICSP), acea iesire va reusi sa manevreze MCLR in orice directie: 0V sau Vdd - cat o fi.Pune un voltmetru pe MCLR ala si vezi ce arata cand in interfata nu e bifata, respectiv cand e bifata optiunea MCLR la Vdd.Vdd acela NU E alimentarea, ci o tensiune ce vine din iesirea ICSP si care, culmea, e aproape de cea de alimentare.Tensiunea aceea (cand e ~0V) tine in RESET PIC-ul, si (cand e ~5V) il lasa sa functioneze.Asa cum suna?thenoble66

Link spre comentariu

Nu, cand ai programatorul conectat, MCLR nu e tot timpul la V+, ci la cat il tine programatorul.Rezistenta de la MCLR la V+ e un pull-up: cat timp nimeni nu trage de MCLR in alta parte, rezistenta il trage ea (aproape) la V+. Daca un alt dispozitiv "mai tare" e atasat pinului respectiv (de exemplu un buton de reset), isi poate impune "nivelul".Cu alte cuvinte, cat timp programatorul e conectat la pinul respectiv, nivelul lui e determinat de programator/softul care controleaza programatorul.LE thenoble66 a fost mai rapid si zice cam acelasi lucru.

Link spre comentariu

Nu, cand ai programatorul conectat, MCLR nu e tot timpul la V+, ci la cat il tine programatorul.Rezistenta de la MCLR la V+ e un pull-up: cat timp nimeni nu trage de MCLR in alta parte, rezistenta il trage ea (aproape) la V+. Daca un alt dispozitiv "mai tare" e atasat pinului respectiv (de exemplu un buton de reset), isi poate impune "nivelul".Cu alte cuvinte, cat timp programatorul e conectat la pinul respectiv, nivelul lui e determinat de programator/softul care controleaza programatorul.LE thenoble66 a fost mai rapid si zice cam acelasi lucru.

Asta am inteles-o.Bun intrebarea era daca cineva care a lucrat cu acest microcontroler a patit la fel.Sa inteleg ca nimeni cu a patit?
Link spre comentariu

Ce sa pateasca? Sa-l tina programatorul blocat pana ii zici sa-l lase in pace?Asta cred ca e o caracteristica a mplab. Nu stiu ce programator ai, da' dupa ce programez (in circuitul de test) cu ICD2 din mplab, trebuie sa "eliberez" MCLR ca sa porneasca aplicatia. Nu am nici un mplab acum la dispozitie sa-ti zic exact care-i optiunea, da' seamana cu ce zici tu si mi s-a intamplat la mai multe tipuri de pic (16F877, 18F452, 18F4550...), de-aia zic ca "tine" de mplab, nu de PIC.

Link spre comentariu

Interesante discutiile pana acum asa ca prezint si eu cateva puncte de vedere.1. In mod logic un programator capabil sa programeze o componenta care se afla in montaj (ICSP, ISP, JTAG, etc.) dupa ce a terminat programarea trebuie sa se deconecteze electric de montaj pentru a nu influenta functionarea lui. In cazul programatoarelor microchip care au Vpp/MCLR (tine de ICSP) putem lua in calcul 4 stari diferite ale acestei iesiri. Asigura tensiune de programare (Vpp), asigura 0v (/MCLR), asigura VDD ( conditionat de softul de programare) si mai este modul HI-Z (impendanta mare de ordinul megaohmilor). In mod Hi-Z practic se deconecteaza electric de montaj. Daca in montaj nu sa asigurat potentialul necesar intari /MCLR cerut in datasheet el va ramane in aer, nedefinit, sensibil la orice parazit electric sau contact.2. Citez pe lama:

Am citit manualul unde zice ca MCLR nu mai are nevoie de o rezistenta pusa la Vdd, ci recomanda o retea RC pentru blah blah.

Altceva se spune acolo: pentru a evita problemele legate de descarcari electrostatice ( ESD) si alte evenimente care duc la reset, Microchip nu recomanda utilizarea unei simple rezistente la VDD care poate duce la un consum exagerat pe pinul /MCLR. Ei recomanda varianta mai complexa cu 2 rezistori si condensator. Ideea este ca /MCLR trebuie mentinut la VDD pentru o resetare corecta. Sa nu se inteleaga ca se poate renunta la rezistenta si se poate lasa in aer.Eu personal am patit-o cu particularitatile uC-urilor in ceace priveste /MCLR la un proiect mai vechi. Am facut teste cu PIC12F510 in care am folosit reset extern si cand am trecuta la implemetarea practica (vreo 50 buc) am folosit PIC12F629/675. Nu intelegeam de ce se reseta montajul cand puneam mana pe cablaj. Din datasheet am observat diferenta si anume ca PIC12F510 in cazul cand se activeaza /MCLR extern in mod automat conecteaza o rezistenta interna catre VDD, pe cand varianta 629/675 nu face acest lucru pentru ca nu are asa ceva. Solutia a fost o rezistenta externa, asta ducand la achizitia a inca 50 rezistente si modificarea cablajului.
Link spre comentariu

dacă ai făcut schema în care e prevăzut un cuarț de 4 Mhz, și pui un cuarț de 20 de Mhz, pe ce frecvență o să meargă oare picul, și de ce frecvență o să aibă nevoie softul ca să funcționeze corect???

Pe 20Mhz doar ca aveam deja facuta componenta intr-o alta schema de unde am luat-o si intrucit ptr realizarea cablajului nu avea nici un efect(au acelasi footprint) a ramas cu 4MHz.Softul il fac eu nu il copy de nicaieri ca hex deci nu e o problema.
păi deja ţi-ai bătut un cui în talpă:1. nu toate picurile pot funcţiona la 20 mhz. frecvenţa de funcţionare dată de Microchip pentru un tip anume de pic e de obicei frecvenţa maximă la care picul funcţionează sigur. ea se dă inclusiv în datasheetul picului.2. dacă scrii softul pentru cuarţ de 4 mhz, picul o să aibă nevoie la pinii xtal1 şi 2 exact de un cuarţ de 4 mhz, altfel nu o să vrea să meargă. invers, dacă scrii softul pentru 20 mhz, şi pui unul de 4, iar n-o să meargă, pentru că e frecvenţa de tact prea mică.e ca şi cum ai cere un autobuz şi ţi s-ar oferi o bicicletă! :Dar fi o idee să laşi experimentările, şi să pui exact componentele indicate în scheme, dacă nu vrei extra probleme...iar dacă vrei să înveţi, trage cu ochiul pe pdf-ul ăsta!!! :d
Link spre comentariu

păi deja ţi-ai bătut un cui în talpă:

1. nu toate picurile pot funcţiona la 20 mhz. frecvenţa de funcţionare dată de Microchip pentru un tip anume de pic e de obicei frecvenţa maximă la care picul funcţionează sigur. ea se dă inclusiv în datasheetul picului.

Stiu. Si de aceea am quarturi de 4,12,16 si 20 MHz in stoc.

 

 

2. dacă scrii softul pentru cuarţ de 4 mhz, picul o să aibă nevoie la pinii xtal1 şi 2 exact de un cuarţ de 4 mhz, altfel nu o să vrea să meargă. invers, dacă scrii softul pentru 20 mhz, şi pui unul de 4, iar n-o să meargă, pentru că e frecvenţa de tact prea mică.

e ca şi cum ai cere un autobuz şi ţi s-ar oferi o bicicletă! :d

Daca scrii softul bine nu trebuie decit sa modifici o singura declaratie. Daca am si ADC mai trebuie sa schimb timpul cit se face deci nimic greoi sau insurmontabil.

Sunt incepator in picuri dar C stiu bine. Deci cum spuneam softul il scriu eu asa ca nu imi fac probleme mari.

 

ar fi o idee să laşi experimentările, şi să pui exact componentele indicate în scheme, dacă nu vrei extra probleme...

iar dacă vrei să înveţi, trage cu ochiul pe pdf-ul ăsta!!! :d

 

Interesant dar nu ma ajuta. URASC ASM-ul asa ca ......

Multumesc oricum

Problema e ca am ajuns la un nivel in care imi concep singur schemele

Deci trebuie sa experimentez caci imi mai scapa cite una alta si o belesc

Dar incerc sa merg mai departe

Iar cind mai termin o sa "ma umflu in pene" aici pe forum chiar daca schema bate cuie in talpi sau sufla pe gaura cheii-adica e de utilitate zero

 

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări