ADC 12 bit

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
radiator
-
Posty: 18
Rejestracja: 30 gru 2006, 17:29
Lokalizacja: Ruda Śląska

ADC 12 bit

Post autor: radiator » 26 sie 2009, 22:23

Witam! Kiedyś natknąłem się na informację, że w procesorze ATMega 8535 można rozszerzyć rozdzielczość ADC do 12 bitów, niestety nic nie udało mi się znaleźć na ten temat.

Jeżeli komuś z was się to udało, to proszę o wskazówki.

P.S. Piszę w Bascomie

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 26 sie 2009, 22:36

Poszukaj noty aplikacyjnej na stronie atmela o oversamplingu.

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 10 wrz 2009, 11:10

Witam,

Mnie udało się to z powodzeniem zrobić, piszę o tym krótki artykuł.
Bez wgłębiania się w szczegóły, podstawowa recepta wygląda tak:
1. sumujesz 16 kolejnych wyników przetwarzania ADC
2. przesuwasz sumę o 2 bity w prawo i to jest twój 12 bitowy wynik

Banan
-
Posty: 10
Rejestracja: 11 lip 2009, 23:15
Lokalizacja: Pisz
Kontakt:

Post autor: Banan » 11 wrz 2009, 13:22

Taa tylko pytanie jest takie. Jakie twoje działanie ma wpływ na dokładność pomiaru? ;]

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 11 wrz 2009, 14:54

Witam,

Działanie będzie takie, że w przypadku 10-bitowego przetwornika rozdzielczość wzrośnie do 12 bitów.

Banan
-
Posty: 10
Rejestracja: 11 lip 2009, 23:15
Lokalizacja: Pisz
Kontakt:

Post autor: Banan » 11 wrz 2009, 21:51

No tak, tylko co z tego? Czy poprawi to dokładność pomiaru ? Właśnie nie... Dlatego przetworniki 12bitowe są dużo droższe od 10 bitowych. Takie działanie nie ma praktycznego sensu. Oczywiście przesuwa się w lewo ustawiając bit ADLAR w rejestrze ADMUX, ale to tylko by na przykład odczytać wartość pomiaru jako 8 bitową ADCH.

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 11 wrz 2009, 23:12

Witam,
Takie działanie nie ma praktycznego sensu.
Właśnie, że ma;)
Oczywiście przesuwa się w lewo ustawiając bit ADLAR
To nie ma nic do rzeczy.

Stoi za tym odrobina teorii, w każdym razie dokonując pomiaru w przedstawiony przeze mnie sposób korzystamy z oversamplingu, dzięki czemu przy spełnieniu odpowiednich warunków możemy rozdzielczość przetwornika 10-bitowego zwiększyć programowo np. do 12 bitów. Jak pisałem wcześniej, taka próba została przeze mnie praktycznie przeprowadzona na ATmega8535 i przyniosła spodziewany wynik, czyli właśnie zwiększenie rozdzielczości z 10 do 12 bitów.
Proponuję nie używać słowa "dokładność", bo wydaje się ono nieodpowiednie, chodzi nam o rozdzielczość.

Polecam lekturę:
AN2668: Improving STM32F101xx and STM32F103xx ADC resolution by oversampling
oraz
AVR121: Enhancing ADC resolution by oversampling

P.S
Nie ma znaczenia czy to Bascom, C, czy asembler.

Banan
-
Posty: 10
Rejestracja: 11 lip 2009, 23:15
Lokalizacja: Pisz
Kontakt:

Post autor: Banan » 12 wrz 2009, 20:12

Dzięki za lekturę chętnie się z tym zapoznam

ODPOWIEDZ