Pytanie:
Why is my microcontroller passing a current through it when not connected?
tgun926
2014-08-01 19:16:15 UTC
view on stackexchange narkive permalink

MCU: ATTiny13

Zauważyłem to po próbie debugowania, dlaczego naciśnięcie mojego przełącznika (podłączonego przez R2, rezystor obniżający 507 kOhm) powoduje ściemnianie diody LED po wciśnięciu. Przełącznik był zasilany z tej samej linii zasilającej, co wejście Vcc do mikrokontrolera.

Po odłączeniu wejścia Vcc (pin 8) zauważyłem, że dioda LED nadal świeciła się, gdy przełącznik był wciśnięty. Jeśli usunąłem połączenie z pinu 4 masy, dioda LED nadal się świeci, ale mniej jaśniej.

Poniższy obwód przedstawia to, co zaobserwowałem. Przełącznik został usunięty, aby uprościć problem:

enter image description here

Dlaczego tak się dzieje i jak mogę to zatrzymać? Zakłóca wyjście, gdy przycisk jest wciśnięty.

Tutaj jest zdjęcie obwodu na płytce stykowej. Linia zasilająca (5 V to czerwony przewód, masa to czarny):

enter image description here

Brzmi jak problem konstrukcyjny.Według tego schematu nie ma możliwości, aby dioda LED mogła się zapalić przy odłączonym Vcc.Oczywiście bez podłączonego styku Vcc micro, nic się nie wydarzy.
Czy możesz pokazać przełącznik w swoim obwodzie?
@ScottSeidman przełącznik jest podłączony między Vcc a węzłem do pinu 3 i R2, jednak dzieje się to bez fizycznego przełącznika.
@MattYoung - nie, tak nie jest.Ten obwód jest poza dozwolonym użyciem, ale prawdopodobnie będzie działać.Wygląda na to, że poprzedni obwód został uproszczony, usuwając przełącznik, aby zrozumieć to szczególne zagadkowe, jeśli nie-widziane-wcześniej (ale dobrze znane) zachowanie.
Z pewnością to nie jest cały obwód.Prawie na pewno jeden z pinów I / O jest trzymany na Vdd lub jest podciągany do Vdd.
@ChrisStratton Miałem wrażenie, że Vcc jest całkowicie odłączony.Jeśli odłączony jest tylko pin Vcc, to tak, diody zaciskowe mają sens.
@OlinLathrop Nie, to jest na płytce stykowej.R2 wynosi 680 kOhm.
Podłączenie pinu I / O do wyższego napięcia niż VCC prowadzi do nieokreślonego zachowania w przypadku wielu mikrokontrolerów.Mikrokontroler jest w niezdefiniowanym stanie i wszystko może się zdarzyć.
Nie, to najwyraźniej nie może być tym, co faktycznie podłączyłeś.Gdyby był podłączony zgodnie z twoim opisem, nie byłoby w ogóle źródła zasilania, a zatem nie ma możliwości zaświecenia się diody LED.Być może spód R2 jest faktycznie podłączony do Vdd?
@OlinLathrop Dodałem zdjęcie obwodu.Czarny to 0 V, czerwony to Vcc (5 V)
I tak jak wiedzieliśmy, że tak będzie, jeden z pinów mikrokontrolera jest powiązany z Vdd.
@OlinLathrop Nie widzę różnicy między schematem a płytką prototypową - czy mógłbyś to wyjaśnić?
Musisz udoskonalić zarówno tekst, jak i diagram.Chociaż podajesz kilka wskazówek w komentarzach, są one kompletne.Czytelnik powinien być w stanie spojrzeć na diagram i zobaczyć, co robisz, a także przeczytać tekst i zrozumieć różne obowiązujące warunki.|Mówisz „Vcc nie jest podłączony” - co jest całkowicie niejednoznacznym stwierdzeniem.Vcc może oznaczać pin o tej nazwie lub napięcie - iw tym przypadku oznacza OBA.„Vcc_supply” nie jest podłączony do Vcc_processor_pin, ALE jest podłączony do „innego pinu procesora, do którego nie ma żadnego uzasadnionego powodu, aby go podłączać”....
... Jeśli robisz niebezpieczne, losowe rzeczy, powinieneś przynajmniej jasno opisać przypadkowo przypadkowe rzeczy, które robisz - i dlaczego uważasz, że ta przypadkowość ma jakikolwiek sens.np. DLACZEGO Vcc_supply do PB4?Jak myślisz, dlaczego w ogóle to ma sens?Dlaczego jesteś w jakikolwiek sposób zaskoczony, że rezultatem są śmieci?Co próbowałeś przez to zrobić?Dlaczego nie zrobić tego w legalny i nielosowy sposób?
@RussellMcMahon Czy pytanie ma teraz sens bez konieczności rozszyfrowywania komentarzy?
Widzimy, że pin 3 jest podłączony do Vdd, pomimo twojego zapewnienia, że tak nie jest.Jak wszyscy próbowali powiedzieć, że częściowo zasila mikrokontroler poprzez diodę zabezpieczającą high side na pinie 3. To, co robi mikro w tej sytuacji, jest nieokreślone, więc nie powinno być zaskoczeniem, że wystarczający prąd wychodzi z pinu 5widocznie zapalić diodę LED.Naprawdę nie widzę tutaj tajemnicy.Wszyscy tak mówili od samego początku.
Pięć odpowiedzi:
Chris Stratton
2014-08-01 19:22:19 UTC
view on stackexchange narkive permalink

Wejścia wielu nowoczesnych urządzeń CMOS mają diody zabezpieczające przed wyładowaniami elektrostatycznymi od styków I / O do szyn zasilających, które mają nadzieję skierować przejściowe przepięcia do zasilania, zanim spowodują uszkodzenia.

Efekt uboczny tego polega na tym, że chip może, przynajmniej do pewnego stopnia, być zasilany przez pin I / O, gdy pin podniesie się dostatecznie względem (niewystarczającego) zasilania, aby polaryzować diodę w przód. Nawet w technologiach bez wyraźnych diod ochronnych może się to do pewnego stopnia zdarzyć, choć często skutkowało bardzo zawodną pracą (klasyczny błąd - zapomnij o zasileniu chipa i zobacz, jak działa to "coś w rodzaju" - zrobiłem to sam z flash SPI w przeszłości Styczeń, który w jakiś sposób nigdy nie osiągnął gruntu i dostarczył oczekiwanych odpowiedzi, dopóki nie spróbowałem napisać lokalizacji flash).

Generalnie nie chcesz zasilać chipa w ten sposób - jest to poza bezwzględnymi maksymalnymi ocenami , a rozmiar diody zabezpieczającej może nie być przystosowany do przenoszenia pełnego prądu roboczego. Czasami jednak to widzisz, zarówno w celowych eksperymentach, takich jak eksperyment z emulatorem tagu ATTiny RFID z zasilaniem RF, lub przypadkowo w przypadkach, takich jak próba zmierzenia zużycia energii uśpionego MCU i posiadanie go faktycznie pobiera energię z portu szeregowego do debugowania, a nie z zasilacza, który próbujesz zmierzyć.

Dzięki, dla mnie ma to sens.Czy to jest ten sam powód, dla którego dioda LED ściemnia się, gdy zwiększam napięcie na pinie wejściowym?Czy muszę po prostu użyć rezystora szeregowego, aby obniżyć napięcie wejściowe, aby to naprawić?
Nie można było odpowiedzieć na to pytanie bez obejrzenia schematu i kodu programu.Brzmi jak własne pytanie.
Dobra odpowiedź.Zrobiłem to również z procesorami Microchip.Cholera czasu, zastanawiając się nad tym za pierwszym razem.
Ben Voigt
2014-08-01 20:45:04 UTC
view on stackexchange narkive permalink

Arkusz danych urządzenia zawiera następującą tabelę:

enter image description here

W tej tabeli VCC oznacza napięcie przyłożone do pinu VCC, a nie sieć w twoim obwodzie, która oznaczyłeś VCC.

Ponieważ nie przyłożyłeś żadnego napięcia do pinu VCC, nie możesz przyłożyć więcej niż 0,5 V do żadnego innego pinu. Twoje połączenie PB4 narusza tę zasadę.

Kamil
2014-08-02 03:58:14 UTC
view on stackexchange narkive permalink

Prąd przepływa przez wewnętrzne diody zaciskowe.

Obwody wewnętrzne (uproszczone) wyglądają następująco:

enter image description here

W tym dokumencie Atmela (losowa notatka aplikacyjna zawierająca informacje o diodach zaciskowych) można przeczytać:

Aby zabezpieczyć urządzenie przed napięciami powyżej VCC i poniżej GND, AVR posiada wewnętrzne diody zaciskowe na I / Kołki O (patrz rysunek 1). Diody są podłączone od pinów do VCC i GND i utrzymują wszystkie sygnały wejściowe w granicach napięcia roboczego AVR (patrz rysunek 2). Każde napięcie wyższe niż VCC + 0,5 V będzie obniżane do VCC + 0,5 V (0,5 V to spadek napięcia na diodzie), a każde napięcie poniżej GND - 0,5 V będzie wymuszane do GND - 0,5 V.

placeholder
2014-08-01 20:31:49 UTC
view on stackexchange narkive permalink

Tylko dodatek do poprawnej odpowiedzi Chrisa Strattonsa.

Rzeczywiście zasilasz urządzenie przez diody zabezpieczające. Istnieje kilka sposobów zapewnienia ochrony przed wyładowaniami elektrostatycznymi, a wszystkie z nich wymagają użycia diod na pinach w celu połączenia z wewnętrzną szyną. Więc twoja ścieżka przewodzenia i wewnętrzna moc twojego chipa będą co najmniej 1 spadek diody poniżej dostarczonej "mocy" na pinie.

Możesz to sprawdzić, mierząc pin Vcc, będzie to około 0,7 V niższe niż Vcc.

Odłączając uziemienie, pobierasz mniej prądu przez diody zabezpieczające i zmieniasz punkt pracy napięcia dostarczanego do diody LED. Ale trochę, więc może to nie wyjaśniać różnicy.

Diody zabezpieczające są zaprojektowane tak, aby radzić sobie z prądem w amperach podczas uderzenia ESD, więc są w porządku z tą małą strużką.

Niebezpieczeństwo związane z obsługą chipa w ten sposób polega na tym, że możesz wywołać zatrzask, ale większość chipów jest zaprojektowana tak, aby nie zatrzasnąć się w takich warunkach, więc nie stanowi to większego problemu. Ale taka możliwość.

Inne niebezpieczeństwo będzie zależeć od dokładnej natury ochrony przed wyładowaniami elektrostatycznymi na chipie. Jeśli jest to styl zaciskania i występuje wysokie zdarzenie dV / dT, zacisk może zapalić się i spowodować zwarcie zasilania. Ale to też jest mało prawdopodobne.

„Diody zabezpieczające są zaprojektowane do obsługi prądu w amperach podczas uderzenia ESD, więc są w porządku z tą małą strużką”.To błędny punkt widzenia.Uderzenie ESD jest stanem przejściowym, który składa się z dość małego ładunku, tak niskiego rozpraszania energii, nawet jeśli chwilowe napięcie i prąd są duże.Ciągły przepływ prądu przez te diody spowoduje problemy z ciepłem, które nie wystąpią podczas przejściowego wyładowania elektrostatycznego.
„Diody zabezpieczające są zaprojektowane do obsługi prądu w amperach podczas uderzenia ESD, więc są w porządku z tą małą strużką”.nie jestem pewien, zgadzam się.Widziałem arkusze danych (na przykład spartańskie FPGA Xilinx), które pozwalają na użycie diod zabezpieczających z rezystorem szeregowym do zmiany poziomu, ale określają dość niski maksymalny prąd, którego należy użyć do zwymiarowania rezystora.IIRC limit polegałby na zapaleniu tylko jednej diody LED, chociaż była to technologia drobnoziarnista, więc może być wyższa w tej części, gdyby Atmel zdecydował się ją scharakteryzować.
Nie wiesz, że _zaprojektowałem_ te komórki we / wy, które są częścią niektórych standardowych bibliotek i byłem pod opieką osoby, której projekty ESD / IP znajdują się w _Most_ modern IC.Wystarczy spojrzeć na SEM części, które kończą się podczas uderzenia ESD, aby zdać sobie sprawę, jak głupio jest mówić, że prądy podczas zdarzenia są niskie lub że wysoki prąd jest bez znaczenia.Większość metalu w strukturze ESD ma na celu zmniejszenie oporu przewodzenia.Prąd jest prądem, a skok napięcia nie może zostać przekroczony podczas zdarzenia ergo, niska niska rezystancja.
Wyraźny wniosek, że to oznacza, że można bezpiecznie zasilać chip, nie jest następujący.Dlaczego, na przykład, Xilinx mówi ci, że limit prądu płynącego przez diody zabezpieczające Spartan 3 *, które pozwalają na przewodzenie polaryzacji *, wynosi zaledwie 10 mA?http://www.xilinx.com/support/answers/19146.htm
@placeholder: Kto powiedział, że „prądy podczas wydarzenia są niskie”?Niski opór w tym scenariuszu faktycznie pogarsza ogrzewanie podczas ciągłego przepływu *, ponieważ rozpraszanie mocy wynosi $ V ^ 2 / R $.W przeciwieństwie do zdarzenia ESD, w którym przenoszony ładunek jest prawie stały, a rezystancja nie wpływa na całkowite rozpraszanie energii.To, co zapewnia niski opór, to to, że bardzo niewielka część ładunku wybierze inną ścieżkę.Ale ten niski opór na ścieżce nie oznacza dobrego rozpraszania ciepła ...
@BenVoigt Wszystkie napięcia muszą być utrzymywane na chipie na niskich wartościach, w przeciwnym razie pękniesz tlenek bramki lub potencjalnie uruchomisz zatrzask (co jest możliwe przy bardzo wysokich prądach).To wszystko oznacza b. Niski opór.Co ciekawe, ograniczenie dotyczy struktury styku, a nie Si (przepływ prądu wrt).W przypadku wysokiego HBM (i też nie jest to świetna specyfikacja) konstrukcja musi wytrzymać 1,3 A, co oznacza układ styków 80 x 80 w diodach ESD.TO nie jest mała struktura.Twój argument za V ^ 2 / R nie wytrzymuje.
@ChrisStratton Nie polecam tego, w rzeczywistości jest.Odwołuję się również do twojego artykułu, który mówi, że nie powinieneś.wrt Xilinx, Nie należy mylić specyfikacji, które mają zapobiegać zatrzaskowi (Vdd napędzany przy niskiej impedancji) ze scenariuszem, który jest _możliwy_ z niepodłączonymi pinami Vdd.
@placeholder: Cała twoja analiza HBM przyjmuje założenia, które nie mają zastosowania do prądów ciągłych.W przypadku ESD energia wynosi $$ q \ Delta V $$.W przypadku tego pytania jest to $$ \ int \ frac {V ^ 2} {R} dt $$
@BenVoigt konstrukcja, która obsługuje duże natężenie prądu, będzie nadal to robić.
@placeholder: Ale to nie jest zaprojektowane do obsługi dużego * średniego * prądu, tylko chwilowy impuls.Istnieje ogromna różnica między impulsem a prądem ciągłym w odniesieniu do obciążenia termicznego.
@BenVoigt Chciałbym mieć trochę więcej czasu, żebyśmy mogli porozmawiać na czacie.Są to ogromne struktury i napięcia muszą być ograniczone, aby podkreślić, struktura styków musi składać się z 6400 diod równolegle (każda zdolna do mA) w jednym przykładzie produktu wysyłanego.Nie możesz pompować wysokiego prądu przy niskim napięciu, chyba że zapalisz go za pomocą iskry, nic mniejszego nie spowoduje podgrzania.
Niektóre urządzenia są zbudowane w taki sposób, że doprowadzenie wielu miliamperów do VDD przez diody zabezpieczające będzie działało dobrze bez niepożądanych skutków ubocznych.Jednak nie wszystkie urządzenia są tak zaprojektowane.Pamiętam jeden układ logiczny CMOS, którego użyłem, który wydawał się zaimplementować ochronę dla każdej pary wejść, używając trochę materiału typu P dla każdego wejścia i trochę materiału typu N między nimi.Efektem tego było to, że podanie 1 mA do pinów napędzanych nad szyną, podczas gdy drugi pin był niski, spowodowałoby, że obwód zachowywałby się jak tranzystor PNP między pinami wejściowymi.
@supercat, który jest nazywany boczną strukturą PNP w CMOS i jest czasami używany (nawet jeśli jest to struktura pasożytnicza) z Hfe niewiele powyżej 1.
@placeholder: Rzeczywiście;Chodziło mi o to, że struktury zabezpieczające są zaprojektowane do ochrony chipa i mogą działać w sposób, którego można się nie spodziewać, a który może być szkodliwy dla niektórych aplikacji.
Russell McMahon
2014-08-02 15:32:33 UTC
view on stackexchange narkive permalink

Prawdopodobnie zasilasz urządzenie przez diody zabezpieczające ALE ważne jest to, że robisz coś, co jest „nielegalne” i całkowicie poza specyfikacjami i wszystko może się zdarzyć i nie powinieneś być zaskoczony, jeśli tak.

Twój schemat obwodu jest NIEPRAWIDŁOWY.
To jest PRAWDZIWY schemat obwodu, którego używasz:

enter image description here

To jest wersja sprzętowa "śmieci weszły, śmieci wyszły".

Jeśli zrobisz coś przypadkowego i uzyskasz losowy wynik, powinieneś być szczęśliwy - wszechświat działa tak, jak tego oczekujesz.

Może później ...



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...