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

STM32 wytrzymałość napięciowa I/O

marycyś 10 Wrz 2017 10:54 2391 57
  • #1 10 Wrz 2017 10:54
    marycyś
    Poziom 10  

    Witam,

    Chcę podłączyć diodę IR do uC i mam pewną zagwozdkę.
    Na pin STM32 można podać max 3,3V który nie toleruje 5V.

    Układ kluczowania IR jest taki:
    Li-Ion(czyli max 4,2V)_rezystor_dioda_STM32
    Czy przy powyższym podpięciu może nastąpić uszkodzenie STM32 napięciem wyższym niż 3,3V?

    Pozdrawiam.

    0 29
  • CControls
  • #2 10 Wrz 2017 11:10
    excray
    Poziom 39  

    Pod nogę uC podepnij tranzystor, a diodę dopiero za tranzystorem.

    0
  • #3 10 Wrz 2017 11:25
    marycyś
    Poziom 10  

    Ale ja chcę bezpośrednio podpiąć, bez udziału tranzystora. Prąd diody nie przekroczy 20mA.

    0
  • #4 10 Wrz 2017 11:35
    excray
    Poziom 39  

    A ja chcę być piękny i bogaty. Maksymalny prąd pinu przekroczony. Napięcie też ponad dopuszczalne. Powodzenia.

    0
  • #5 10 Wrz 2017 11:49
    marycyś
    Poziom 10  

    Dla I/O piszą: Output current sunk by any I/O and control pin = 25mA

    0
  • #6 10 Wrz 2017 12:11
    2675900
    Użytkownik usunął konto  
  • #7 10 Wrz 2017 13:23
    BlueDraco
    Specjalista - Mikrokontrolery

    Błąd na błędzie.

    Po pierwsze, diodę można podpiąć pomiędzy wyjście uC i masę.
    Po drugie, diodę można podpiąć pomiędzy wyjście uC i plus zasilania uC - 3.3V.
    Po trzecie, diodę można podpiąć pomiędzy wyjście uC i zasilanie 4.2 V, bo minimalny spadek napięcia na diodzie wyniesie ok. 1V.
    Po czwarte, maksymalne napięcie dopuszczalne na linii typu TT wynosi chyba Vdd + 0.3 (łatwo sprawdzić w datasheet).

    Oczywiście w każdym przypadku będzie niezbędny rezystor.

    1
  • CControls
  • #8 10 Wrz 2017 18:25
    marycyś
    Poziom 10  

    Czyli, jednak można podpiąć diodę IR bezpośrednio między uC a akumulatorem na 4,2V(+rezystor), bo @excray już mnie nastraszył...

    0
  • #9 10 Wrz 2017 18:33
    2675900
    Użytkownik usunął konto  
  • #10 10 Wrz 2017 21:15
    BlueDraco
    Specjalista - Mikrokontrolery

    A po co do 4.2 V jeśli można do 3.3 V?

    0
  • #11 10 Wrz 2017 21:22
    2675900
    Użytkownik usunął konto  
  • #12 10 Wrz 2017 21:45
    BlueDraco
    Specjalista - Mikrokontrolery

    To 4.2 może w praktyce przyjmować wartości od 3.5 do 4.2, podczas gdy 3.3 będzie stabilne.

    0
  • #13 10 Wrz 2017 22:16
    2675900
    Użytkownik usunął konto  
  • #14 10 Wrz 2017 23:02
    marycyś
    Poziom 10  

    Chcę sterować 2 diodami IR + inne pochłaniacze energii z LDO 3,3V. Niestety nie znam stabilizatora zamontowanego na PCB z STM'em i nie chcę go przeciążyć.
    Moc IR nie musi być idealnie stabilna, ponieważ i tak różne powierzchnie różnie odbijają światło.

    Tak sobie pomyślałem: Czy można znaleźć informację jaki prąd można przepuścić przez pin uC w bardzo krótkim czasie? Teraz włączam okresowo IR na 40us i ciekawe o ile można przekroczyć podstawowe 20..25mA.

    0
  • #15 10 Wrz 2017 23:15
    BlueDraco
    Specjalista - Mikrokontrolery

    W celu poznania stabilizatora należy sprawdzić jego typ w dokumentacji płytki i obejrzeć jego datasheet. To jakieś 5 minut roboty.
    Ciekawe, że stabilizatora nie chcesz przeciążyć, ale co do uC już nie masz obaw...

    0
  • #16 10 Wrz 2017 23:48
    marycyś
    Poziom 10  

    1. Jakbym miał dokumentacje płytki, to znałbym odpowiedź...
    2. A co w tym dziwnego?

    0
  • #17 11 Wrz 2017 00:47
    2675900
    Użytkownik usunął konto  
  • #18 11 Wrz 2017 03:14
    rb401
    Poziom 33  

    marycyś napisał:
    Tak sobie pomyślałem: Czy można znaleźć informację jaki prąd można przepuścić przez pin uC w bardzo krótkim czasie? Teraz włączam okresowo IR na 40us i ciekawe o ile można przekroczyć podstawowe 20..25mA.


    W przypadku pinów STM32 nawet nie chodzi o sam prąd a o spadek napięcia.
    NP. przykładowo według danych STM przy prądzie 20mA na "zwykłym" pinie w stanie niskim może być nawet do 1,3V co po dodaniu napięcia na przewodzącej led, może wręcz uniemożliwić uzyskanie jakieś znacząco większej wartości prądu (przymykając oko na limity w Absolute maximum ratings) redukując nawet wartość opornika szeregowego do zera.

    By to częściowo obejść w rodzinach F0 L4 i F3 (nie wiem czy w innych też) są wyznaczone piny, dla których można poprzez ustawienie bitów w rejestrze konfiguracyjnym uzyskać spadek napięcia 0,4V przy 20mA.
    I faktycznie STM przeznacza te piny na bezpośrednie sterowanie ledami IR.
    Fragment AN4099:

    Cytat:
    The reference manual also mentions the I2C_PB9_FMP bit in the SYSCFG_CFGR1 register to activate the high current sink capability for direct control of the Infra LED.


    Ale osobiście proponowałbym dodać po prostu jakiś mosfet sterowany logiką 3,3V o niskiej oporności kanału. Nie musi być dużej mocy.
    Przykładowo mały, tani, pospolity IRLML2502 da Ci możliwość sterowania nawet impulsami powyżej 1A, bez żadnego stresu o napięcie zasilania czy prąd (oporność w stanie włączenia przy 3,3V na bramce mniejsza niż 0,08Ω czyli praktycznie pomijalna a prąd dopuszczany ponad 4A).

    1
  • #19 11 Wrz 2017 08:31
    marycyś
    Poziom 10  

    @rb401, chyba mnie przekonałeś, choć przez to będę musiał dorabiać jakąś małą PCB (a słabo mi to wychodzi). Przydałby się jeszcze taki podobny p-mosfet do wyłączania odbiorników energii do max 1A.

    Piotrus_999 napisał:
    ale płytkę masz. Zresztą z tego ldo procesor też jest pewnie zasilany. To prąd przeZ niego i tak będzie podobny.
    Jak diodę podepnę do plusa akumulatora, to nie będę obciążać LDO :)

    0
  • #20 11 Wrz 2017 12:17
    2675900
    Użytkownik usunął konto  
  • #21 11 Wrz 2017 17:59
    rb401
    Poziom 33  

    marycyś napisał:
    choć przez to będę musiał dorabiać jakąś małą PCB (a słabo mi to wychodzi).


    Zawsze można użyć kawałka płytki uniwersalnej z samymi punktami. Obudowy tych mosfetów są z nimi, powiedzmy :wink: , kompatybilne:

    STM32 wytrzymałość napięciowa I/O


    marycyś napisał:
    Przydałby się jeszcze taki podobny p-mosfet do wyłączania odbiorników energii do max 1A.


    Jeśli w grę wchodzi kluczowanie "od góry" z napięcia 3,3V to jest prosta sprawa bo są też tanie p mosfety z ładnymi parametrami, przykładowo IRLML6401 czy IRLML2244.
    Ale problem się robi gdybyś potrzebował kluczować napięcie prosto z akumulatora, bo przy bezpośrednim podłączeniu bramki do pinu procesora, w najniekorzystniejszym przypadku (czyli napięcie akumulatora 4,2V) w przypadku kiedy procesor daje stan wysoki czyli 3,3V to mosfet byłby już gdzieś w zakresie przejściowym jak chodzi o przewodzenie.
    Ale skoro mamy tu właściwie jasno wyznaczone wartości graniczne napięć, to można to obejść dokładając np. "przesuwnik" napięcia bramki, o gdzieś 0,7V zrobiony na diodzie i oporniku.

    0
  • #22 11 Wrz 2017 18:14
    marycyś
    Poziom 10  

    @rb401, fajny pomysł z tym PCB. Jednak wpadłem już na inny pomysł i wykorzystam mosfeta z "elektroniki" Li-Iona i w ten sposób będę mieć też PCB ;)

    Z tym "przesuwnikiem" chodzi o obniżenie napięcia z uC, przez wstawienie diody w szereg przed bramką?

    0
  • Pomocny post
    #23 11 Wrz 2017 19:43
    rb401
    Poziom 33  

    marycyś napisał:
    Z tym "przesuwnikiem" chodzi o obniżenie napięcia z uC, przez wstawienie diody w szereg przed bramką?


    W zasadzie tak ale jest tu bardzo ważna sprawa. Mianowicie by dioda była tym przesuwnikiem trzeba wymusić opornikiem przepływ odpowiedniego prądu przez diodę bo sam prąd bramki jest pomijalnie mały do tego celu. Dodatkowo opornik jest potrzebny do sprawnego wyłączenia mosfeta bo dioda temu przeszkadza.
    Coś takiego:

    STM32 wytrzymałość napięciowa I/O

    Opornik R1 powinien mieć taką wartość, by dla najbardziej niekorzystnej sytuacji, czyli napięcie akumulatora max = 4,2V i napięciu wyjściowym z STM32 (stan wysoki) 3,3V, napięcie między źródłem a bramką mosfeta było mniejsze niż minimum parametru Gate Threshold Voltage (dla przykładowych, które tu dałem to -0,4V).
    Czyli potrzebujemy w tej sytuacji przesunięcia >= 0,5V.
    Patrząc na typowe parametry przewodzenia diody 1N4148:

    STM32 wytrzymałość napięciowa I/O

    widzimy że do takiego spadku napięcia potrzebujemy prądu diody gdzieś 0,3mA.
    To liczymy opornik 0,4V/0,3mA, czyli 1,3kΩ. Dla zachowania marginesu na rozrzut parametrów diody, temperaturę itp., dajemy np. R1=680Ω.

    Teraz sprawdzimy jak to się zachowa w drugiej skrajnej możliwości, przy załączeniu (stan niski z STM32) i sytuacji gdy napięcie akumulatora jest najniższe (np. 3,3V).
    Mosfet IRLML6401 jest pewnie załączony już przy 1,8V. Czyli prąd opornika R1 będzie potrzebny 1,8V/680Ω = 2,6mA. Wtedy spadek na diodzie będzie gdzieś niecałe 0,8V. Czyli sumując 1,8V (źródło-bramka) plus 0,8V (dioda) mamy 2,6V. Czyli zostaje nam 0,7V jako maksymalne napięcie stanu niskiego, przy którym mosfet będzie dobrze włączony. A STM gwarantuje że typowe wyjście STM32, w zakresie 8mA obciążenia (a mamy tylko 2,6mA), daje stan niski max 0,4V.
    Czyli jest bardzo dobrze i jeszcze trochę luzu.
    Jeśli by tu zastosować mosfety o innych parametrach to ewentualnie trzeba ten R1 przeliczyć na nowo.

    0
  • #24 11 Wrz 2017 20:59
    marycyś
    Poziom 10  

    @rb401, dzięki za ten pouczający wykład.
    Tak jeszcze dodatkowo spytam, jakie są zalety i wady wyłączania odbiorników energii, w przypadku p-mosfeta w plusie i n-mosfeta w masie?

    0
  • #25 11 Wrz 2017 21:39
    rb401
    Poziom 33  

    marycyś napisał:
    jakie są zalety i wady wyłączania odbiorników energii, w przypadku p-mosfeta w plusie i n-mosfeta w masie?


    Zaletą kluczowania n mosfetem od strony masy jest to że procesor i mosfet (konkretnie jego źródło) są połączone ze sobą bezpośrednio (masa). I nie gra tu roli napięcie zasilania obciążenia mosfeta, bo procesor steruje tylko napięciem między źródłem i bramką.
    Przy p mosfecie, jak zresztą widzisz wyżej, te sygnały są między sobą przesunięte o wartość zasilania kluczowanego mosfetem, co w wypadku różnych zasilań procesora i obciążenia rodzi problem, konieczność rozbudowy układu np. o takie przesuwniki a najczęściej wymaga stosowania dodatkowego tranzystora.

    Tak że dla odbiorników którym obojętnie jest czy jednym końcem stykają się z masą czy plusem (np. LED), zdecydowanie lepszym, wygodniejszym wyborem jest zastosowanie N mosfet.

    Jedynie w sytuacjach "przymusowych", jeśli np. odbiornik musi mieć masę wspólną z procesorem, bo np. jest układem mającym inne połączenia sygnałowe z tym procesorem a kluczujemy jego zasilanie, to już P mosfet jest konieczny.

    Jest jeszcze jedna przesłanka za N mosfet a mianowicie to że technologicznie jest trudniej uzyskać dobre parametry (szczególnie małą oporność kanału) P mosfeta niż N mosfeta. Dlatego w P mosfetach jest mniejszy wybór typów i mogą być droższe jeśli mamy jakieś szczególne wymagania.

    0
  • #26 11 Wrz 2017 21:57
    marycyś
    Poziom 10  

    rb401 napisał:
    Jedynie w sytuacjach "przymusowych", jeśli np. odbiornik musi mieć masę wspólną z procesorem, bo np. jest układem mającym inne połączenia sygnałowe z tym procesorem a kluczujemy jego zasilanie, to już P mosfet jest konieczny.

    Jeśli np. Główny uC łączy się z uC slave po i2c,SPI, itp i chcę mu wyłączać zasilanie mosfetem, to może być problem?
    Albo chcę odłączać np. serva sterowane PWM, to tu będzie OK?

    0
  • #27 11 Wrz 2017 22:13
    BlueDraco
    Specjalista - Mikrokontrolery

    Jeśli do kluczowania zasilania użyjesz PMOS i zadbasz o to, by przy wyłączeniu odbiornika wyjścia uC z nim połączone były w stanie niskim lub przełączone jako wejścia, to będzie ok,

    0
  • Pomocny post
    #28 11 Wrz 2017 22:25
    rb401
    Poziom 33  

    marycyś napisał:
    Jeśli np. Główny uC łączy się z uC slave po i2c,SPI, itp i chcę mu wyłączać zasilanie mosfetem, to może być problem?


    Oczywiście. Tylko jeśli zasilasz ten drugi procesor z tego samego zasilania co ten główny (3,3V) to powinieneś użyć samego tylko mosfeta P (na linii plus) bez układu przesuwającego.
    Dodatkowo jest wskazane by na czas wyłączenia zasilania, ustawić na liniach łączących te procesory stan niski. Bo jeśli się tego nie zrobi to przez linie sygnałowe (np. SPI) i diody wewnątrz układu prąd z tych sygnałów "przecieka" na zasilanie tego wyłączonego procesora (napięcie na nim nie spada do zera), tak że może być problem np. z resetem gdy to zasilanie włączysz.

    marycyś napisał:
    Albo chcę odłączać np. serva sterowane PWM, to tu będzie OK?


    Tu tym bardziej jest wskazane kluczowanie od strony plusa, bo gdyby klucz był od strony masy, to włączony wprowadza jednak jakąś tam oporność i przy takim charakterze obciążenia jak serwo (spory prąd w impulsie) zakłócał by poziomy logiczne na tym serwie (różnica mas).

    0
  • #29 12 Wrz 2017 09:33
    marycyś
    Poziom 10  

    Tylko że, jeśli odetnę zasilanie przez p-mosfeta i ustawię linie uC w stan niski to przez rezystor "przesuwnika" będzie uciekało ponad 6mA (dla 680ohm i 4,2V). To trochę za dużo...

    0
  • #30 12 Wrz 2017 10:19
    BlueDraco
    Specjalista - Mikrokontrolery

    Jaki rezystor? I gdzie i w jakim celu wstawiłeś 680R? Jakiś błąd.

    0