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

[STM32F405] - nieprawidłowy start procesora, jak go inicjalizować?

05 Lut 2015 16:27 2706 37
  • Poziom 27  
    Mam kłopot z jedną płytką, druga identyczna działa bez problemu. Najpierw zauważyłem zupełnie bez sensu działający ADC. Dawał wartości rzędu 42000 przy inicjalizacji z wartościami po prawej (0-4095). Co dziwne - dawał takie wartości po starcie zasilania, natomiast po restarcie po programowaniu lub krótkim zwarciu RES do masy działał prawidłowo. Wniosek nasunął mi się, że prawdopodobnie nieprawidłowa jest inicjalizacja procesora wskutek...?? No właśnie nie wiem. Mam pin resetu podłączony do masy przez 100nf i do + przez 3k3. Zwiększyłem kondensator do 200nf i opornik do 6k7, ale nic to nie dało, za to krótka pętla opóźniająca przed inicjalizacją peryferiów rozwiązała sprawę. Jak najlepiej w takim razie inicjalizować procesor?
  • Computer ControlsComputer Controls
  • Specjalista - Mikrokontrolery
    Znaleźć zimne luty i poprawić. Wejście RESET może wisieć w powietrzu - żaden R ani C nie jest potrzebny.
  • Poziom 27  
    Nie ma żadnych zimnych lutów:) Przeczytaj jeszcze raz - każdy start zasilania - problem, chwilowy reset kabelkiem - jest ok. Krótka petla opóźniająca - problem zniknął - co to ma wspólnego z zimnym lutem? Przy zimnym lucie dobre lub złe działanie byłoby przypadkowe. Zresztą zimny lut zdarzył mi się chyba ostatnio... jakieś 40 la temu:)
  • Poziom 38  
    Co to za zasilanie? Wolno narastające?

    Dodano po 2 [minuty]:

    BlueDraco napisał:
    Znaleźć zimne luty i poprawić. Wejście RESET może wisieć w powietrzu - żaden R ani C nie jest potrzebny.


    Może? Jedynie w teorii człowieku. Na prawdę zacznij darować sobie wszelakie porady. Zrób sobie test podciągań. Szoku doznasz.
  • Poziom 38  
    dziechu napisał:
    Trudno nazwać to wolno narastające - akumulatorek jest włączany tranzystorem, kondensatory łącznie może 150uF.


    Zrób test z BORem ustawionym na maxa. Sprawdź poprawność prowadzenia zasilania i masy (szczególnie tej analogowej). Jeśli masz oscyloskop zrób jakieś screeny zachowania. Start zasilania, wraz z resetem z częścią analogową.
  • Computer ControlsComputer Controls
  • Poziom 38  
    dziechu napisał:
    No właśnie chciałem ustawić BOR, ale ST-Link Utility nie komunikuje mi się z F405. Z innymi (F1xxx) bez problemu, a tu mam Cannot connect to the MCU device. Instalowałem najnowszy driver do ST-Link i nic.


    No to masz coś bardzo nie teges ze schematem. STLinkUtlity w miarę najnowsze?
  • Poziom 27  
    tadzik85 napisał:
    No to masz coś bardzo nie teges ze schematem

    Ale ze schematem czego? St Link komunikuje mi się z procesorami F1xxx, z F4xxx nie, ani z ta płytką, ani z F407 na płytce Discovery. Natomiast bez problemu komunikuje się z F4 Coocox, ale tam nie ma opcji ustawiania bitów konfiguracyjnych.

    Dodano po 2 [minuty]:

    Mam St-Link v2.2.0, USB Driver v4.2.2.0 i ST-Link CLI v1.2.
    Mam win8.1, może to problem?
  • Pomocny post
    Poziom 38  
    dziechu napisał:
    tadzik85 napisał:
    No to masz coś bardzo nie teges ze schematem

    Ale ze schematem czego? St Link komunikuje mi się z procesorami F1xxx, z F4xxx nie, ani z ta płytką, ani z F407 na płytce Discovery. Natomiast bez problemu komunikuje się z F4 Coocox, ale tam nie ma opcji ustawiania bitów konfiguracyjnych.

    Dodano po 2 [minuty]:

    Mam St-Link v2.2.0, USB Driver v4.2.2.0 i ST-Link CLI v1.2.


    To daj najnowsze Utility, a potem mów ze coś nie działa.

    Mamy już wersję 2.7
  • Poziom 27  
    Mamy już wersję 3.5:) To dziwne, ale instalowałem ten najnowszy, niby wszystko szło ok, dopiero w zakładce o wersji zauważyłem że nadal jest stary - dopiero usunięcie starego umożliwiło zaistalowanie nowego - a żadnego komunikatu nie było, tylko tyle że upgrade. Teraz działa.

    Dodano po 2 [minuty]:

    Ten BOR normalnie jest wyłączony, potem jest level 1-3, ten level 3 ma najwyższe napięcie? pamiętasz jakie?

    Dodano po 1 [minuty]:

    Tak czy inaczej dzięki za zwrócenie uwagi na wersję ST-Link Utility, bo myślałem że mam najnowszą.
  • Użytkownik usunął konto  
  • Poziom 38  
    albertb napisał:
    tadzik85 napisał:
    Zrób sobie podciągań. Szoku doznasz.

    A co to takiego? Może też bym se zrobił? ;-)

    Albert


    poprawiono post
  • Specjalista - Mikrokontrolery
    A konkretnie to do czego służy kondensator na linii RESET w STM32F4? Jeśli nie mamy jakichś poważnych zakłóceń w otoczeniu, a ścieżka od RESET ma nie więcej niż 1..2 cm, to po co niby miałoby być cokolwiek na płytce podłączone do RESET? Tak samo zresztą jest to zrobione w większości uC z rdzeniami Cortex. W moich projektach najczęściej w ogóle nie mam połączenia z RESET, nawet do programowania i nie widzę powodu, dla którego połączenie takie miałoby być potrzebne
  • Poziom 38  
    BlueDraco napisał:
    A konkretnie to do czego służy kondensator na linii RESET w STM32F4? Jeśli nie mamy jakichś poważnych zakłóceń w otoczeniu, a ścieżka od RESET ma nie więcej niż 1..2 cm, to po co niby miałoby być cokolwiek na płytce podłączone do RESET? Tak samo zresztą jest to zrobione w większości uC z rdzeniami Cortex. W moich projektach najczęściej w ogóle nie mam połączenia z RESET, nawet do programowania i nie widzę powodu, dla którego połączenie takie miałoby być potrzebne


    DOKUMENTACJE ZACZNIJ CZYTAĆ
  • Poziom 38  
    dziechu napisał:
    Faktem jest że na wszystkich płytkach discovery itp. są kondensatory do masy i oporniki do + z pinu RST.


    [STM32F405] - nieprawidłowy start procesora, jak go inicjalizować?
  • Poziom 38  
    dziechu napisał:
    No to chyba usunę ten rezystor. Na razie wszystko jest ok, startuje za każdym razem poprawnie, ale tak już było po daniu tego opóźnienia. Jutro przetestuję po usunięciu go - z BOR na max i po wylutowaniu rezystora.


    Zostaw ten rezystor w niczym nie wadzi a raczej pomaga i to zdecydowanie.
  • Specjalista - Mikrokontrolery
    Nie pytałem, "co jest faktem?", tylko o to, w jakim celu i na podstawie jakiego dokumentu miałbym pakować układ RC na linię RESET, do której nic innego nie jest podłączone, albo która ma wyłącznie jednocentymetrowe połączenie z kontaktem do programowania.

    Tadzik85 pokrzyczał, ale nie odpowiedział.
    I w czym "pomaga" ten rezystor? W ustaleniu na 1 stanu wejścia, który jest już ustalony na 1?
  • Poziom 38  
    BlueDraco napisał:
    Nie pytałem, "co jest faktem?", tylko o to, w jakim celu i na podstawie jakiego dokumentu miałbym pakować układ RC na linię RESET, do której nic innego nie jest podłączone, albo która ma wyłącznie jednocentymetrowe połączenie z kontaktem do programowania.

    Tadzik85 pokrzyczał, ale nie odpowiedział.
    I w czym "pomaga" ten rezystor? W ustaleniu na 1 stanu wejścia, który jest już ustalony na 1?


    Rzuć to na badania EMC. To pogadamy. Reszta to twoja odpowiedzialność, twój problem.
  • Specjalista - Mikrokontrolery
    O ile mi wiadomo, podczas badań EMC nie podaje się napięć na wyprowadzenia układów nie wyprowadzone na zewnątrz obudowy. Być może z tego powodu klika moich urządzeń z LPC, w których RESET nie miał połączenia z niczym przeszło pomyślnie badania EMC... ;)

    O czym w związku z tym chcesz pogadać? ;)

    dziechu: z czystego lenistwa, ignorancji i bezwładności - to tak, jak używanie w AVR instrukcji
    DDRB &= ~cośtam w celu ustawienia linii portu jako wejść. Spotkasz to w 3 na 4 przykładach programów, które ludzie wklejają na tym forum.

    Jak ktoś 20 lat temu rbił urządzenia z PIC i 51, w których trzeba było coś dowiesić do RESET, to tak mu zostało, bo przecież do manuala nie zajrzy.
  • Poziom 38  
    dziechu napisał:
    BlueDraco napisał:
    w jakim celu i na podstawie jakiego dokumentu miałbym pakować układ RC na linię RESET, do której nic innego nie jest podłączone

    A w jakim celu robi się to na płytkach Discovery? Skoro zupełnie niepotrzebne...


    Mogę być niepotrzebne, gdy:
    1. Układ zamkniesz z metalowej puszcze.
    2. Nie stosujesz urządzenia w warunkach przemysłowych.
    3. Na pcb nie ma układów zakłócających.
    4. Nie stosujesz trybów uśpienia.
    5... etc..

    Dodano po 1 [minuty]:

    BlueDraco napisał:
    O ile mi wiadomo, podczas badań EMC nie podaje się napięć na wyprowadzenia układów nie wyprowadzone na zewnątrz obudowy. Być może z tego powodu klika moich urządzeń z LPC, w których RESET nie miał połączenia z niczym przeszło pomyślnie badania EMC... ;)

    O czym w związku z tym chcesz pogadać? ;)


    A tym ze zaczynasz bzdury wygadywać, powielając swoje błędy.
  • Specjalista - Mikrokontrolery
    A konkretnie: czym grozi niepowieszenie kondensatora na nie podłączonej do NICZEGO linii RESET? Tak merytorycznie i bez propagandy poproszę.
  • Poziom 38  
    BlueDraco napisał:
    A konkretnie: czym grozi niepowieszenie kondensatora na nie podłączonej do NICZEGO linii RESET. Tak merytorycznie i bez propagandy poproszę.


    Zadzwoń do ST i zapytaj się dlaczego jest rekomendowany.....

    A ja pytam w czym ci wadzą 2 elementy o wartości poniżej 0,01PLN.

    Dodano po 1 [minuty]:

    BlueDraco napisał:


    Jak ktoś 20 lat temu rbił urządzenia z PIC i 51, w których trzeba było coś dowiesić do RESET, to tak mu zostało, bo przecież do manuala nie zajrzy.


    Zrzut z wspomnianego manuala wstawiłem powyżej.

    Dodano po 59 [sekundy]:

    BlueDraco napisał:

    DDRB &= ~cośtam w celu ustawienia linii portu jako wejść.


    Konkluzja?
  • Specjalista - Mikrokontrolery
    Wadzą w redukcji powierzchni płytki, a w niczym nie pomagają. Dlaczego mam na płytce umieścić tylko dwa zbędne elementy? Może powinienem dać ich ze 20?

    Zauważ, że w tym fragmencie manuala jest mowa o przycisku RESET - to uzasadnia użycie kondensatora. Jakoś jednak na wklejonym przez Ciebie firmowym obrazku ST nie widać rezystora, który tak rekomendujesz.

    Konkluzja prosta: czytać dokumentację i projektować na jej podstawie, a nie na podstawie przyzwyczajeń, które były uzasadnione 20 lat temu przy zupełnie innych układach (to do sprzętu). A do oprogramowania: jeśli nie wierzymy, że producent pisze prawdę o zawartości rejestru DDR po resecie to nie powinniśmy wierzyć w żadne inne informacje z manuala - wniosek - lepiej nic nie programować, by i tak nie zadziała.
  • Poziom 38  
    BlueDraco napisał:
    Wadzą w redukcji powierzchni płytki, a w niczym nie pomagają. Dlaczego mam na płytce umieścić tylko dwa zbędne elementy? Może powinienem dać ich ze 20?

    Zauważ, że w tym fragmencie manuala jest mowa o przycisku RESET - to uzasadnia użycie kondensatora. Jakoś jednak na wklejonym przez Ciebie firmowym obrazku ST nie widać rezystora, który tak rekomendujesz.

    Konkluzja prosta: czytać dokumentację i projektować na jej podstawie, a nie na podstawie przyzwyczajeń, które były uzasadnione 20 lat temu przy zupełnie innych układach.


    Super porada. Brawo. 1 klasa.
    A " nie pomagają w niczym" , jest to zdecydowanie za wiele powiedziane, szczególnie, gdy wypowiadasz się o układzie którego schematu ani PCB nie widziałeś.
  • Specjalista - Mikrokontrolery
    Wypowiadam się o układach, które sam zaprojektowałem, więc raczej widziałem i schemat, i płytkę, i certyfikat CE. Coś mi się wydaje, że to Ty tym razem wypowiadasz się o nieznanych Ci układach.