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

STM32L0 - Stopień wyjściowy I/O

Ba_rt 16 Lut 2017 11:24 1218 43
  • #1 16 Lut 2017 11:24
    Ba_rt
    Poziom 10  

    Cześć,

    Czy spotkał się ktoś z takim "dziwnym" wyjściem cyfrowym w STM32L0 albo jakimkolwiek innym ?
    STM32L0 - Stopień wyjściowy I/ONewFil..png Download (40.31 kB) STM32L0 - Stopień wyjściowy I/ONewFil..png Download (45.84 kB)
    Jest to wyjście z PWM'a, przepuszczone jeszcze dodatkowo przez komparator. Zafalowanie występuje przy każdym przełączeniu. Gdyby to były kwestie ns, us to ok. To trwa ~10ms (!!).

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #2 16 Lut 2017 11:42
    BlueDraco
    Specjalista - Mikrokontrolery

    A czym ten PWM steruje?

  • #3 16 Lut 2017 11:44
    Ba_rt
    Poziom 10  

    Bez znaczenia. Powyższy wykres jest przy wiszącym pinie. Sterował również bezpośrednio mosfet'em i efekt był ten sam.

  • #4 16 Lut 2017 11:47
    BlueDraco
    Specjalista - Mikrokontrolery

    Przypnij drugi kanał oscyloskopu do zasilania. i to wygląda na wahnięcie potencjału zasilania lub masy, a nie na dziwne zachowanie bufora.

  • #5 16 Lut 2017 11:47
    excray
    Poziom 38  

    Nie bardzo rozumiem w czym jest problem? To "zafalowanie" ma amplitudę rzędu 100mV przy sygnale o amplitudzie 3,3V więc w czym rzecz?

  • #6 16 Lut 2017 12:00
    Ba_rt
    Poziom 10  

    Czy to jest problem, czy nie to już inna kwestia :) W moim przypadku akurat jest, ponieważ za pomocą tego PWM'a chciałem zwierać dzielnik rezystancyjny do masy, który był napięciem referencyjnym czegoś tam.

  • #7 16 Lut 2017 12:05
    excray
    Poziom 38  

    Masz moim zdaniem złe założenia. Nie możesz oczekiwać, że na wyjściu cyfrowym otrzymasz idealnie zerowy analogowo sygnał, bo uC nie od tego jest. Musisz sam zadbać o ewentualną analogową jakość sygnału. Nie zeruj bezpośrednio sygnałem tylko steruj tranzystorem mosfet, który będzie zerować dzielnik.

  • #8 16 Lut 2017 12:08
    Ba_rt
    Poziom 10  

    BlueDraco napisał:
    Przypnij drugi kanał oscyloskopu do zasilania. i to wygląda na wahnięcie potencjału zasilania lub masy, a nie na dziwne zachowanie bufora.


    Zgadza się, to jest pierwsze co rzuca się na myśl. Sprawdzałem. Dla potwierdzenia:
    STM32L0 - Stopień wyjściowy I/ONewFil..png Download (65.7 kB)

    Różowy - PWM "w górze"
    Niebieski - 3.3V, AC coupling

  • #9 16 Lut 2017 12:17
    Ba_rt
    Poziom 10  

    excray napisał:
    Masz moim zdaniem złe założenia. Nie możesz oczekiwać, że na wyjściu cyfrowym otrzymasz idealnie zerowy analogowo sygnał, bo uC nie od tego jest. Musisz sam zadbać o ewentualną analogową jakość sygnału. Nie zeruj bezpośrednio sygnałem tylko steruj tranzystorem mosfet, który będzie zerować dzielnik.


    i tu się zaczyna zabawa. Za NMOS'em mam to samo... w tym momencie zgłupiałem i zacząłem szukać już wszędzie.

  • #10 16 Lut 2017 12:22
    excray
    Poziom 38  

    Ba_rt napisał:
    i tu się zaczyna zabawa. Za NMOS'em mam to samo...

    Nie możesz mieć tego samego. Mosfet przełacza się na poziomie 2V więc takie oscylacje na poziomie 0-0.1V nie mają na niego wpływu. Albo źle podłączyłeś albo po prostu masz błąd wynikający ze źle przeprowadzanego pomiaru.

  • #11 16 Lut 2017 12:27
    Freddie Chopin
    Specjalista - Mikrokontrolery

    A ta linia jest na pewno czymś obciążona? Bo mierzenie oscyloskopem wiszących pinów ("z" lub "bez" tranzystora) jest naprawdę równie sensowne jak różdżkarstwo.

  • #12 16 Lut 2017 12:37
    Ba_rt
    Poziom 10  

    excray napisał:
    Ba_rt napisał:
    i tu się zaczyna zabawa. Za NMOS'em mam to samo...

    Nie możesz mieć tego samego. Mosfet przełacza się na poziomie 2V więc takie oscylacje na poziomie 0-0.1V nie mają na niego wpływu. Albo źle podłączyłeś albo po prostu masz błąd wynikający ze źle przeprowadzanego pomiaru.


    Tyle to ja wiem, że teorytycznie nie mogę mieć tego samego, ale jednak mam. Może to jest jakiś problem z masą ? Nie wiem... Szukam dalej.

    Dodano po 8 [minuty]:

    Freddie Chopin napisał:
    A ta linia jest na pewno czymś obciążona? Bo mierzenie oscyloskopem wiszących pinów ("z" lub "bez" tranzystora) jest naprawdę równie sensowne jak różdżkarstwo.


    Czemu obciążenie linii mosfetem ma być niewystarczające ?

  • #13 16 Lut 2017 12:47
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Ba_rt napisał:
    Czemu obciążenie linii mosfetem ma być niewystarczające ?

    Jak dałeś na linii MOSFETa, to zafalowania _NA_ _TEJ_ linii są już bez znaczenia. Niemniej jednak sam MOSFET powinien być obciążony i to na nim powinieneś wtedy mierzyć napięcie.

  • #14 16 Lut 2017 12:53
    Piotrus_999
    Poziom 39  

    Ba_rt napisał:
    Czemu obciążenie linii mosfetem ma być niewystarczające ?


    Ne rozumiem dlaczego takie wahania mają przeszkadzać mosfetowi. Pewnie dobrałeś zły do aplikacji. Dobrze dobrany będzie albo zamknięty albo otwarty i te 200mV zmieni jego oporność o jakieś nΩ albo µΩ.

    Zresztą od tego są DAC-i w tych procesorach aby podawać sygnały analogowe.

  • #15 16 Lut 2017 13:00
    Ba_rt
    Poziom 10  

    Freddie Chopin napisał:
    Ba_rt napisał:
    Czemu obciążenie linii mosfetem ma być niewystarczające ?

    Jak dałeś na linii MOSFETa, to zafalowania _NA_ _TEJ_ linii są już bez znaczenia. Niemniej jednak sam MOSFET powinien być obciążony i to na nim powinieneś wtedy mierzyć napięcie.

    Mosfet był obciążony.

    Zmontowałem na szybko, na czystym nucleo: PWM + nmos + dzielnik i działa tak jak trzeba. W docelowym układzie mam dwie osobne domeny zasilające i gdzieś tu musi być problem (PWM z 3.3V, a nmos + dzielnik z 5V). Nie zmienia to faktu, że wyjście bezpośrednio z PWM'a wygląda co najmniej słabo :(

  • #16 16 Lut 2017 13:02
    BlueDraco
    Specjalista - Mikrokontrolery

    Jak widać (o ile w ogóle coś widać) masz niestabilne zasilanie, a poziom wyjścia po prostu za nim podąża - więc to nie wyjście jest winne.

  • #17 16 Lut 2017 13:04
    Ba_rt
    Poziom 10  

    Piotrus_999 napisał:
    Ba_rt napisał:
    Czemu obciążenie linii mosfetem ma być niewystarczające ?


    Ne rozumiem dlaczego takie wahania mają przeszkadzać mosfetowi. Pewnie dobrałeś zły do aplikacji. Dobrze dobrany będzie albo zamknięty albo otwarty i te 200mV zmieni jego oporność o jakieś nΩ albo µΩ.

    Zresztą od tego są DAC-i w tych procesorach aby podawać sygnały analogowe.

    Zgadzam się, ale tylko w przypadku sygnałów stałych.

    Dodano po 2 [minuty]:

    BlueDraco napisał:
    Jak widać (o ile w ogóle coś widać) masz niestabilne zasilanie, a poziom wyjścia po prostu za nim podąża - więc to nie wyjście jest winne.

    W którym miejscu mam niestabilne zasilanie ? W układzie składającym się z nucleo + tranzystor + 2 rezystory na PWM'ie obserwuje to samo.

  • #18 16 Lut 2017 13:11
    BlueDraco
    Specjalista - Mikrokontrolery

    Nie pokazałeś ani schematu całości, ani przyzwoitych przebiegów, które wskazywałyby na to, że coś jest nie tak z wyjściem (co uważam za mało możliwe zresztą). Najpierw pokazałeś ładne przebiegi z modulacją wyjścia, potem niemal nieczytelne, na których ja chyba widzę takie same zniekształcenia na wyjściu i na zasilaniu, O ile submikrosekundowe impulsy przy zmianie stanu wyjścia są normalne, to w stanie stabilnym wyjście powinno stać tak samo, jak zasilanie.

  • #19 16 Lut 2017 13:12
    Piotrus_999
    Poziom 39  

    Ba_rt napisał:
    Zgadzam się, ale tylko w przypadku sygnałów stałych
    A tego nie rozumiem. Co ma do rzeczy typ sygnału?

  • #20 16 Lut 2017 13:23
    Ba_rt
    Poziom 10  

    BlueDraco napisał:
    Nie pokazałeś ani schematu całości, ani przyzwoitych przebiegów, które wskazywałyby na to, że coś jest nie tak z wyjściem (co uważam za mało możliwe zresztą). Najpierw pokazałeś ładne przebiegi z modulacją wyjścia, potem niemal nieczytelne, na których ja chyba widzę takie same zniekształcenia na wyjściu i na zasilaniu, O ile submikrosekundowe impulsy przy zmianie stanu wyjścia są normalne, to w stanie stabilnym wyjście powinno stać tak samo, jak zasilanie.


    Proszę, oto schemat:
    STM32L0 - Stopień wyjściowy I/Otest.png Download (11.28 kB)

    Co jest nieczytelnego w wykresach z postu nr 8 ? Dokładnie widać, że na zasilaniu nie dzieje się absolutnie nic, a na PWM'ie przy każdym przełączeniu w stan wysoki jest dość długie zafalowanie.

  • #21 16 Lut 2017 13:31
    Ba_rt
    Poziom 10  

    Piotrus_999 napisał:
    Ba_rt napisał:
    Zgadzam się, ale tylko w przypadku sygnałów stałych
    A tego nie rozumiem. Co ma do rzeczy typ sygnału?

    W sumie to mogę się mylić. Założyłem, że stopień wyjściowy z DAC'a będzie wyglądał tak samo jak np. ze wspomnianego PWM'a.

    Dodano po 6 [minuty]:

    Jeszcze jedno, w układzie zmontowanym na szybko (schemat w poście nr 20) się pomyliłem, zamieniłem miejscami dren i źródło. Poprawiłem i zarówno przed jak i za tranzystorem problem ciągle występuje.

  • #22 16 Lut 2017 13:43
    BlueDraco
    Specjalista - Mikrokontrolery

    Dorzuć rezystor 1k w bramce MOS. Jak ma niby działać ten dzielnik i z czym ma być połączone jego wyjście? Mam nadzieję, że nie z wejściem analogowym uC...

  • #23 16 Lut 2017 13:49
    Ba_rt
    Poziom 10  

    W tym układzie testowym wyjście dzielnika nie jest podłączone nigdzie. Docelowo będzie podłączone do wzmacniacza operacyjnego. Jak ma działać ? NMOS jako klucz i tyle. Raz włączam dzielnik, raz wyłączam (w takt PWM'a). Rezystor w bramce MOS - po co ? (podłączyłem, żadnej zmiany).

  • Pomocny post
    #24 16 Lut 2017 14:08
    Piotrus_999
    Poziom 39  

    BS170 się nie nadaje. Przy poziomie napięcią 3.3V na bramce i 5V DS jego opór to w granicach 20Ohm. zobacza że nawet nie podają wykresów przy VGS < 4V. On nie bedzie działać jak klucz.

    A tu jeszcze masz do tego oporniki - czyli bardzo mały prąd - to wogóle nie będzie przełaczał bo napięcie na nim bedzie rzedu kilkudziesięciu miliwoltów.

  • #25 16 Lut 2017 14:11
    Ba_rt
    Poziom 10  

    Piotrus_999 napisał:
    BS170 się nie nadaje. Przy poziomie napięcią 3.3V na bramce i 5V DS jego opór to w granicach 20Ohm. zobacza że nawet nie podają wykresów przy VGS < 4V. On nie bedzie działać jak klucz.

    Ups, zgadza się. Błąd początkującego. Spojrzałem tylko, że wyjście dzielnika jest w połowie zasilanie - znak, że układ działa :D Poszukam czegoś innego i dam znać.

  • #26 16 Lut 2017 14:14
    Piotrus_999
    Poziom 39  

    Ba_rt napisał:
    Ups, zgadza się. Błąd początkującego. Spojrzałem tylko, że wyjście dzielnika jest w połowie zasilanie - znak, że układ działa :D Poszukam czegoś innego i dam znać.

    A jaki jest sens takiego układu przy okazji bo nie rozumiem. Co chcesz osiągnąć bo chyba podejrzewam że jest coś źle z założeniami.

  • #27 16 Lut 2017 14:21
    Ba_rt
    Poziom 10  

    Piotrus_999 napisał:
    Ba_rt napisał:
    Ups, zgadza się. Błąd początkującego. Spojrzałem tylko, że wyjście dzielnika jest w połowie zasilanie - znak, że układ działa :D Poszukam czegoś innego i dam znać.

    A jaki jest sens takiego układu przy okazji bo nie rozumiem. Co chcesz osiągnąć bo chyba podejrzewam że jest coś źle z założeniami.


    Cel jest z grubsza taki (elementy z biblioteki LTspice totalnie przypadkowe):
    STM32L0 - Stopień wyjściowy I/Otest_2.png Download (14.3 kB)
    Źródełko prądowe, sterowane przez PWM.

  • #28 16 Lut 2017 15:25
    Ba_rt
    Poziom 10  

    Tranzystor zmieniłem na BSS138 - bez zmian.

  • #29 16 Lut 2017 15:36
    Piotrus_999
    Poziom 39  

    Bo zmian być nie może. To co narysowałes to żadne źródło prądowe. A ten układ i tak nie będzie działał. Aby PWM sterować dioda po prostu podłącz ją do tego mosfeta przez rezystor

  • #30 16 Lut 2017 15:47
    Ba_rt
    Poziom 10  

    Piotrus_999 napisał:
    Bo zmian być nie może. To co narysowałes to żadne źródło prądowe. A ten układ i tak nie będzie działał. Aby PWM sterować dioda po prostu podłącz ją do tego mosfeta przez rezystor


    Oczywiście, że jest to źródło prądowe, które z powodzeniem stosuje się w układach scalonych, z tą różnicą, że tam napięcie referencyjne na jego wejściu jest podawane zazwyczaj z układu typu bandgap. Nie chce podłączać się tylko przez mosfeta i rezystor. Po to zastosowałem taki układ, aby uodpornić się na zmiany napięcia zasilania. Układ działa i w teorii (zrób sobie dowolną symulację, dowolnym programem) i w praktyce złożony na stole. Proszę o odpowiedzi dotyczące problemu, a nie wszystkiego innego dookoła.