-
1. Data: 2011-10-02 20:31:05
Temat: Inicjalizacja ADC w STM32 i baaardzo dziwny problem
Od: Konop <k...@g...pl>
Witam
Mam (moim zdaniem) bardzo dziwny problem z inicjalizacją ADC w STM32
(konkretnie STM32F103ZET6).
Po restarcie (włączeniu zasilania, resecie przyciskiem bądź po
programowaniu) CZASAMI przetwornik NIE DZIAŁA! Po kolejnym resecie lub
kilku wszystko chodzi jak należy.. W sumie nie wiem, gdzie tkwi źródło
problemu, bo działa to tak:
- TIMER1 uruchamia konwersję
- ADC mierzy
- DMA przesyła dane do pamięci i po 10 pomiarach zgłasza przerwanie
- przerwanie wyrzuca flagę i konfiguruje DMA do dalszej pracy
- program, jak widzi flagę, liczy co ma liczyć i jedzie dalej...
No i czasami flaga ta nie jest ustawiana...
Dziwi mnie fakt, że to raz się zdarza, a raz nie... Czasem raz na 10
resetów działa, czasem raz na 10 resetów nie działa... Podobny problem
(ale znacznie rzadziej) mam też z nadawaniem prze UART1 (odbieranie
działa, program chodzi i wykonuje komendy, które otrzymuje przez UART1,
ale na nie nie odpowiada!!).
Dziwią mnie te problemy o tyle, że w inicjalizacji nie mam właściwie
żadnych elementów "losowych" (może poza czekaniem na ustabilizowanie się
PLLa, którą robię na samym początku), przez co inicjalizacja za każdym
razem powinna wyglądać dokładnie tak samo. Jak dla mnie, to albo jest
błąd i nie powinno nigdy działać, albo jest dobrze i powinno działać za
każdym razem!!
Podpowiedzcie mi proszę, gdzie, czym i jak szukać przyczyny problemu, bo
już wariuję tu normalnie! A może ktoś miał podobne problemy i podpowie,
jak to obszedł??
Jestem gotowy wstawić "protezę" w postaci programowego sprawdzenia, czy
wszystkie peryferia działają, a jak nie - to reset ;)... no ale to takie
nieeleganckie raczej :(....
--
Pozdrawiam
Konop