Sari la conținut
ELFORUM - Forumul electronistilor

Cum sa programez un PIC


sofian

Postări Recomandate

Nu cred ca au rost intrebarile, dar totusi le pun:

1. Ai un singur port serial sau mai multe. Verifica in device manager la COM cate porturi sunt, la ce viteze si paritate sunt setate. Si apoi seteaza in ICProg sau PICPgm portul care trebuie.

2. Folosesti cablu serial la care ai taiat un capat sau ai lipit mufa pe cablaj?

3. Cablul serial folosit de tine este 1-1 sau cablu serial null-modem?

Link spre comentariu
  • Răspunsuri 604
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Liviu M

    54

  • Vlad Mihai

    28

  • bbogdanmircea

    27

  • seichter

    24

Top autori în acest subiect

Imagini postate

1.Am un singur port serial setat pe: -9600 bits/ sec   -8 data bits   -Parity=NONE   -Stop bits=1   Flow control= NONE

In programe am setat portul COM, dar tot degeaba.

2.Folosesc cablu serial la care am taiat un capat si am lipit firele pe placa (le-am verificat de 'spe mii de ori si sunt lipite corect, ca in poza de mai jos)

3.Nu stiu ce fel de cablu este, nu ma pricep.

post-216428-0-28792300-1423510791_thumb.gif

Editat de dacianu11
Link spre comentariu

1. Soft-ul de programare are control pe port, deci poate sa seteze ce viteza e nevoie.

3. Daca ai taiat cablul, nu mai are relvanta ce tip era. Null modem are RX si TX inversate.

 

Incearca sa bagi programatorul direct in portul serial, fara cablu. E posibil sa fie prea lung si sa ai interferente sau caderi prea mari de tensiune pe el.

De asemenea, poti incerca din PICPgm, de la hardware configuration, sa pui Timing Delay Factor pe slow (e un slider jos).

 

Daca nu si nu, ar ajuta sa ai un osciloscop cu care sa verifici tensiunile in timp ce PICPgm incearca sa recunoasca programatorul/PIC-ul.

 

LE: Totusi la tine in printscreen vad ca nu ai setat portul cum trebuie (apare ???). Daca setezi potul din Hardware Configuration, ar trebui sa-ti apara in dreapta jos, chiar daca nu iti recunoaste programatorul.

 

Posted Image

Editat de keenox
Link spre comentariu

Am setat pe slow si tot nimic Cand am facut printul nu am setat portul com dar acum estesetat, si imi apare COM2 in dreapta jos, dar programator YOC

 

Interesant ca imi apare com2 cu toate ca eu am doar un port serial. Asa apare si in Device Manager COM2

 

Pana la urma cred ca ii trosnesc un ciocan si fac alta schema. Are careva o schema mai simpla doar pentru PIC16F628A? Nu ma intereseaza sa pot programa si alte picuri.

Cred ca am deviat putin de la titlul topicului, dar pana la urma tot despre programare e vorba, ca doar asta vreau sa fac....

Editat de dacianu11
Link spre comentariu

poate sa iti apara si com24 chiar daca ai un singur port serial. important sa il setezi pe cel pe care ii trebuie programatorului. mai simplu ca programatorul asta nu stiu care ar fi. eu acum am trecut cu toate programatoarele pe usb 

 

daca vrei trimite mi mie picul si ti l programez eu

Link spre comentariu

@dacianu11:  Am eu un programator de vanzare, facut dupa cel de aici: https://www.olimex.com/Products/PIC/Programmers/PIC-PG2/resources/pic-pg2c.pdf (pe site o sa gasesti si poze, dar nu pun link-ul catre ele, ca e magazin si iar imi iau avertisment). Merge bine pentru PIC-uri care nu consuma mult si merge si cu alea cu alimentare externa.

In caz ca vrei, ma ofer si eu sa ti-l programez, dar nu stiu cat de comod e pt tine. Vad ca esti din Timisoara. Poate se ofera vreun coleg de aici din Timisoara sa te ajute. Eventual iti faci unul pe USB, dupa cum zicea si Liviu M si nu mai ai treaba dup-aia.

Link spre comentariu

Uite aici un link cu un Programator JDM cu alimentare externa.

 

Marea problema la aceste programatoare JDM (fara alimentare externa) este tensiunea care se obtine pe COM la placile de baza mai noi (2004-->) sau laptopuri. Aceasta este mult mai mica decat la placile de baza vechi si foarte vechi.

Si eu am un asemenea programator cu care programez un PIC18F4550. Am incercat sa programez pe un calculator din 2005, placa de baza ASUS si nu a mers in ruptul capului. Pe pinul 4 nu reuseam sa am peste 12 V in timpul programarii. Apoi am cautat un calculator vechi Pentium III/700 MHz si pe acesta a mers. Si acum am grija de acel calculator.

 

Deci cam toate programatoarele JDM fac programarea HPV (High Voltage Programming) , asadar pe pinul 4 MCLR trebuie sa avem o tensiune intre 12 si 14 V.

 

A se citi http://ww1.microchip.com/downloads/en/DeviceDoc/41196g.pdf -> pagina 1 si apoi pagina 2, Tabelul 1-1, Nota 1.

 

Uite si aici o versiune fata de schema folosita de tine : http://www.lancos.com/e2p/Jdm-v22.gif . Sunt scoase toate ledurile si rezistentele aferente lor.

Editat de grifonul_alb
Link spre comentariu

Placile de baza au doua porturi seriale chiar daca unul nu e cablat(exista pinii pe placa de baza) si din ce am observat pe pielea mea e ca doar unul din ele e cel care e capabil sa scrie cu programatoarele JDM. Aceeasi placa de baza cu win7 nu mergea la fel de bine cu windows xp sau 98 pentru a sterge si scrie un 12F629 .

Fa o masina virtuala cu windows'98 si incearca si asa dar cel mai bine ... NU pierde timpul cu tehnica invechita, NU fii retrograd si ia-ti/construieste un programator pe port USB .

Am pierdut prea mult timp din viata din cauza programatoarelor de tip jdm ca sa nu te sfatuiesc in felul asta.

 

Asta cu 3 LED-uri  a mers bine cu toate http://electronics4everyone.blogspot.ro/2008/03/how-to-build-your-own-pic-programmer.html

Editat de unuldinei
Link spre comentariu

Va multumesc tuturor pentru ajutor, dar am renuntat la acest programator, iar pe viitor o sa fac unul pe USB. Cat despre programare, am luat legatura cu un user binevoitor, si o sa imi programeze el PIC-ul.

Link spre comentariu
  • 4 luni mai târziu...
Vizitator marian_96

Buna ziua la toti.

Am si eu o problema daca ma puteti ajuta la programarea unui pic. Am reusit sa programez sa comande leduri pe porturile de iesire PORTB de la 0 la 7, si cu comenzi de la porturile PORTA  0 si 4, sa afisez o litera sau o cifra, si sa numere de la 1 la 9. Pina aici toate bune si frumoase. Dar cand am vrut sa-ncerc sa scriu un cuvant afisat pe 4 digiti, sau numarator pe 4 digiti, nu reusesc sa inteleg, cum trebuie facut, am cautat documentatii, am studiat manuale de programare, problema este ca ceea ce am gasit a fost doar mici exemple pe care nu le-am inteles, daca le scriu nu le recunoaste programul, ceea ce ma dus la concluzia ca sunt doar de exemplu, nu sunt chiar functionale. Am pic   16F 84,,, si pic  16 F 628,,,,,am display cu catodul comun, iar comanda catodului comun cu tranzistori NPN, comandati din portile PORTA- 0, 1, 2, si 3,, cuartz de 4 Mhz.  Ma poate ajuta cineva, ca singur vad ca nu reusesc.

Multumesc,

Vreau sa incerc sa invat daca se poate, sa pot programa eu, de aceea caut pe cineva sa ma indrume, sa ma invete, cu unele exemple pe care sa le pot studia sa invat mai departe ce sa fac, Am manuale am studiat, dar ca si la scoala, daca n-ai un profesor sa te indrume, te chinuiesti foate mult timp pina reusesti, asta daca reusesti pina la urma.

Multumesc.

Link spre comentariu

Salut Marian,

 

Clarifica intrebarea te rog.

Mai intai comunici in ce limbaj face programarea (C, assembler, etc).

Apoi faci o schema curenta pe care lucrezi. Cum este conectat uC-ul, ce periferice vrei sa folosesti. In cazul tau desenezi uC-ul si afisajul LED, cu cati digiti are, oscilator, circuit de reset, etc. Atasezi poza aici (preferabil formatata pentru forum, uploadata pe un site gen tinypic, etc).

 

Intr-un final ne spui ce vrei sa faci, ce urmaresti. Sa inveti este ceva foarte generic, pentru ca trebuie sa inveti ceva. Sa faci programare embedded este o chestie uriasa si este util sa iti partitionezi efortul. Preferabil incepi cu configurarea controller-ului, a mediului de dezvoltare etc.

 

Postezi programul sau secventa care nu o intelegi si cineva poate te ajuta.

Editat de mars01
Link spre comentariu

Uite, fa montajul de aici si vezi cum functioneaza:

http://avtoelectro.radioliga.com/device.php?show=hg_termo

Vezi ca-ti trebuie afisaj cu anod comun.

Unde scrie Скачать [27.7 КБ] - Рисунок печатной платы (LAY) и прошивку микроконтроллера (HEX) ai HEX-ul.

Alt link:

http://320volt.com/en/ayarlanabilir-termometre-devresi-16f628-ds18b20-picbasic-pro/

 

Cauta si citeste despre multiplexarea afisajului.

Link spre comentariu
Vizitator marian_96

Ok, am inteles, multumesc, nu stiu cum se pune o poza aici, ca nu am nici-o optiune, decat o adresa cu un link, si probabil trebuie sa o pun undeva si sa o iau de acolo sa o postez aici. Am sa-ncerc. Fac o poza, programarea nu stiu cam in ce limbaj de programare fac acum,  eu folosesc programul acesta, GREAT COW GRAPHICAL BASIC, nu stiu ce limbaj de programare foloseste.

Uite, fa montajul de aici si vezi cum functioneaza:

http://avtoelectro.radioliga.com/device.php?show=hg_termo

Vezi ca-ti trebuie afisaj cu anod comun.

Unde scrie Скачать [27.7 КБ] - Рисунок печатной платы (LAY) и прошивку микроконтроллера (HEX) ai HEX-ul.

Alt link:

http://320volt.com/en/ayarlanabilir-termometre-devresi-16f628-ds18b20-picbasic-pro/

 

Cauta si citeste despre multiplexarea afisajului.

Multumesc, acum ma apuc de el, am citit si despre multuplexare, dar nu prea am inteles, pentru ca acolo se dau doar exemple, pe portiuni, si daca vreau sa folosesc codul acela sa vad ce se-ntampla, nu-l pot transforma in hex, pentru ca este incomplet, si eu nu stiu sa fac mai departe. M-ar ajuta mai mult sa am un program (un asm ) ca sa-l pot studia. Eu lucrez acum cu programul Great Cow Graphical Basic. Si mai mult ca sigur nu e compatibil, cu unele programe, care le gasesc, cred ca e in alt limbaj, pentru ca daca fac un program cu el, si vreau sa-l transform in hex cu programul de Microchip,,, Mpasm,,, imi da eroare, dar daca il transform cu Great Cow Graphical, atunci merge, incarc picul, si-l verific. De aceea am banuit ca foloseste alt limbaj de programare pe care Mpasm nu-l recunoaste. (cel putin aste e parerea mea, nu sunt sigur daca este chiar asa)

Link spre comentariu

Intri pe tinypic.com

Uploadezi poza acolo. La final ai o serie de optiuni, alegi formarea pt forum si pur si simplu ii dai copy si paste in textul mesajului care il scrii.

 

Cam cum fac eu aici pt tine.

Posted Image

 

Daca tot te-ai orientat catre graphical programming, iti recomand ca pentru inceput sa folosesti Flowcode 5, ca sa te obisnuiesti cu structura unui program. Dupa ce vei face cateva proiecte (in Flowcode poti faci simulari usor si te va ajuta sa detectezi bug-uri pe care fiecare le-a avut la inceput, le are acum si le va avea si de acum incolo) va trebui sa treci catre programarea clasica, pt PIC recomand sa incepti cu mikroC de la mikroElectronica.

 

Flowcode 5 este ceva mai usor de inteles, in Flowcode 6 au bagat o gramada de prostioare care complica lucrurile.

Editat de mars01
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