Co zrobić z nieużywanymi wejściami analogowymi?


10

Pracuję nad aplikacją wykorzystującą mikrokontroler atmel ATmega328p. Zacząłem od wersji 28 PDIP, ale teraz chcę użyć 32 TQFP, który, jak zauważyłem, ma 2 dodatkowe wejścia po skompilowaniu mojego projektu Altium.

Wejściami tymi są ADC7: 6, które „służą jako wejścia analogowe do przetwornika A / D.. Te piny są zasilane z zasilacza analogowego i służą jako 10-bitowe kanały ADC”, zgodnie z arkuszem danych.

Czytałem online, że niektórzy ludzie mają nieznane wyniki, gdy używają ADC i mają zmienne dane wejściowe. Przeczytałem, że zrobili to, aktywując rezystory rozwijane, ale nie widzę, jak je skonfigurować (ponieważ nie należą one do portu I / O). Ponadto moja aplikacja w ogóle nie korzysta z konwertera A / D.

Jakie są najlepsze praktyki? Czy powinienem podłączyć zewnętrzny rezystor obniżający? Zignorować błąd Altium?

Odpowiedzi:


8

ADC6 i ADC7 są szczególnym przypadkiem. Nie mają podłączonych do nich cyfrowych buforów wejściowych ani wyjściowych, więc nie będą generować szumów ani pobierać nadmiaru prądu, tak jak inne piny na chipie, jeśli nie zostaną odpowiednio przekazane. Innymi słowy, możesz pozostawić je pływające i nie powinny one nienormalnie wpływać na twój projekt.

Nie mają również żadnych wewnętrznych podciągnięć ani podciągnięć, więc jeśli planujesz związać je w górę lub w dół, będziesz musiał to zrobić zewnętrznie.

Ponieważ nigdy nie mogą być wyjściami, nie ma dodatkowego bezpieczeństwa ani ochrony w stosowaniu rezystora w porównaniu z podłączeniem ich bezpośrednio do VCC lub GND. Jeśli nadal martwisz się o swobodne wejścia analogowe, możesz po prostu przywiązać ADC7 do styku GND sąsiadującego z nim, a ADC6 do AVCC (lub AREF, jeśli wolisz).

Kondensator próbkowania i trzymania jest niewielki, więc jeśli zdecydujesz się zastosować zalecenie czyszczenia , możesz użyć ADC7 do próbkowania - kondensator bardzo szybko opróżni się do ziemi i uzyskasz opisane korzyści.


Martwiłem się, że będą miały inne funkcje, takie jak pozostałe piny we / wy, ale masz rację, ponieważ tak nie jest, powinienem wybrać opcję pozostawienia ich w stanie swobodnym. A także, ponieważ projektuję ostateczną wersję aplikacji i wiem, że ADC nigdy nie będzie używany.
esal26

Gdzie odkryłeś, że ADC6 i 7 są „specjalne”? Nie mogę zweryfikować z arkusza danych, czy te dane wejściowe różnią się od innych.
Rev1.0

@ Rev1.0 Jest wiele miejsc w arkuszu danych, które to pokazują. Prawdopodobnie najbardziej oczywistym jest ostatnie zdanie 24.9.5: „Zauważ, że piny ADC ADC7 i ADC6 nie mają cyfrowych buforów wejściowych, a zatem nie wymagają bitów wyłączania wejścia cyfrowego”. Zwróć również uwagę na schemat blokowy, na 2.1którym pokazuje ADC [6..7] idący prosto do ADC, podczas gdy pozostałe 6 portów ADC jest współdzielone z PORTC, a Fig 1-1pinouty na pokazach ADC6 i ADC7 nie mają wspólnych funkcji.
Adam Davis

O moja wina, patrzyłem na arkusz danych 324/644. To pierwszy kontroler Atmel, w którym widzę tę „specjalność”.
Rev1.0

12

Rezystor rozkładany jest dobry, tak. Nie tylko stabilizuje wejścia i zapobiega pobieraniu nadmiaru prądu, ale ma ukrytą zaletę, że można je wykorzystać jako urządzenie do czyszczenia kondensatorów w trybie próbkowania i trzymania. Jeśli odczytujesz wartość analogową z jednego z tych dodatkowych wejść pomiędzy odczytami z innych wejść, może to sprawić, że twoje odczyty będą nieco bardziej stabilne, ponieważ kondensator próbkowania i podtrzymania będzie zawsze zaczynał od tego samego poziomu.

Im mniejszy rezystor, tym szybciej kondensator rozładuje się, ale im wyższy prąd rozruchowy. Coś w okolicach 470Ω jest dobre. Chroni również przed pinem skonfigurowanym jako wyjście i wysokim poziomem.


1
Poczekaj, więc jeśli zrobię 1) Odczytaj rzeczywistą wartość analogową 2) Odczytaj obniżony analog, moja rzeczywista wartość analogowa będzie mniej głośna czy coś?
Funkyguy,

1
Mniej na nią wpłyną odczyty z innych kanałów. Czytaj kanał 1, czytaj kanał zapasowy, czytaj kanał 2, czytaj kanał zapasowy itp.
Majenko,

Whoaa, to takie słodkie!
Funkyguy,

3
Ekstremalny przykład z zmiennymi wejściami: forum.arduino.cc/index.php?topic=182446.0
Majenko

Rozumiem, chociaż nie jestem zaznajomiony z próbką i zatyczką, sensowne jest jej całkowite rozładowanie i rozpoczęcie próbkowania za każdym razem od tego samego punktu odniesienia. Świetny pomysł.
sherrellbc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.