W życiu każdego pasjonata nadchodzi taka chwila, w której nawet proste zaświecenia diody świeżo nabytym mikrokontrolerem okazuje się nie lada problematyczne. Dioda się nie zaświeca albo zaświeca się i po chwili gaśnie, a czasami cyklicznie przygasa, a może dioda reaguje nawet na zbliżenie ręki?
Przyczyn może być co najmniej kilka, a ja się skupie na tych w sumie prostych, ale niekoniecznie oczywistych.
1. Brak rezystora 10k przy pinie MCLR. Fundujemy sobie resety układu, bo napięcie na tym pinie radośnie sobie pływa. Pin MCLR można wyłączyć w bitach konfiguracyjnych, ale od tego momentu nie będzie można programować układu niskonapięciowym programatorem.
2. Brak filtracji napięcia zasilającego układ. Przede wszystkim należy zapoznać się z datasheet wykorzystywanego przez nas układu. Dowiemy się, czy producent przyszykował nam jakies niespodzianki typu filtracja napięcia Vcore itp... Poza tym obowiązują ogólne zasady projektowania obwodów. Kondensatory filtrujące jak najbliżej pinów układu, jeśli producent zaleca użycie dławików, to mają być dławiki... Tutaj działania są silnie uzależnione od producenta i typu układu.
3. Włączony watchdog. Timer ten można odpowiednio skonfigurować lub wyłączyć w bitach konfiguracyjnych lub zwyczajnie obsłużyć przy pomocy CLRWDT(); lub ClrWdt();
4. Aktywna (w bitach konfiguracyjnych) opcja programowania niskonapięciowego. Tutaj odniosę się do konkretnego układu, a mianowicie PIC18F2550/4550. jeden z pinów układu oznaczony jest literami PGM. Pin ten służy do wymuszenia wejścia w tryb programowania niskonapięciowego. Wymuszenie następuje poprzez podanie stanu wysokiego na ten pin. Niestety łatwo to przeoczyć i kłopot murowany
Co zrobić?
a. wyłączyć LVP w bitach konfiguracyjnych.
b. jeśli potrzebujemy LVP, należy sprowadzić jego pin do stanu niskiego przy pomocy rezystora. W programie należy zadbać, by pin ten był ustawiony jako wyjście (to wyłączy ewentualny pull up), a wyjściowy stan tego pinu ma być stanem niskim.
5. Błędnie ustawiony priorytet źródła przerwania. No cóż... Należy po kolei prześledzić, które z naszych przerwań mają priorytet niski, a które wysoki, a następnie zerknąć obsługę tychże przerwań Pomyłka w priorytetach często skutkuje "pójściem softu w maliny"
Pozdrawiam!
Ratunku! Mój PIC się resetuje!
Nasze polecane książki, kursy, strony internetowe, fora itp. pomocne przy przyswajaniu wiedzy związanej z PIC i pisaniem programów dla nich.
- Antystatyczny
- Geek
- Posty: 1168
- Rejestracja: czwartek 03 wrz 2015, 22:02
Ratunku! Mój PIC się resetuje!
Postautor: Antystatyczny » sobota 24 paź 2015, 18:52
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.
Wróć do „Źródła wiedzy na temat PIC”
Przejdź do
- Nasze Forum
- Zamiast regulaminu
- Uwagi, sprawy organizacyjne
- Mikroklocki
- ARM
- ARM STMicroelectronics
- Programowanie STM w C/C++
- STM - problemy układowe
- Jakie IDE dla STM?
- Źródła wiedzy na temat ARM z STMicroelectronics
- ARM Freescale
- Programowanie ARM Freescale w C/C++
- Freescale - problemy układowe
- Jakie IDE dla ARM z Freescale?
- Źródła wiedzy na temat ARM z Freescale
- ARM innych firm
- AVR
- Programowanie AVR w C
- Programowanie AVR w C++
- Programowanie AVR w Bascom-AVR
- Programowanie AVR w Arduino
- AVR - problemy układowe
- Jakie IDE dla AVR?
- Źródła wiedzy na temat AVR
- PIC
- Programowanie PIC w C
- Programowanie PIC w Assembler
- PIC - problemy układowe
- Jakie IDE dla PIC?
- Źródła wiedzy na temat PIC
- FPGA - ogólnie
- FPGA - MAXimator
- Inne mikroklocki, również peryferyjne
- Języki programowania
- C
- Pisanie programów w C
- Jakie IDE dla C?
- Skąd czerpać wiedzę na temat języka C?
- C++
- Pisanie programów w C++
- Pisanie programów w QT
- Jakie IDE dla C++?
- Skąd czerpać wiedzę na temat języka C++?
- C#
- Pisanie programów w C#
- Jakie IDE dla C#?
- Skąd czerpać wiedzę na temat języka C#?
- Assembler
- Pisanie programów w Assembler
- Jakie IDE dla Assembler?
- Skąd czerpać wiedzę na temat języka Assembler?
- Inne języki programowania
- Elektronika
- Podstawy elektroniki - teoria i praktyka
- DIY
- Mój warsztat
- Systemy rozwojowe dla mikrokontrolerów
- Przyrządy pomiarowe
- Technika montażu elektronicznego
- Moje własnoręcznie wykonane PCB
- Mój warsztat domowy
- Programy typu EDA, CAD itp.
- KiCAD
- Altium
- Eagle
- Inne
- Jak to działa – czyli kącik testera
- Kącik krótkofalowca i radioamatora
- Retro
- Wokół komputerów
- Sprzęt, sterowniki, oprogramowanie
- GNU/Linux
- Windows
- Różności
- Kupię, sprzedam, zamienię
- Hyde Park
- Kosz
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość