Sari la conținut

O simpla intrebare: PIC sau Atmel AVR ?


releu
 Share

Postări Recomandate

Deoarece in ultima perioada este la moda programarea microprocesoarelor si bineinteles aplicatii cu acestea m-am hotarat sa incerc sa aprofundez si eu acest domeniu. Ce as dori sa stiu si poate in acest sens sa-mi dati un sfat sau chiar sa ma ajutati:

1. Ce microprocesor este mai usor de programat ?

2. Ce kit pentru programat acel microprocesor imi recomandati ?

3. Un circuit, asa pentru un incepator, ca sa-l pot realiza nu cu prea mult efort, puteti sa-mi aratati (si programul sa fie simplut) ?

 

P.S. Nu cred ca am uitat nici o intrebare dar daca am uitat ... o sa revin. Asadar, ce sa incerc sa invat: PIC sau Atmel ?

Link spre post
Distribuie pe alte site-uri

Seamana f. mult, dar ramane Atmel forever. Cel mai bun argument? In primul rand pretul! Alt argument viteza, microcontrollerele de la Atmel realizeaza majoritatea instructiunilor intr-un ciclu. Alt argument ar fi posibilitatea de a alege dintr-o multitudine de instructiuni. Si lista poate continua. Sunt sigur ca si fanii PIC-urilor au o multime de argumente si contraargumente, pana la urma nu e asa mare diferenta intre ele...

Link spre post
Distribuie pe alte site-uri

Interesanta intrebare, in primul rand: in afara faptului ca la comparatie avem in vedere uC pe 8 biti, mare semanare nu este intre cele 2(Atmel sau Microchip) Eu cunosc AVR-urile, cu PIC-uri acum incep, din punctul meu de vedere PIC-ul are un mare avantaj: imunitate la zgomot electromagnetic, in rest este mult sub AVR(ma refer la arhitectura)

 

Depinde de aplicatie, nu cred ca este un raspuns universal.

Link spre post
Distribuie pe alte site-uri

Ok, deci atunci am sa incerc ceva cu PIC-uri. Multumesc. Daca aveti o schema cu un procesor PIC va rog sa o postati aici. Ma gandeam sa incerc sa fac un circuit de alarma. Oare se merita sa fac cu un PIC asa ceva ? :roll:

 

comp))

Link spre post
Distribuie pe alte site-uri

Intradevar PIC-are imunitate mai mare la zgomot, cu atat mai mai mult este mai tolerant cu excesele de semnale la porturi (nu stiu date de catalog dar un semnal care ar "praji" un Atmel este tolerat de PIC). Oricum acest lucru avantajeaza controller-ul daca lucreaza in medii "grele", chiar si asa sunt metode care protejeaza Atmel-ul. Deci raman la el, poate si pt. ca inainte lucram cu controllere cu set complet de instructiuni MCS51, adica AT89C52 care este fabricat tot de Atmel.

Link spre post
Distribuie pe alte site-uri

  • 1 year later...

Parerea mea este sa te apuci sa programezi procesoare pentru care cunosti pe cineva care sa te ajute sa inveti mai repede si cu care sa te consulti cand ai probleme.

 

Sunt tone de proiecte pe net si cu PIC si cu AVRcare iti explica totul de la 0.

 

Si ca sa inchei eu iti recomad AVR.

Link spre post
Distribuie pe alte site-uri

N-oi fi eu foarte experimentat in microcontrollere, dar cam de cateva saptamani, dupa ce am citit pagini intregi de arhitectura si altele si am studiat zeci de programe pe net, am mai invatat si despre PIC-uri, si despre AVR-uri. Personal, prefer AVR-urile pentru ca sunt mai simple si mai versatile. Ca inceput, e bine sa incepi cu PIC-urile, dar mai apoi sa treci pe AVR-uri. Si inca ceva. E bine sa cunosti un limbaj de nivel inalt, si sa scrii cu el programe in compliatoare de microcontrollere. Nu e usor sa stai sa inveti un limbaj de amsamblare, care, de multe ori, functioneaza doar pentru PIC-uri sau doar pentru AVR-uri, pe cand, la un limbaj de nivel inalt, gasesti compliatoare la toate microcontrollerele. Daca e cineva interesat, pot face rost de un manual pentru ATiny in romana.

Link spre post
Distribuie pe alte site-uri

geme internetul de manuale de programare. Ar fi bine sa incepi cu ceva simplu, gen "Hello World" (cel mai simplu program C) si preferabil sa folosesti ANSI C (nu C++)

un compilator free si recunosut de industrie este GNU C Compiler (sau GCC) care se potriveste ca pe toate arhitecturile din lumea asta de la PC-uri la microcontrollere. Compilatorul de C pentru AVR e free (google : AVR Gnu compiler) e insotit de manuale si exemple. Pentru AVR tot free ai un simulator si poti rula programele fara sa ai un microcontroller (sau o placa) si oricum functionarea lui AVR GNU Compiler e conditionata de asamblorul de AVR - deci mai intai mergi la www.atmel.com si downlodeaza AVR Studio (e tot free)

R.

 

PS Un alt sfat important, nu cautati amnuale in limba romana, invatatati engleza ca problema asta tot o sa va muste mai repede sau mai tarziu, degeaba ai un manual in Ro cand datasheet-ul si documentatia compilatorului e in engleza, si asa va fi totdeauna.

Link spre post
Distribuie pe alte site-uri

  • 5 months later...

In ultima vreme am lucrat cu un PIC18F(C18), am facut cateva demo-uri si cu un 16F(asm), din familia AVR am folosit destul de mult ATmega88 si acum cred ca pot sa fac o comparatie mai buna intre avr si pic.

 

 

1.) Frecventa de executie a instructiunilor(FCPU):

PIC: Frec. Oscilator/4, daca am un quartz de 40MHz, instructiunile sunt executate cu 10MHz, si sunt unele care dureaza 3 x CLK_CPU !

AVR: Frec. Oscilator daca am un quartz de 20Mhz, atunci si CPU are 20MHz, dar sunt instructiuni care dureaza 1,2 sau 3 CLK, dar majoritatea numai 1!

 

2.) Registri/RAM:

PIC: este un registru de lucru W, majoritatea trec prin acesta

AVR: sunt 32 de registri de lucru

 

PIC: in PIC RAM-ul este impartit in bankuri de 256byte, aici sunt si registri pentru modulele periferice, pentru accesare este necesar sa fim in bankul respectiv,

la structuri de date mari poate fii un impediment daca nu incap intr-un bank, desigur sunt solutii si la nivel de C, numai ca trebuie tinut cont de acest lucru.

La fel se intampla si cu un stack mai mare, trebuie definit o zona in 2 bankuri pentru linker.

 

AVR: RAM liniar, se poate accesa de oriunde orice zona de ram sau registru

 

3.)Instructiuni:

PIC: 35-45 depinde de controller, sunt instructiuni de testare de bit

AVR: 130-135, instructiunile de testare bit sunt limitate la primele 32 de registrii

 

4.)Accesare EEPROM,FLASH:

PIC: in flash se pot scrie numai un blockuri de 64byte, ca sa scrii in eeprom este nevoie de 2 linii de cod(nu stiu din ce motiv dar este necesar) care aparent nu fac nimic, se scrie intr-un registru (EECON2) odata 0xAA, si dupa 0x55 ...

AVR: se poate accesa fiecare byte din flash

 

5.)Intreruperi de tip Pin change/externe:

PIC: destul de limitat, 4 pini cu aceasta functie

AVR: pe aproape fiecare pin este posibil generarea unui intreruperi

 

6.)Intreruperi in general:

PIC: la cele 18F sunt 2 nivele high si low, fiecare intrerupere trebuie setat sa genereze nivelul dorit, desigur se poate alege ca fiecare sa aiba aceiasi nivel(compatibil cu 16F) dar, odata intrat in intrerupere fie high fie low trebuie cautat sursa exacta, asta prin testarea flagurilor, si stergerea lor din soft!!!

De ex: daca am 3 timere si USART cu intreruperi setate pe low priority, cand apare intreruperea, trebuie sa testez fiecare bit in parte ca sa aflu exact de unde a venit intreruperea.

 

AVR: Este un vector pentru intreruperi, fiecare intrerupere are locul lui unde sare, de acolo este redirectionat la functia care se ocupa de event. Numai la intreruperi de tip pin change trebuie cautat exact care dintre pini a initiat intrerupere.

 

7.)Periferice:

PIC: 18F6620 face parte din gama noua de picuri are 64kB flash si 4Kb RAM, deci nu este o comparatie ideala cu ATmega88 care are numai 8KB flash si 1KRAM, are cateva functii in plus, cum ar fii auto-baud, insa ce nu mia placut ca timerii au prescaller maxim 16, (insa au postscale...) modulele PWM, si Input capture nu sunt legate direct de timeri, ci prin configurare se aleg timerii pentru diferite functii

 

AVR: Fiind de talie mai mica, totusi are destule periferice destepte, daca ne uitam la un avr mai mare atunci vedem ca sunt mai multe timere mai multe periferice, si apare JTAG-ul care lipseste din PIC (au posibiliate de debugg prin ICD2).

 

8.) ADC

PIC: Parca este mai stabil, nu ia atata zgomot, dar nu poti selecta de exemplu canalul 1,2,5,6 fara 3 si 4!

AVR: Ca sa poti folosi toate 10biti, trebuie filtrat bine AVCC, se poate selecta oricare dintre canale.

 

9.) Parere personala: Cred ca PIC este o arhitectura inferioara, ca sa faci o masuratoare ADC trebuie sa configurezi destul de mult, nu este optimizat pentru C, sau nici macar pentru ASM, acele bankuri complica mult, insa are periferice puternice, este compilator pentru 18F limitat dupa 60 de zile, dar cu performanta destul de buna(nu intru in detalii)

AVR insa este mult mai avansat, mai rapid, si mai usor de folosit, compilator puternic FREE!

Microchip a investit mult in marketing si se vede, in Romania se pare ca sunt mai raspanditi, insa firmele de specialitate tind sa foloseasca AVR-uri pentru ca sunt mai ieftine.

Fiecare alege pe care vrea, fiecare isi face treaba, si dupa 1-2 luni te obisnuiesti de oricare, daca esti la inceput cel mai bine sa alegi din care poti intreba pe cineva.

In RO gasiti mai mult suport pentru PIC-uri, ma refer la manuale, cursuri, la facultati se preda mai mult PIC, insa in general pentru AVR suportul este mai puternic, au un forum foarte bun.

 

Am incercat sa fac o comparatie obiectiva si cat se poate de simpla, sper sa va fie de ajutor.

Editat de Laci
Link spre post
Distribuie pe alte site-uri

Buna ziua,

 

De data asta am trecut la favorite forumul. M-am chinuit ceva pana sa-mi aduc aminte adresa web! scratch_one-s_head.gif

 

Legat de subiect, de ceva vreme ma preocupa microcontrolere, deci sunt in perioada initierii, mai invat si eu cate ceva... cand am timp. Ce as dori sa stiu ? Daca se pot programa PIC-urilor asemenea PLC-urilor in leader diagram. Adica, as vrea si nu stiu daca se poate, sa desenz o schema logica si apoi ea sa fie automat convertita de un program in hexa sau cat trebuie pentru PIC-uri. Exista un astfel de program si cum se numeste ?

 

O aplicatie cu PIC18F(C18) care s-ar potrivi mai bine ? Spre exemplu, ar merge sa fac un afisat sa-mi indice tensiunea de retea si curentul consumat de un echipament cu acest PIC sau se poate cu un PIC mai simplu ? :hi:

Editat de dan_e
Link spre post
Distribuie pe alte site-uri

Microcontrolerele nu se pot programa in Lader, nu exista soft care sa faca conversia, insa exista Flowcode, care este defapt programare prin flow chart, adaugi blockuri si le configurezi, descarca si vezi ce stie :)

Sa-ti masoara tensiunea si curentul nu ai nevoie de 18F, merge orice PIC care are ADC si destule pini pentru afisaj, insa pentru 18F ai compilatorul C18(se poate descarca de pe microchip.com), pentru 1-2E in plus nu stiu daca merita sa te complici cu asm..., sau folosesti un AVR, care este mult mai ieftin, ai compilator pentru el, la fel si flowcode...

Link spre post
Distribuie pe alte site-uri

Multumesc pentru raspuns,

 

Despre Flow Chart Programming for Microchip PIC Microcontrollers am gasit aceste site-uri:

http://microcontrollershop.com/product_inf...products_id=527

http://www1.labvolt.com/publications/EBlocks/48107.pdf

 

Din ce am vazut se pare ca nu este un program free, costa numai putin de 68,25USD. Am sa incerc versiunea demo sa vad cum e.

 

Apropo, vroiam sa va intreb, care credeti ca este cel mai bun modul sau kit de programare PIC care l-as putea cumpara din Romania si de unde anume ??? scratch_one-s_head.gif

 

Despre aplicatie masura curent/tensiune, dati-mi un exemplu de PIC cu ADC (ADC cred ca vine de la convertor analog digital!!!), PIC cu care as putea sa fac aplicatia respectiva. Ma gandesc sa o incerc in programul follow code, am sa o postez aici si cu putina bunavointa poate ma ajutati sa corectez greselile (daca vor fi).

 

Inca o data multumesc si o duminica cat se poate de placuta!

Link spre post
Distribuie pe alte site-uri

  • 3 weeks later...

Am vazut intr-un topic pe aici ceva despre kitul EasyPIC sau EasyAVR. As dori sa stiu daca a cumparat cineva unul din kiturile astea si daca este multumit de ele ????

 

Toate cele bune.

Editat de dan_e
Link spre post
Distribuie pe alte site-uri

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
 Share

  • Navigare recentă   0 membri

    Nici un utilizator înregistrat nu vede această pagină.

×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.