Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATmega644\Xmega128A1 - Porty IO

20 Paź 2012 09:47 1674 12
  • #1 20 Paź 2012 09:47
    1537339
    Użytkownik usunął konto  
  • #2 20 Paź 2012 10:01
    excray
    Poziom 39  

    nowynom napisał:
    A konkretnie, czy zmiana stanu portów z wejściowych na wyjściowe w pętli nie uszkodzi mikro kontrolera ?

    A czemu miałaby to zrobić? Oczywiście warto to przemyśleć i nie ustawiać stanu wysokiego na porcie zwartym do masy. Niemniej uszkodzenie portów AVRa to nie jest taka prosta sprawa bo są całkiem dobrze zabezpieczone przed przeciążeniami i przepięciami.

    0
  • #3 20 Paź 2012 10:42
    tmf
    Moderator Mikrokontrolery Projektowanie

    excray - a mógłbyś rozwinąć temat owych zabezpieczeń? Bo to bardzo ciekawe co piszesz... Szczególnie te zabezpieczenia przeciwprzeciążeniowe by mnie interesowały.

    0
  • #4 20 Paź 2012 11:01
    excray
    Poziom 39  

    To, że prąd na pinach jest ograniczany do ok 40mA. Oczywiście dokładna wartość zależy od układu i pinu.

    0
  • #5 20 Paź 2012 15:11
    tmf
    Moderator Mikrokontrolery Projektowanie

    Przejrzyj dokładniej noty. Dla XMega128A1 w absolute maximum ratings jest 20mA na pin IO. Wartość ta nie jest niczym ograniczona. Przeglądając inne noty można zauważyć wykresy Pin Driver Strength, gdzie w zależności od napięcia zasilającego łatwo tą wartość 2-3 krotnie przekroczyć, co grozi uszkodzeniem MCU. AVRy nie posiadają żadnego układu ograniczenia prądu . Jedynym ograniczeniem jest opór bufora wyjściowego, ale dla napięć zasilania większych niż ok. 2-2,2V przy zwarciu prąd przekracza prąd deklarowany w absolute maximum ratings.

    0
  • #6 20 Paź 2012 16:18
    excray
    Poziom 39  

    tmf napisał:
    AVRy nie posiadają żadnego układu ograniczenia prądu . Jedynym ograniczeniem jest opór bufora wyjściowego

    Sam przeczysz sobie. Jak zauważyłeś AVRy mają tak dobrane Rdson tranzystorów wyjściowych aby ograniczać prąd maksymalny do bezpiecznej wartości. Należy oczywiście rozumieć wady takiego zabezpieczenia i nie nadużywać go. Niemniej widziałem już 1000-ce kiepskich aplikacji (najczęściej I2C albo 1-wire) gdzie linia wyjściowa ustawiona w stan wysoki jest zwierana do masy i jakoś jeszcze nikt nie uszkodził w ten sposób portu IO. Poza tym nawet "Electrical Characteristics" na które się powołujesz pisze o tym aby taka sytuacja nie trwała zbyt długo a nie o tym że jest ona absolutnie niedopuszczalna. Zresztą w ww. rozdziałach są nawet dostępne charakterystyki prądowe zwarcia "do góry" i "do dołu" takiego pinu na których wyraźnie widać nieliniowość wzrostu prądu względem "pogłębiającego się zwarcia".
    Oczywiście pewnie dla Ciebie nie jest to żadne zabezpieczenie ale uwierz mi widziałem setki układów które nie miały nawet takiego i z miejsca paliły się przy najmniejszym błędzie połączeniowym. Chociażby nawet ukochane '51-ki przy zwarciu do plusa. Więc jak ktoś miał do czynienia z takimi układami z pewnością doceni proste zabezpieczenie zastosowane przez Atmela w AVRach.
    BTW> Atmega644 ma 40mA na pin.

    0
  • #7 20 Paź 2012 16:49
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zabezpieczenie sugeruje jakiś celowo dodany układ, nieprawdaż? Czy np. kawałek drutu zamiast bezpiecznika jest wg ciebie zabezpieczeniem? W końcu przy pewnej wartości prądu odparuje :)
    Ja powołuję się na "Absolute Maximum Ratings", dla których masz informację "Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage
    to the device.". Z wykresów napięcia vs. prąd dla pinu IO jasno wynika, że dla napięć zasilania wyższych niż ok. 2-2,4V prąd pinu przy zwarciu do GND lub Vcc przekracza prąd dozwolony w sekcji "absolute maximum ratings". Nie ma więc mowy o jakimkolwiek zabezpieczeniu. Proszę nie używaj argumentów typu "dziadek palił i na raka nie umarł" bo to o niczym nie świadczy, poza tym, że miał szczęście.
    Atmel też nie dobiera w żaden sposób RDSon tranzystorów wyjściowych, z wielu przyczyn raczej zależałoby producentowi, aby go obniżać, a nie podwyższać. Nieliniowość charakterystyki napięcie-prąd bufora wyjściowego wynika z właściwości tranzystorów MOS - zmniejszenia warstwy inwersyjnej tworzącej kanał na skutek obniżenia się napięcia bramka kanał na skutek jego niezerowej rezystancji. Dla nasycenia prąd drenu jest proporcjonalny do napięcia VGS a nie VDS.

    0
  • #8 20 Paź 2012 18:30
    excray
    Poziom 39  

    Mylisz się. W produkcji mikroprocesorów nie ma miejsca na coś takiego jak przypadkowość. To że AVRy mają tak a nie inaczej dobrany i wykonany driver na wyjściu to nie jest efektem przypadku tylko jak najbardziej zaprojektowana cecha o czym zresztą świadczy nawet zacytowany przez Ciebie fragment który potwierdza to o czym już wspominałem.

    tmf napisał:
    Zabezpieczenie sugeruje jakiś celowo dodany układ, nieprawdaż? Czy np. kawałek drutu zamiast bezpiecznika jest wg ciebie zabezpieczeniem? W końcu przy pewnej wartości prądu odparuje

    Klasyczny bezpiecznik jest właśnie kawałkiem odpowiednio dobranego druta. Nasza dyskusja wygląda dokładnie tak jakbym ja Ci tłumaczył że bezpiecznik jest bezpiecznikiem a Ty że nie jest bo przecież jakby był to nikt Cię nie ostrzegał przed robieniem zwarć w instalacji.

    0
  • #9 20 Paź 2012 18:58
    1537339
    Użytkownik usunął konto  
  • #10 20 Paź 2012 20:14
    tmf
    Moderator Mikrokontrolery Projektowanie

    excray napisał:
    Mylisz się. W produkcji mikroprocesorów nie ma miejsca na coś takiego jak przypadkowość. To że AVRy mają tak a nie inaczej dobrany i wykonany driver na wyjściu to nie jest efektem przypadku tylko jak najbardziej zaprojektowana cecha o czym zresztą świadczy nawet zacytowany przez Ciebie fragment który potwierdza to o czym już wspominałem.


    To znaczy jak mają dobrany? Tłumaczę ci, że żadnego celowego ograniczenia nie ma, a prąd drivera przekracza wartość bezpieczną określoną w absolute maximum ratings, co oznacza że zwarcie do GND lub Vcc może prowadzić do uszkodzenia procesora. Owszem, wielkość tranzystorów buforów wyjściowych nie jest przypadkowa - jest kompromisem pomiędzy wymaganą wydajnością prądową, wielkością (cena) i prędkością przełączania. Nie jest tak, że RDS tych buforów jest dobrany pod kątem jakiegokolwiek zabezpieczenia na zwarcie.

    excray napisał:
    tmf napisał:
    Zabezpieczenie sugeruje jakiś celowo dodany układ, nieprawdaż? Czy np. kawałek drutu zamiast bezpiecznika jest wg ciebie zabezpieczeniem? W końcu przy pewnej wartości prądu odparuje

    Klasyczny bezpiecznik jest właśnie kawałkiem odpowiednio dobranego druta. Nasza dyskusja wygląda dokładnie tak jakbym ja Ci tłumaczył że bezpiecznik jest bezpiecznikiem a Ty że nie jest bo przecież jakby był to nikt Cię nie ostrzegał przed robieniem zwarć w instalacji.


    Klasyczne zabezpieczenie to właśnie dodanie bezpiecznika do instalacji, a nie wykonanie jej z przewodu 0,75mm2 w nadziei, że jak przekroczysz prąd to się gdzieś przepali. Bezpiecznik - celowe działanie, źle wykonana instalacja - przypadkowy feature :)

    Dodano po 2 [minuty]:

    nowynom napisał:
    Panowie )

    Miałem diodę RGB Link podpięta pod trzy kanały PWM-u sprzętowego i nic się pinom nie stało, więc moim zdaniem małą diodę można podłączyć bezpośrednio
    do jednego z pinów mikro kontrolera.

    A dokładniej chodzi mi o to, bym mógł korzystać z całych 2 portów, gdzie mam podpięte linie Data TFT podczas, gdy nie wysyłam informacji do SSD...


    A czemu miałoby się coś spalić skoro prąd maksymalny dla portu IO dla serii ATMega to 40mA, a twoja dioda ma If=22 mA? Należy tylko pamiętać, że oprócz ograniczenia prądu per pin IO istnieje także ograniczenie na port oraz na cały mikrokontroler. Dla serii XMEGA max prąd per IO to już tylko 20 mA, czyli sterowanie taką diodą byłoby na granicy.

    0
  • #11 20 Paź 2012 20:25
    excray
    Poziom 39  

    W zasadzie chyba przedstawiliśmy wszelkie możliwe dowody za i przeciw w temacie ewentualnego zabezpieczenia nadprądowego. Z mojej strony dziękuję za ciekawą dyskusję i o ile temat nie zbłądzi w jakimś nowym kierunku w którym będę coś miał do wtrącenia o tyle w kwestii zabezpieczenia bądź jego braku już się nie będę wypowiadać.

    0
  • #12 21 Paź 2012 01:10
    Nawigator
    Poziom 33  

    excray napisał:
    Niemniej widziałem już 1000-ce kiepskich aplikacji (najczęściej I2C albo 1-wire) gdzie linia wyjściowa ustawiona w stan wysoki jest zwierana do masy

    Ten błąd jest dość powszechny ale to nie powód aby go tolerować a tym bardziej bagatelizować.
    Podobnym błędem jest spotykane obciążanie wyjścia pojemnością a już 100pF potrafi spowodować przekroczenie dopuszczalnego prądu w impulsie.
    Efektem mogą być zakłócenia w pracy mikrokontrolera jak np. trudne do zdiagnozowania sporadyczne przerwania.
    Impedancja wyjścia pinu AVR to ok. 25Ω przy Vcc=5V i jest ona mała po to aby uzyskać odpowiednio szybką zmianę stanu. Ograniczenie prądu wyjściowego zgodnie z max. parametrami należy do projektanta.
    Konstrukcyjnie pin nie ma obwodu ograniczającego prad wyjściowy. Przykładowa charakterystyka np. ATmega48 sięga do 80mA co przy 2V spadku daje 160mW tylko dla 1 pinu, nie wspominając o całym porcie. Co powyżej możemy się tylko domyślać.

    ATmega644\Xmega128A1 - Porty IO

    Przestrzeganie parametrów max. jest podstawą poprawnych projektów a to że avr ma ukryte rezerwy to dobrze świadczy o jego konstrukcji.

    N.

    0
  • #13 21 Paź 2012 02:33
    piotrva
    Moderator na urlopie...

    Ja jaknajbardziej podpisuję się pod wypowiedzią kolegi tmf. Rozróżnijmy pojęcia: wytrzymałość a zabezpieczenie. To że w maluchu skrzynia biegów nie rozwali się przy pierwszej próbie wrzucenia biegu bez sprzęgła (ale za 100 czy 1000 razem jak będziemy mieć pecha i powtarzamy próby w nieskończoność to może się zepsuć) nie jest rownoważne z blokadą uniemożliwiającą wrzucenie biegu jeśli sprzęgło nie jest wciśnięte do ziemi.
    Tak samo tu, to że 1000 amatorów wytrzymuje, i nawet jakiś autor (niezbyt douczony) książki o Bascom tak napisał, nie oznacza to że należy taki zabobon szerzyć, że jest to dopuszczalne i tak można robić. (a mamy mit o avcc w mega8, a tu niektóre serie jak się okazuje nie miały zwarcia, a nowe m8a są wolne od błędu, ale czy amator któremu wpoimy że nie trzeba podłączać zmierzy rez. między avcc i vcc lub sprawdzi czy ma wersję 8 czy 8a?). Lepiej wpajać dobre nawyki od początku, i nie mieszać w głowach, że coś czego producent nie deklaruje na pewno zadziała. Przyjmijmy że piny wytrzymują warunki powyżej noty katalogowej, ale nie należy ich na to narażać, bo producent niczego nie gwarantuje (no czy producent malucha pisze że można zmieniać biegi bez użycia sprzęgła?). A chyba nikt poważny i w profesjonalnym projekcie nie będzie ryzykował. Cele badawcze pt. kiedy usmażę swoją atmegę się nie liczą, bo ludzie testują i nawet przetaktowanie do 50MHz, ale w praktyce, mimo że działa, nikt nie stosuje, bo to jest poza limitami i skąd wiemy czy przy jakimś zbitku operacji się nie wykrzaczy?
    ----------
    A miałem tylko napisać, że tak nie można bo sam kiedyś tak upaliłem pin w attiny13 - krótkie zwarcie do masy outputa z wystawionym vcc i już potem przy zasilaniu 5v napięcie na pinie zmieniało się w zakresie 1,2v jako 0 i 3,7v jako 1 - owszem wytrzymał, ale się nieco charakterystyka zmieniła mu ;-)

    0
  Szukaj w 5mln produktów