piątek, 1 kwietnia 2011

Pułapki AVR: Niektóre piny nie działają


Autor: Dondu

Artykuł jest fragmentem cyklu: Pułapki mikrokontrolerów AVR
To także jeden z częstych przypadków spotykanych wśród początkujących. Bez wyraźnej przyczyny nie działają niektóre piny mikrokontrolera. Pomiary napięć dają dziwne rezultaty, głowa boli od domysłów co może być przyczyną, a czas ucieka:

Michał 911
... dlaczego te porty PC0-PC3 nie działają poprawnie. ... Jest to tym dziwniejsze, że inne wyjścia (PB2-PB5, PC4, PC5) działają dobrze ...


Rzućmy okiem na schemat autora. Zaznaczyłem na nim błąd.

Przyczyna jest banalna: brak dbania o podstawy jakimi są prawidłowe podłączenie zasilania mikrokontrolera. Autor nie podłączył prawidłowo mikrokontrolera Atmega8.



Popatrzymy na datasheety dwóch przykładowych mikrokontrolerów i opisane tam wymagania producenta:

Atmega8 datasheet

I cóż tutaj czytamy? Że w przypadku mikrokontrolera Atmega8 piny PC0-PC3, przetwornik analogowo-cyfrowy (ADC) oraz kanały przetwornika  ADC (7 i 6) zasilane są z pinu AVcc. 

Teraz jasno widać, że piny PC3-PC0 nie działały, ponieważ autor nie podłączył prawidłowo zasilania mikrokontrolera.

Z ciekawości zobaczmy jak to jest w przypadku Atmega16:

Atmega16 datasheet

O! Jest inaczej! W Atmega16 pin AVcc (inaczej niż w Atmega8) odpowiada za zasilanie całego portu A oraz przetwornika ADC.

W obu przypadkach jest dopisek, że bezwzględnie zawsze należy podłączać pin AVcc niezależnie czy wykorzystuje się częśc analogową mikrokontrolera, czy nie.

Wniosek:
Zawsze podłączaj wszystkie piny zasilające!

Więcej na ten temat znajdziesz tutaj:


Przyczyną niedziałania niektórych pinów może być także interfejs JATG.


Zobacz pozostałe pułapki AVR

Brak komentarzy:

Prześlij komentarz