Impedancja wejściowa pinów analogowych Arduino Uno?

18

Używam czipowego czujnika prądu opartego na efekcie Halla ACS712 na niektórych małych silnikach ramion robota i odczytuje napięcie analogowe za pomocą Arduino Uno. Miałem dość dobre wyniki, ale dopiero po włożeniu filtra RC na wyjściu. Jednak w nocie aplikacyjnej w arkuszu danych mówi się, aby tego nie robić:

„dodanie filtra RC do wyjścia czujnika IC może spowodować niepożądane tłumienie sygnału wyjściowego urządzenia - nawet w przypadku sygnałów prądu stałego”.

Następnie podaje formułę do obliczenia tłumienia, ale zależy to od znajomości impedancji wejściowej czegokolwiek, co odczytuje sygnał, więc po to tu jestem.


źródło

Odpowiedzi:

23

Jest tu kilka czynników.

Po pierwsze, impedancja wejściowa ADC. ATmega328P wykorzystuje ADC z sukcesywnym przybliżeniem . Jako takie, wejście jest zasadniczo wejściem do komparatora, więc ADC ma bardzo wysoką impedancję wejściową.

wprowadź opis zdjęcia tutaj

ADC jest określony jako mający impedancję wejściową 100 MΩ (czyli MegaOhm).
Wydaje mi się to jednak dość podejrzane. Wraz z faktem, że nie określono przecieku wejścia analogowego, zgaduję, że jest to charakterystyka elektryczna tylko ADC, a nie ADC wraz z całą strukturą pinów IO. Domyślam się, że linie we / wy ADC, które są wspólne z cyfrowym we / wy, mają znacznie większy prąd upływowy (1 uA z dokumentacji) niż linie we / wy, które są tylko analogowe (50 nA, przy założeniu, że komparator SAR jest podobny do komparatora analogowego wejściowa topologia).


Istnieje jednak inna uwaga, z której wynika, że ​​Atmel określa impedancję źródła <10 KΩ:
Pojemność wejściowa

wprowadź opis zdjęcia tutaj

Zasadniczo połączenia wejściowe do ADC wewnątrz układu, po multiplekserze mają pewną pojemność. Jeśli spojrzysz na obwód równoważny dla wejścia ATmega ADC:
wprowadź opis zdjęcia tutaj

Możesz zobaczyć, jak wygląda wejście.

Problem z wysoką impedancją źródła powstaje, gdy przełączasz multiplekser wejściowy z jednego styku na drugi. Jeśli masz dwa wejścia, jedno przy 0,5 V, a drugie przy 4,5 V, po przełączeniu z jednego na drugie, wejście musi naładować (lub rozładować) ten kondensator 14 pF.

Jeśli źródło sygnału ma bardzo wysoką impedancję, konieczność naładowania kondensatora może spowodować chwilowe obniżenie napięcia wejściowego. Jeśli ADC konwertuje na wejściu, gdy wciąż ładuje kondensator, otrzymasz nieprawidłową wartość.

Może to prawdopodobnie być rozpatrywane przez umożliwienie wejścia osiedlić ADC na pewien okres czasu po przełączeniu kanałów ADC, ale najlepszym sposobem radzenia sobie z nim jest po prostu upewnić się, że źródło sygnału wejściowego można ładować pojemność tyle szybko, że nie jest to problem.

Connor Wolf
źródło
1
Ładnie napisane.
gwideman
2
Wiem, że to stare pytanie, ale jak „po prostu upewnić się, że źródło wejściowe może ładować pojemność wystarczająco szybko, aby nie stanowiło to problemu”?
RubberDuck,
2
@RubberDuck - Jeśli twój sygnał wejściowy ma wysoką lub nieznaną impedancję, buforuj go, używając czegoś takiego jak wzmacniacz operacyjny skonfigurowany jako podążacz napięcia .
Connor Wolf,
+1 dla „Tutaj jest pojemność”. Teraz to rozumiem.
Eiver
8

Arkusz danych nie jest całkowicie jasny.

http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328-328p_datasheet_complete.pdf

(24.6.1) Strona 244 stwierdza: „ADC jest zoptymalizowany dla sygnałów analogowych o impedancji wyjściowej około 10 kΩ lub mniejszej. Jeśli takie źródło zostanie użyte, czas próbkowania będzie nieistotny.”

To jest najbliższe cokolwiek, co kiedykolwiek znalazłem w arkuszu danych, który mówi o impedancji ADC.

Baldengineer
źródło
Jeśli potrzebujesz dokładnej wartości, 100MΩ znajduje się w tabeli 29-15 na stronie 310.
Brian Gordon
Nazywa to „opornością wejścia analogowego” - więc ładowanie przez to czapki 14 pF? Powiedziałbym, że lepiej mieć coś z przodu. Używam czapek .01 dla napięć stałych, które nie zmieniają się szybko.
SDsolar