Używam PIC18F4680 i mam problemy z uruchomieniem go z zewnętrznego źródła zegara 40 MHz lub kryształu 10 MHz w trybie HSPLL. Używanie kryształu 10 MHz w trybie HS wydaje się być w porządku, a kryształ 5 MHz w trybie HSPLL również działa dobrze.
Dzieje się tak, że PIC uruchamia się, działa przez kilka sekund, a następnie wyłącza się na chwilę i zaczyna od nowa. Całkowity okres cyklu wynosi około 5 sekund, z których PIC przestaje działać na początku drugiej sekundy.
Zauważyłem również, że czasami, gdy dodam wystarczająco duży rozładowany kondensator do szyny zasilania płyty chlebowej, PIC będzie działał dobrze. Ciekawe jest to, że dzieje się tak tylko wtedy, gdy dodam kondensator, gdy PIC już działa. Jeśli zasilę płytę za pomocą kondensatora lub umieszczę kondensator, który nie został całkowicie rozładowany, problem pozostaje.
Czytałem na niektórych stronach, że problemy podobne do moich mogą się zdarzyć z powodu zwiększonego zużycia energii przez PIC przy wyższej częstotliwości i wyższym najniższym napięciu roboczym. W takich przypadkach, jeśli występują pewne krótkie spadki napięcia na zasilaczu, istnieje większe prawdopodobieństwo, że osiągną najniższe napięcie robocze PIC na tej częstotliwości, dlatego dobrym pomysłem jest posiadanie dodatkowych kondensatorów na płycie głównej, aby rozwiązać ten problem. Ponieważ pod pełnym obciążeniem przy 40 MHz, cały obwód wokół zastosowania 64 mA, moja pierwsza myśl była umieścić jakiś kondensatory tantalowe nadzieję, że oni być wystarczająco duże i mają dość niski ESR, aby rozwiązać ten problem. Jeden nie pomógł, a drugi też nie pomógł. Więc dodałem 100 μ Faluminiowy kondensator i to też nie pomogło. Potem dodano aluminiowy kondensator bez skutku. Na koniec dodałem aluminiowy kondensator elektrolityczny 1 mF, a następnie po raz pierwszy obwód działał dobrze, dopóki nie został wyłączony i włączony. Powinienem również zauważyć, że do celów testowych używam Vcc 5,5 V, co jest najwyższym napięciem znamionowym dla tego mikrokontrolera. To powinno dać mi trochę miejsca do 4,2 V, czyli najniższego napięcia roboczego przy 40 MHz
Następnie, czytałem, że czasami wyjść pływających może powodować pewne problemy, więc kładę jakieś rezystory rozwijanym na wszystkich nieużywanych pinów i to nie pomogło. Potem przeczytałem, że czasami mogą występować problemy, jeśli wejścia oscylatora są pływające, więc próbowałem podłączyć je do GND za pomocą rezystorów 10 M Ω i to nie pomogło.
Z powodu długości drutu przechodzącego od wyjścia oscylatora do wejścia oscylatora na PIC, spodziewałem się problemów z nim, ale nie spodziewałem się problemów z kryształem 10 MHz, który jest bardzo blisko styków oscylatora na PIC. Także w przypadku kryształu spodziewałbym się problemów w trybie HS, jeśli problem stanowiłby zniekształcenie sygnału oscylatora z powodu płyty chlebowej, ale w trybie HS PIC działa dobrze.
Zwykle używam kondensatorów 33 pF do kryształów, ale próbowałem też z 15 pF i nie mogłem wykryć żadnej zmiany.
Powinienem również zauważyć, że ten PIC ma bezpieczny monitor zegara i przełączanie oscylatora wewnętrznego / zewnętrznego. Próbowałem włączyć oba z nich, mając nadzieję, że przynajmniej potwierdzą, że problem dotyczy oscylatora, ale nie pomagają w rozwiązaniu problemu. Nie ma różnicy, że są włączone lub wyłączone.
Wyłączyłem również dla celów testowych licznik czasu watchdoga, resetowanie wyszarzenia i resetowanie nadmiernego / niepełnego stosu. Myślę, że wyłączyłem wszystkie źródła resetu dla tego układu. Również program jest w nieskończonej pętli, więc to się nie kończy.
PCF8583 nie ma żadnych problemów i nadal działa poprawnie nawet po zresetowaniu PIC, ale z drugiej strony ma znacznie niższe napięcie minimalne.
Niestety nie mam oscyloskopu, ale przeszedłem testy z kartą dźwiękową (częstotliwość próbkowania 96 kHz) i zauważyłem, że gdy RTC jest włączony, na linii zasilania jest szum 25 Hz. Program, którego używam, zgłasza około 300 mV między szczytami, ale nie wiem, jak bardzo mu zaufać, i nie wiem, czy to wystarczy, aby spowodować jakiekolwiek problemy w PIC. Gdy wszystko jest wyłączone, hałas wynosi od 100 mV od szczytu do szczytu, więc powinno być dobrze.
Jeśli to pomaga, oto zdjęcie samej płyty: (kliknij prawym przyciskiem myszy-> wyświetl obraz, aby uzyskać pełny rozmiar)
Czy ktoś ma pojęcie, co się tutaj dzieje?
Na koniec mogłem po prostu uruchomić PIC przy 20 MHz, ale jeśli potrzebuję więcej mocy obliczeniowej, chciałbym móc go uruchomić przy 40 MHz.
AKTUALIZACJA
Umieściłem kolejny regulator na samej płycie chlebowej, a hałas wychwytywany przez kartę dźwiękową jest teraz znacznie niższy (około 50 mV między szczytami), ale nie wpłynęło to na główny problem.