Jump to content
ELFORUM - Forumul Electronistilor

Recommended Posts

Avem , sa zicem , portul A  cu 8 intrari  cu potenta ADC . Din cele 8 intrari , intrare 0 si 1 sint folosite cu ADC activat , celelalte in regim stantart , ca intrari numerice .

Ce se intimpla daca citim tot portul  , tip  g = PortA; 

Sau daca citim  g=PINA&((1<<PA7)|(1<<PA6)|(1<<PA5)|(1<<PA4)|(1<<PA3)|(1<<PA2));

Ce se va citi pentru bitul 0 si 1 , tinind cont ca sint alocati cei 2 pini pt ADC ?

Share this post


Link to post
Share on other sites

depinde de limitarile librariilor C.

in asm poti face orice vrei. Pinii portului A folositi pentru convertorul ADC trebuie configurati ca intrari cu pull-up dezactivat iar citirea se face din ADCH si ADCL. Convertorul ADC poate fi legat doar la un singur pin in configuratie single si la doi pini in configuratie diferentiala.

Daca se citesc bitii 0 si 1 ca intrari logice (PINA), pentru o alimentare de 5V, se vor respecta valorile logice CMOS. Adica vei citi 0 logic pentru tensiuni cuprinse intre 0 - 1,5V si 1 logic pentru tensiuni intre 3,5 - 5V. 

In datasheeturile Atmega, 0 logic e considerat de la 0V la 1,4V iar 1 logic de la 2,7V la 5V. Pentru tensiuni intre 1,4V si 2,7V valoarea citita pe PINA difera de la un microcontroler la altul si depinde mult de starea anterioara a bistabilului de la intrare.

Daca bitii 0 si 1 te supara, poti sa-i stergi:  cu ANDI Rx,0b_11111100 ii pui pe 0, iar cu ORI Rx,0b_00000011 ii pui pe 1.

Share this post


Link to post
Share on other sites
2 hours ago, hspinache said:

Avem , sa zicem , portul A  cu 8 intrari  cu potenta ADC . Din cele 8 intrari , intrare 0 si 1 sint folosite cu ADC activat , celelalte in regim stantart , ca intrari numerice .

Ce se intimpla daca citim tot portul... 

Ce se va citi pentru bitul 0 si 1 , tinind cont ca sint alocati cei 2 pini pt ADC ?

Pai pinii ADC nu sunt biti. Informatia prezenta este sub format byte sau word. 

 

A nu se confunda byte-ul de configurare al portului A cu registrii asignati intrarilor/iesirilor. 

Share this post


Link to post
Share on other sites

Raspunsul se gaseste in datasheet ! Nu cunosc exact raspunsul pt ca nu lucrez cu Atmel dar la PIC este asha :

I/O pins configured as analog input alwaysread ‘0’. 

Share this post


Link to post
Share on other sites

In   datasheet  nu am gasit ceva , sau poate nu am vazut .

La prima vedere ,  pe simulare , se pare ca ii citeste 0 .  ok ; 

Problema 2 : setare ceas . 

Ce valori ar fi recomandate ? depinde de frecventa semnal injectat ? Am gasit ca ar trebui se ne limitam la max 1Mhz . 

Share this post


Link to post
Share on other sites
Acum 25 minute, hspinache a spus:

Problema 2 : setare ceas . 

Ce valori ar fi recomandate ? depinde de frecventa semnal injectat ? Am gasit ca ar trebui se ne limitam la max 1Mhz . 

Conform foii de catalog (pe care se pare ca nu ai citit-o) pentru obtinerea rezolutiei maxime de 10 biti, frcventa de lucru a ADC nu ar trebui sa depaseasca 200kHz.

Daca in schimb se doreste o rezolutie inferioara atunci frecventa de lucru a ADC poate fi crescuta, astfel ca la max. 1MHz vei avea o rezolutie de 3 biti.

In alta ordine de idei, frecventa maxima a semnalulului aplicat la intrarea ADC ar trebui sa fie sub limita impusa de teorema lui Nyquist.

Citeste si aici: http://www.openmusiclabs.com/learning/digital/atmega-adc/in-depth/index.html

Share this post


Link to post
Share on other sites

La Atmega, frecventa CLK la intrarea convertorului trebuie sa fie minim 50 kHz si maxim 200 kHz. O conversie se face in 13 cicluri CLK (clk de la intrarea convertorului) iar numarul maxim de conversii pe secunda este 15384. Pentru CLK sub  50 kHz si peste 200 kHz incep sa apara erori.

Convertorul AD nu este recomandat sa fie folosit in cazul in care se utilizeaza un cristal de cuartz de 32.768 kHz.

Share this post


Link to post
Share on other sites

Am sa il folosesc pe 8 biti . Am inteles ca trebuie sa limitez in 200 khz . ok.

Dar de folosit am sa folosesc 2 canale , in free runing .  Probabil cind va comuta si achizitiona un canal , celilalt va pierde informatia si invers . 

Este recomandabil sa fie frecventa mai mare ?  Si care ar fi cea mai rapida metoda de comutare a canalelor ?

Share this post


Link to post
Share on other sites

Multiplexarea canalelor are loc hardware, nu se face prin soft.

Citeste capitolul "Changing channel or reference selection" din foaia de catalog a microcontroller-ului.

Share this post


Link to post
Share on other sites

@spinach, ce fel de semnale doriti sa digitalizati cu ADC-ul?

 

Daca frecventa maxima din spectrul semnalului de intrare este scazuta, mai mica de aproximativ  de 2,5KHz,

(deoarece sunt 2 canale frecventa de esantionare rezulta la jumatate),  atunci prin comutarea a 2 canale nu se pierde informatie.

In datasheetul pentru ATmega328:

 According to the datasheet, to get a 10 bits resolution on the conversion result, the ADC clock
frequency should be 50kHz – 200kHz. When the ADC clock is 200kHz, the sampling
frequency is ~15kSPS, which confines the upper frequency in the sampled signal to ~7.5kHz.

La 10 biti sunt ceva probleme, deoarece trebuiesc combinate valorile LSB si MSB rezultate din esantionare, dar nu si la 8 biti.

Se arata ca pentru un canal se poate utiliza o frecventa de esantionare de circa 15 KHz, teoretic pentru un semnal cu frecventa maxima de 7,5KHz.

In realitate, pentru ca semnalul esantionat sa poata fi vizualizat ca o imagine de calitate, trebuiesc 5-10 esantione pe perioada si atunci

 frecventa maxima utila va fi sub 1KHz. In cazul unor prelucrari numerice avansate cu metode Spline, Hanning, Hamming, Blackman, se poate obtine

 o acuratete vizuala pana la aproximativ 6KHz, adica cam la 80% din jumatatea freventei de esantionare, frecventa Nyquist (vezi terema Nyquist-Shannon).

 

Pentru studiu am facut un program interactiv capabil sa simuleze tipuri diverse de esantionare.

  image.thumb.png.86ba641fa473b35aa69267498652614b.png

 

Un exemplu de utilizare este in poza, unde semnalul este "natur"

image.thumb.png.26cd9df12046a8c986f1f0499a80be4b.png

 

@gsabac

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.