Sari la conținut

ADC Atmel AVR vs. ADC PIC ?


dan_e

Postări Recomandate

Citeam pe net ca ar fi o diferenta de performanta intre convertoarele analog-digital din microcontrolere Atmel si cele din PIC-uri. Voi ce ati auzit / constatat ?

Link spre comentariu
Distribuie pe alte site-uri

Daca te referi la microcontrolere pe 8 bit care au ADC-uri pe 10bit, in cazul Atmel pinul AVCC trebuie filtrat bine comparabil cu ADC-urile din PIC-uri care nu sunt asa zgomotoase. Pe de alta parte, Atmel-urile sunt mai practice deoarece poti selecta canalul dorit foarte usor, nu ca la PIC-uri cand ca sa ajungi, spre ex., la canalul ADC3, trebuie sa treci prin 0,1,2. Precizia de folosire ADC, pentru ambele MCU-uri, e aceeasi treaba, fara avantaje sau dezavantaje.

Link spre comentariu
Distribuie pe alte site-uri

Acum 23 ore, dan_e a spus:

Citeam pe net ca ar fi o diferenta de performanta intre convertoarele analog-digital din microcontrolere Atmel si cele din PIC-uri. Voi ce ati auzit / constatat ?

Si ce anume ati citit?

Acum 16 ore, prog a spus:

Daca te referi la microcontrolere pe 8 bit care au ADC-uri pe 10bit, in cazul Atmel pinul AVCC trebuie filtrat bine comparabil cu ADC-urile din PIC-uri care nu sunt asa zgomotoase. Pe de alta parte, Atmel-urile sunt mai practice deoarece poti selecta canalul dorit foarte usor, nu ca la PIC-uri cand ca sa ajungi, spre ex., la canalul ADC3, trebuie sa treci prin 0,1,2. Precizia de folosire ADC, pentru ambele MCU-uri, e aceeasi treaba, fara avantaje sau dezavantaje.

Ma intreb care este tipul PIC-ului care are asemenea proprietati aratate in textul ingrosat.

Eu am programat diverse tipuri PIC de uC, seriile 16, 18 sau dsPIC seriile 30 si 33 si la acestea poti alege, dupa configurare, orice canal aleator fara nici o restrictie.

Proiectarea circuitului are o mare importanta in respectarea linearitatii, atit la nivele mici LSB cit si la nivele mari USB, deoarece curentii prin traseele

 de masa si alimentare creaza caderi de tensiune de cativa mV, care denatureaza conversia poate si cu 5-6 biti.

@gsabac

Link spre comentariu
Distribuie pe alte site-uri

ADC - urile de la PIC si AVR sunt exact asa cum sunt descrise in datasheet-urile lor. Nu merg nici mai bine nici mai prost. Din proprie experienta pot spune ca e destul de usor de atins performanta descrisa in datasheet. (Amble au application notes ANxxx  care descriu partea de hardware si de software ca sa obtii ce trebuie de la ele)

RR

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Exact ce spuneam cu cateva postari mai inainte, numai prin proiectarea inteligenta a circuitului imprimat si a unui soft adecvat

 se pot obtine performante, adica exact cit are ADC-ul precizie, doar 1/2 LSb. La conversia ADC cu 8 bit sau 10 bit realizarea practica

 este oarecum facila, dar spre 12 bit cand o treapta are circa 1mV trebuiesc luate masuri deosebite de stabilitate a etalonului, a impedantei

 sursei de semnal, de filtrare a semnalului de intrare si a sursei de alimentare.

@gsabac

Editat de donpetru
Indepartare continut OFFTOPIC inutil in contextul discutiei actuale
Link spre comentariu
Distribuie pe alte site-uri

La 28.03.2019 la 11:39, gsabac a spus:

Si ce anume ati citit?

Ma intreb care este tipul PIC-ului care are asemenea proprietati aratate in textul ingrosat.

Eu am programat diverse tipuri PIC de uC, seriile 16, 18 sau dsPIC seriile 30 si 33 si la acestea poti alege, dupa configurare, orice canal aleator fara nici o restrictie.

Proiectarea circuitului are o mare importanta in respectarea linearitatii, atit la nivele mici LSB cit si la nivele mari USB, deoarece curentii prin traseele

 de masa si alimentare creaza caderi de tensiune de cativa mV, care denatureaza conversia poate si cu 5-6 biti.

@gsabac

Eu asa mi-aduc aminte ca erau acum vreo 10 ani in urma, poate s-o fi schimbat lucrurile, nu stiu!

Link spre comentariu
Distribuie pe alte site-uri

Am sa arat cum folosesc eu secventele de cod pentru selectarea canalelor ADC la microcontrolerele PIC, dupa initializare.

Mai jos este o parte din codul compilat de la un generator DDS cu AD9850(AD9851) si PIC18F2550. Click pentru marire.

1105979862_sweepercompilat.thumb.png.7b8470807be6751ffd8bbc9e68063f61.png

Am schimbat secventele de cod initiale 0,1,2,3 cu 2,4,1,3 si codul a fost compilat si linkeditat cu succes, dupa care

 am incarcat codul HEX in Proteus si am initializat rularea. Cu Visual Studio 2013, cu o legatura duplex prin USB, am comandat baleiajul

 frecventelor si am receptionat semnalele in modul si faza de pe o sarcina complexa, in esenta in final ar fi o antena de emisie-receptie.

Click pentru marire.

467574437_sweepercuPIC18F2550.thumb.png.c7a2a3bc752774eb218f2bb350a356e9.png

Semnalele verticale arata baleajul frecventei in timp, fiecare cu amplitudinea si faza si sunt calculate si afisate curbele de raspuns si valorile esentiale.

Ca o concluzie la procedeul folosit, nu am observat nici o modificare in schimbarea functionarii complexului de simulare si codul prezentat

 pentru ADC  poate fi util vreunui user interesat.

@gsabac

Editat de gsabac
Link spre comentariu
Distribuie pe alte site-uri

Eu folosesc cel mai mult cod in MikroBasic, cu compilatoarele de la Mikroelectronica pentru microcontrolerele PIC si dsPIC,

ca in secventa prezentata anterior, dar si MikroC. Se poate folosi si codul in MicroPascal pentru cunoscatori cu aceleasi rezultate,

 deoarece pentru toate, compilatorul le transforma in ASM.

Frecventa de esantionare maxima pentru PIC18F2550(are USB, max. 13 canale ADC de 10 bit) este de 100Ksps,

 iar la familia dsPIC33EPXXGS50X (are SPI-15 Mbps, 10-22 canale ADC de 12 bit) este de 3.25 Msps.

Ar fi util de postat si un cod similar pentru ADC-uri la microcontrolerele Atmel si performantele la tipuri reprezentative cu ADC.

@gsabac

Editat de gsabac
Link spre comentariu
Distribuie pe alte site-uri

La partea de ADC (la MCU de 8 Biti ca la ele se refera topicul) AVR-ul si PIC-ul nu se diferentiaza prea tare, la fel de bune sau la fel de limitate depinde de unde privesti.

Codul arata foarte similar la AVR - alegi viteza (care influenteaza precizia) - alegi modul de aliniere al rezultatului (left/right justified) - alegi canalul - si setezi bitul de start.

Astepti bitul de conversie completa sau te duci mai departe daca lucrezi cu intreruperi. (culegi rezultatul in rutina de intrerupere)

 

Din pacate ambele AVR si PIC 8 biti - sunt depasite din toate punctele de vedere  performante/pret de MCU moderne (Cortex M0 M4 etc.) - Atmel s-a prins de treaba asta si a inceput acum 17 ani sa faca si MCU cu ARM (seria SAM) - aia de la PIC au ramas blocati in lumea lor, cu tool-uri slabe si compilatoare care mergeau numai pe PIC-uri.

Cand Microchip si-au dat seama ca au ramas in urma au cumparat ATMEL (dupa ce au aruncat cu rahat unii in altii 25 de ani) de fapt 70% la suta din piata de MCU e cu ARM la ora actuala si microchip avea nevoie de o felie din piata.

RR

 

 

 

  • Like 1
  • Thanks 1
Link spre comentariu
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
  • 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.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock