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

"minimalne" podłączenie pinów mikrokontrolera stm32

15 Mar 2018 11:18 1092 9
  • Poziom 3  
    Witam,

    Chciałbym pierwszy raz wykonać płytkę przez firmę z mikrokontrolerem stm32 (również pierwszy raz) i mam parę pytań, co do mojego schematu podłączenia wyżej wymienionego mikrokontrolera.

    1. Czy do nóżki resetu powinien być dodatkowy rezystor podciągający do vcc? na schemacie płytki nucleo widziałem, że jest dodatkowy rezystor podciągający do vcc, ale w sumie po co jeżeli reset jest podciągnięty wewnętrznie przez rezystor do vcc?
    2. Jeśli chodzi o zasilanie bateryjne, to czy powinien być tam równolegle do baterii podłączony kondensator ceramiczny?
    3. W razie popełnienia jakiegoś błędu przy konfiguracji zegara istnieje potrzeba uruchomienia cpu w trybie bootloadera. Czy warto dodać przycisk z podciągnięciem do vcc, czy może można to rozwiązać w inny sposób?
    4. Jeśli chodzi o podłączenie programatora, to wystarczy podłączyć tylko: gnd, swdio oraz swclk, czy trzeba też dołączyć reset i vcc w przypadku korzystania z programatora ST-LINK/V2-1 wbudowanego na płytce nucleo?

    Schemat:
    "minimalne" podłączenie pinów mikrokontrolera stm32

    Z góry dziękuję za odpowiedź.
  • Pomocny post
    Poziom 18  
    1. Nie musi
    2. Kondensatory powinny byc przy każdej parze wyprowadzeń zasilania jak najbliżej uC
    3. Warto zostawić możliwość uruchomienia bootloadera. Program można napisać tak, ze odetniesz sie od programowania. Niedawno mi sie to przydarzyło. Czytałem jakiś poradnik, że warto wyprowadzić na złącze SWD linię reset. Niestety to nie pomogło. Odpaliłem bootloader i przez SWD wyczyściłem flash. Później wyłączyłem bootloader i mogłem programować bez problemu (do następnego razu).
  • Pomocny post
    Poziom 21  
    kamil94goldman napisał:
    3. W razie popełnienia jakiegoś błędu przy konfiguracji zegara istnieje potrzeba uruchomienia cpu w trybie bootlandera. Czy warto dodać przycisk z podciągnięciem do vcc, czy może można to rozwiązać w inny sposób?
    Wyprowadź reset na SWD, i jeśli nie planujesz używać bootloadera, możesz wyrzucić rezystor na BOOT1.

    kamil94goldman napisał:
    4. Jeśli chodzi o podłączenie programatora, to wystarczy podłączyć tylko: gnd, swdio oraz swclk, czy trzeba też dołączyć reset i vcc

    Nie musisz wyprowadzać resetu, ale wyprowadzenie go jest pomocne.

    ghost2000 napisał:
    Program można napisać tak, ze odetniesz sie od programowania.
    Też mi się tak wydawało, ale okazało się, że jak reset jest wyprowadzony i podłaczony do programatora to się tak nie da zrobić. Z tym, ze wtedy w ST-Link Utility zmieniamy w opcjach "mode" na "connect under reset" i bootlader można zignorować. ;)
  • Poziom 18  
    Sareph napisał:
    w ST-Link Utility zmieniamy w opcjach "mode" na "connect under reset"

    A ja tego nie zrobiłem :-(
    Zdziwiłem się, że JTAG też nie chciał mi działać ale w opcjach J-LINK nie grzebałem, pewnie tak samo jak dla SWD, trzeba ustawić odpowiednią opcję.
  • Poziom 3  
    Sareph napisał:
    Wyprowadź reset na SWD, i jeśli nie planujesz używać bootloadera, możesz wyrzucić rezystor na BOOT1.


    Czyli jeżeli chcę tylko używać bootloadera w celu gdybym coś zblokował, to muszę podłączyć do BOOT0 VCC przez przycisk i rezystor np. 2 kohm. Rezystor 10k podłączony do BOOT0 i gnd zostaje, a rezystor 10k podłączony do BOOT1 wywalam i łącze BOOT1 prosto do masy?
  • Pomocny post
    Poziom 21  
    kamil94goldman napisał:
    Czyli jeżeli chcę tylko używać bootloadera w celu gdybym coś zblokował, to muszę podłączyć do BOOT0 VCC przez przycisk i rezystor np. 2 kohm. Rezystor 10k podłączony do BOOT0 i gnd zostaje, a rezystor 10k podłączony do BOOT1 wywalam i łącze BOOT1 prosto do masy?


    Jak chcesz bootloader z przyciskiem to BOOT0 przez 10k do masy i przez przycisk bezpośrednio do VCC, a BOOT1 przez 10k do masy. Jak nie chcesz bootloadera to BOOT0 bezpośrednio do masy, a BOOT1 możesz zignorować.

    Rezystor na BOOT0 może być o tyle zbędny, że ten pin nigdy nie będzie wyjściem, więc jak nie ma czegoś co zmienia jego stan z zewnątrz - możesz go pominąć. BOOT1/PB2 może być wyjściem. A jakby był bezpośrednio podłaczony o masy, i stałby się wyjściem na skutek błędu, w dodatku z ustawionym stanem wysokim to sobie spalić układ możesz.
  • Użytkownik usunął konto  
  • Poziom 3  
    ghost2000 napisał:
    2. Kondensatory powinny byc przy każdej parze wyprowadzeń zasilania jak najbliżej uC


    Ale do nóżki VBAT też lepiej dołożyć kondensator 100n jak korzystam z podtrzymania bateryjnego? Bo w dokumentacji na schematach o zasilaniu nic nie jest pokazane/napisane, żeby tam filtrować zasilanie bateryjne. No ale pewnie lepiej filtrować.
  • Poziom 18  
    kamil94goldman napisał:
    No ale pewnie lepiej filtrować.

    Zawsze lepiej dać 100 kondensatorów za dużo, niż jeden za mało. Oglądając schematy płytek startowych dla STM32F1xx nigdzie nie widziałem filtrowania na Vbat.
  • Użytkownik usunął konto