Autor: Dondu
Artykuł jest częścią cyklu: Mikrokontroler vs prądy pinów
Maksymalny prąd pinu I/O jest zależny od struktury wewnętrznej mikrokontrolera. Jak przekonasz się poniżej, występuje tutaj szereg przypadków, bardzo indywidualnych dla danej rodziny mikrokontrolerów.
Mikrokontroler AVR ATmega
W przypadku mikrokontrolerów AVR np. ATmega8 mamy na pozór prostą sytuację, gdyż wszystkie piny I/O (wejścia/wyjścia) mają określony prąd maksymalny na poziomie 40mA:
Co dokładnie oznacza ten parametr?
Ni mniej, ni więcej, tylko maksymalny możliwy prąd pinu mikrokontrolera, którego nie wolno przekroczyć niezależnie od kierunku sink, czy source, gdyż grozi to uszkodzeniem mikrokontrolera. Wartość 40mA, to wartość krytyczna i tak powinieneś ją rozumieć:
Nie oznacza to jednak, że możesz bezkarnie żądać 40mA od każdego pinu.
Nie oznacza także, że możesz jednocześnie wieloma pinami (każdy po 40mA) sterować.
Istotny tutaj jest drugi parametr na powyższym fragmencie datasheet (piny Vcc i GND) oraz kilka innych, o czym piszę w następnych częściach tego cyklu artykułów.
Jak jest więc wartość bezpieczna, zalecana?
Datasheet ATmega8 przyjmuje, że wartościami tymi są wartości testowe określone następująco:
W związku z tym, możesz przyjmować, że takie jak wyżej parametry zapewnią prawidłową i bezpieczną pracę mikrokontrolera.
Prawidłową i bezpieczną?
Dlaczego bezpieczną już wiesz, ale co oznacza prawidłową pracę?
Każdy pin I/O ma swój wewnętrzny układ, na którego wyjściu (podczas pracy jako wyjście) znajdują się tranzystory sterujące pinem. Jak każdy element elektroniczny one także mają swoje parametry. Także wewnętrzna struktura mikrokontrolera (połączenia) dodatkowo ograniczają możliwe do osiągnięcia parametry wyjścia mikrokontrolera.
Dlatego też, tranzystory na wyjściu pinu mikrokontrolera mają swoje charakterystyki zależne od:
Stąd powyżej podane są osobne prądy dla napięć zasilania 5V oraz 3V.
Niektórzy producenci pokazują w datasheet wykresy tych zależności, co znacząco ułatwia dobieranie parametrów pracy mikrokontrolera dla różnych napięć jego zasilania. Wiesz zapewne, że większość mikrokontrolerów może pracować w bardzo szerokich zakresach napięć zasilających, co jest ich kolosalną zaletą.
Przyglądnijmy się więc co pokazują nam wykresy w datasheet ATmega8.
Dla jedynki logicznej na wyjściu (Source Current):
Jak należy czytać powyższy wykres?
Przykład
Jeżeli:
Zaraz! Ale tutaj jest pokazane, że można osiągać o wiele więcej niż 40mA, choć spadek napięcia będzie oczywiście odpowiednio większy!
Owszem, tak wynika z pomiarów, na podstawie których te wykresy powstały, ale producent nie daje żadnej gwarancji, że pin nie ulegnie uszkodzeniu.
Kiedy istotny jest problem spadku napięcia na pinie I/O?
Dla nas z tego wykresu istotna jest także inna informacja. Skoro przy dużym prądzie występuje znaczny spadek napięcia na pinie mikrokontrolera, to istnieje możliwość, że stan ten nie zostanie odebrany prawidłowo jako jedynka przez urządzenie, którym pin steruje. W takich przypadkach, należy uwzględnić spadek napięcia pinu i odpowiednio zmodyfikować układ sterowany przez mikrokontroler.
Poniżej ten sam wykres, ale dla napięcia zasilania 2,7V:
Dla zera logicznego na wyjściu (Sink Current):
Jak należy czytać powyższy wykres?
Przykład
Jeżeli:
W tym przypadku (zero logiczne) także występuje problem związany z możliwością złej interpretacji przez sterowany pinem element elektroniczny. Nie będę go opisywał ponieważ jest on analogiczny do opisu dla przypadku jedynki logicznej (patrz wyżej). Podobnie z prądami większymi od 40mA - wyjaśniłem powyżej.
Poniżej ten sam wykres, ale dla napięcia zasilania 2,7V:
AVR: Pin RESET wyjątkiem
Następna niespodzianka czeka Ciebie w przypadku pinu RESET. Pin ten jest używany podczas programowania wysokonapięciowego (+12V), stąd od strony elektronicznej jest zupełnie inaczej zbudowany. Dlatego też ma zupełnie inną charakterystykę prądową, gdy pracuje jako zwykły pin I/O:
Jak rozumieć powyższe wykresy opisałem wcześniej w tym artykule.
Ale to nie koniec niespodzianek, następną z tym związaną opisuję w kolejnych punktach tego cyklu artykułów.
Mikrokontroler PIC
W drugim przykładowym mikrokontrolerze PIC18F87K90, sytuacja jest bardziej skomplikowana:
Po pierwsze widzimy, że (podobnie jak w ATmega8) prądy sink oraz source są takie same dla poszczególnych pinów I/O.
Po drugie możesz zauważyć, kolosalne różnice pomiędzy dopuszczalnymi prądami dla poszczególnych pinów I/O. Zauważ, że różne porty mają różne wartości prądów, a w przypadku PORTA, istnieje nawet podział na piny numer od 0 do 5 oraz piny 6 i 7.
Różnice są ogromne przez co nie można bezkarnie podłączyć np. standardowej diody LED sterowanej prądem 20mA pod piny, które wytrzymują jedynie 2mA. Należy wtedy zwiększyć rezystor tak, by nie przekroczyć 2mA. Jednakże wtedy możesz nie uzyskać odpowiedniej jasności, co oznacza, że albo diodę LED należy przenieść na inny pin lub zastosować diody o dużej emisji światła przy małym prądzie - na rynku są dostępne. W zakresie liczenia prądów diod pomocny będzie Kalkulator diod LED.
Diody LED są oczywiście tylko przykładem.
Mikrokontroler AVR ATmega
W przypadku mikrokontrolerów AVR np. ATmega8 mamy na pozór prostą sytuację, gdyż wszystkie piny I/O (wejścia/wyjścia) mają określony prąd maksymalny na poziomie 40mA:
Wielu początkujących nie drąży już tematu dalej i nieświadomi zagrożeń, przyjmują tę wartość jako jedyne ograniczenie.
Co dokładnie oznacza ten parametr?
Ni mniej, ni więcej, tylko maksymalny możliwy prąd pinu mikrokontrolera, którego nie wolno przekroczyć niezależnie od kierunku sink, czy source, gdyż grozi to uszkodzeniem mikrokontrolera. Wartość 40mA, to wartość krytyczna i tak powinieneś ją rozumieć:
Nie oznacza to jednak, że możesz bezkarnie żądać 40mA od każdego pinu.
Nie oznacza także, że możesz jednocześnie wieloma pinami (każdy po 40mA) sterować.
Istotny tutaj jest drugi parametr na powyższym fragmencie datasheet (piny Vcc i GND) oraz kilka innych, o czym piszę w następnych częściach tego cyklu artykułów.
Jak jest więc wartość bezpieczna, zalecana?
Datasheet ATmega8 przyjmuje, że wartościami tymi są wartości testowe określone następująco:
- 20mA dla zasilania 5V,
- 10mA dla zasilania 3V,
W związku z tym, możesz przyjmować, że takie jak wyżej parametry zapewnią prawidłową i bezpieczną pracę mikrokontrolera.
Prawidłową i bezpieczną?
Dlaczego bezpieczną już wiesz, ale co oznacza prawidłową pracę?
Każdy pin I/O ma swój wewnętrzny układ, na którego wyjściu (podczas pracy jako wyjście) znajdują się tranzystory sterujące pinem. Jak każdy element elektroniczny one także mają swoje parametry. Także wewnętrzna struktura mikrokontrolera (połączenia) dodatkowo ograniczają możliwe do osiągnięcia parametry wyjścia mikrokontrolera.
Dlatego też, tranzystory na wyjściu pinu mikrokontrolera mają swoje charakterystyki zależne od:
- napięcia zasilającego mikrokontroler,
- prądu płynącego przez pin,
- temperatury pracy mikrokontrolera.
Stąd powyżej podane są osobne prądy dla napięć zasilania 5V oraz 3V.
Niektórzy producenci pokazują w datasheet wykresy tych zależności, co znacząco ułatwia dobieranie parametrów pracy mikrokontrolera dla różnych napięć jego zasilania. Wiesz zapewne, że większość mikrokontrolerów może pracować w bardzo szerokich zakresach napięć zasilających, co jest ich kolosalną zaletą.
Przyglądnijmy się więc co pokazują nam wykresy w datasheet ATmega8.
Dla jedynki logicznej na wyjściu (Source Current):
Jak należy czytać powyższy wykres?
Przykład
Jeżeli:
- zasilasz mikrokontroler napięciem 5V
- i ma on temperaturę 25°C
- i pobierasz z pinu prąd 40mA,
Zaraz! Ale tutaj jest pokazane, że można osiągać o wiele więcej niż 40mA, choć spadek napięcia będzie oczywiście odpowiednio większy!
Owszem, tak wynika z pomiarów, na podstawie których te wykresy powstały, ale producent nie daje żadnej gwarancji, że pin nie ulegnie uszkodzeniu.
Kiedy istotny jest problem spadku napięcia na pinie I/O?
Dla nas z tego wykresu istotna jest także inna informacja. Skoro przy dużym prądzie występuje znaczny spadek napięcia na pinie mikrokontrolera, to istnieje możliwość, że stan ten nie zostanie odebrany prawidłowo jako jedynka przez urządzenie, którym pin steruje. W takich przypadkach, należy uwzględnić spadek napięcia pinu i odpowiednio zmodyfikować układ sterowany przez mikrokontroler.
Poniżej ten sam wykres, ale dla napięcia zasilania 2,7V:
Dla zera logicznego na wyjściu (Sink Current):
Jak należy czytać powyższy wykres?
Przykład
Jeżeli:
- zasilasz mikrokontroler napięciem 5V,
- i ma on temperaturę 25°C,
- i przez pin zwierający do masy płynie prąd 40mA,
W tym przypadku (zero logiczne) także występuje problem związany z możliwością złej interpretacji przez sterowany pinem element elektroniczny. Nie będę go opisywał ponieważ jest on analogiczny do opisu dla przypadku jedynki logicznej (patrz wyżej). Podobnie z prądami większymi od 40mA - wyjaśniłem powyżej.
Poniżej ten sam wykres, ale dla napięcia zasilania 2,7V:
AVR: Pin RESET wyjątkiem
Następna niespodzianka czeka Ciebie w przypadku pinu RESET. Pin ten jest używany podczas programowania wysokonapięciowego (+12V), stąd od strony elektronicznej jest zupełnie inaczej zbudowany. Dlatego też ma zupełnie inną charakterystykę prądową, gdy pracuje jako zwykły pin I/O:
Jak rozumieć powyższe wykresy opisałem wcześniej w tym artykule.
Ale to nie koniec niespodzianek, następną z tym związaną opisuję w kolejnych punktach tego cyklu artykułów.
Mikrokontroler PIC
W drugim przykładowym mikrokontrolerze PIC18F87K90, sytuacja jest bardziej skomplikowana:
Po pierwsze widzimy, że (podobnie jak w ATmega8) prądy sink oraz source są takie same dla poszczególnych pinów I/O.
Po drugie możesz zauważyć, kolosalne różnice pomiędzy dopuszczalnymi prądami dla poszczególnych pinów I/O. Zauważ, że różne porty mają różne wartości prądów, a w przypadku PORTA, istnieje nawet podział na piny numer od 0 do 5 oraz piny 6 i 7.
Różnice są ogromne przez co nie można bezkarnie podłączyć np. standardowej diody LED sterowanej prądem 20mA pod piny, które wytrzymują jedynie 2mA. Należy wtedy zwiększyć rezystor tak, by nie przekroczyć 2mA. Jednakże wtedy możesz nie uzyskać odpowiedniej jasności, co oznacza, że albo diodę LED należy przenieść na inny pin lub zastosować diody o dużej emisji światła przy małym prądzie - na rynku są dostępne. W zakresie liczenia prądów diod pomocny będzie Kalkulator diod LED.
Diody LED są oczywiście tylko przykładem.
Prądy pinów: Spis treści
Brak komentarzy:
Prześlij komentarz