Witam.
Zaprojektowałem układ z mikrokontrolerem STM32F429. Mikrokontroler jest napędzany z częstotliwością 180MHz i ma wyprowadzone złącze programowania SWD.
Całość w celach testowych dołączyłem do diody LED, pokazującej stan pracy urządzenia oraz do 4 przycisków. Przy mikrokontrolerze, zgodnie z zaleceniami, zamontowałem 12 kondensatorów 100nF przy każdym VDD, kondensator 2,2uF + 100nF przy VDDA, 2,2uF do VBAT, 2,2uF do CAP1 i CAP2. Z kwarcem również współpracują stosowne kondensatory i rezystory - ogólnie w tych sprawach wzorowałem się na schemacie zestawu uruchomieniowego STM32F429 DISCOVERY - schemat poniżej. Główny kondensator filtrujący na wejściu to 100uF.
Swoją płytkę podłączyłęm do wyprowadzeń programatora StLINK (SWD), zamontowanego na płytce DISCOVERY. Chciałem przetestować system przerwań zewnętrznych, skonfigurowałem je więc tak, że po wciśnięciu przycisku 1, 2 i 3 - dioda zapala się, a po wciśnięciu 4 przyc. - gaśnie.
Uruchomiłem program. Wszystko pracuje OK, ale do momentu. Gdy sondą miernika dotknę do punktu GND lub VCC (wystarczy jedna sonda), debugger natychmiastowo traci połączenie z mikrokontrolerem i wyskakuje błąd (dzieje się to najczęściej przy punktach GND i VCC najbliżej uP). Wystarczy tez, że
dotknę do jakiegoś wejścia tego chipa - ukłąd też czasami traci połączenie.
Podobne, dziwne rzeczy dzieją się z przyciskami - dotknę sondą miernika wyprowadzenia przycisków (które idzie do UP) - układ rozpoznaje to jako fakt jego naciśnięcia. Nic nie pomagają dodatkowe, 600 omowe rezystory podciągające, kondensatory połączone równolegle z przyciskiem itd... Nadmienię, że ścieżka od mikrokontrolera do przycisków ma średnio ok. 6 cm i jest przykryta masą. Tutaj sytuacja wydaje się bardziej zrozumiała - dotknięciem miernikiem przycisku generuje szpilki, które pobudzają ukłąd wykrywania zbocza opadającego w uP - należy jeszcze chyba zastosować programową eliminację przekłamań, sprawdzając ponownie przycisk po ok. 20ms. Ale co może być w 1 przypadku, czyli dziwnym zachowaniu debuggera?
PS
Badanie zasilania oscyloskopem nie pokazuje mocnych zakłóceń. Widać jedynie, że na nastawie 5mV/div zakłócenia minimalnie zmieniają swój charakter po dotknięciu obudowy uP. Nadmienię, że mój układ jest zasilany z płytki DISCOVERY, podłączonej do portu USB laptopa.
Zaprojektowałem układ z mikrokontrolerem STM32F429. Mikrokontroler jest napędzany z częstotliwością 180MHz i ma wyprowadzone złącze programowania SWD.
Całość w celach testowych dołączyłem do diody LED, pokazującej stan pracy urządzenia oraz do 4 przycisków. Przy mikrokontrolerze, zgodnie z zaleceniami, zamontowałem 12 kondensatorów 100nF przy każdym VDD, kondensator 2,2uF + 100nF przy VDDA, 2,2uF do VBAT, 2,2uF do CAP1 i CAP2. Z kwarcem również współpracują stosowne kondensatory i rezystory - ogólnie w tych sprawach wzorowałem się na schemacie zestawu uruchomieniowego STM32F429 DISCOVERY - schemat poniżej. Główny kondensator filtrujący na wejściu to 100uF.
Swoją płytkę podłączyłęm do wyprowadzeń programatora StLINK (SWD), zamontowanego na płytce DISCOVERY. Chciałem przetestować system przerwań zewnętrznych, skonfigurowałem je więc tak, że po wciśnięciu przycisku 1, 2 i 3 - dioda zapala się, a po wciśnięciu 4 przyc. - gaśnie.
Uruchomiłem program. Wszystko pracuje OK, ale do momentu. Gdy sondą miernika dotknę do punktu GND lub VCC (wystarczy jedna sonda), debugger natychmiastowo traci połączenie z mikrokontrolerem i wyskakuje błąd (dzieje się to najczęściej przy punktach GND i VCC najbliżej uP). Wystarczy tez, że
dotknę do jakiegoś wejścia tego chipa - ukłąd też czasami traci połączenie.
Podobne, dziwne rzeczy dzieją się z przyciskami - dotknę sondą miernika wyprowadzenia przycisków (które idzie do UP) - układ rozpoznaje to jako fakt jego naciśnięcia. Nic nie pomagają dodatkowe, 600 omowe rezystory podciągające, kondensatory połączone równolegle z przyciskiem itd... Nadmienię, że ścieżka od mikrokontrolera do przycisków ma średnio ok. 6 cm i jest przykryta masą. Tutaj sytuacja wydaje się bardziej zrozumiała - dotknięciem miernikiem przycisku generuje szpilki, które pobudzają ukłąd wykrywania zbocza opadającego w uP - należy jeszcze chyba zastosować programową eliminację przekłamań, sprawdzając ponownie przycisk po ok. 20ms. Ale co może być w 1 przypadku, czyli dziwnym zachowaniu debuggera?
PS
Badanie zasilania oscyloskopem nie pokazuje mocnych zakłóceń. Widać jedynie, że na nastawie 5mV/div zakłócenia minimalnie zmieniają swój charakter po dotknięciu obudowy uP. Nadmienię, że mój układ jest zasilany z płytki DISCOVERY, podłączonej do portu USB laptopa.