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 ...
... 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!
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
- Pułapki AVR: Spis treści
Brak komentarzy:
Prześlij komentarz