Sto usando PIC18F4680 e sto riscontrando problemi nell'esecuzione da una sorgente di clock esterna 40 MHz o cristallo 10 MHz in modalità HSPLL. L'uso del cristallo a 10 MHz in modalità HS sembra andare bene e anche il cristallo a 5 MHz in modalità HSPLL funziona bene.
Quello che succede è che il PIC si avvia, funziona per alcuni secondi, quindi si spegne per un po 'e ricomincia. Il periodo totale del ciclo è di circa 5 secondi, a partire dal quale il PIC funziona smette di funzionare all'inizio del secondo secondo.
Ho anche notato che a volte quando aggiungo un condensatore abbastanza grande scaricato al bus di alimentazione della breadboard, il PIC funzionerà bene. Il punto interessante è che questo accade solo se aggiungo il condensatore mentre il PIC è già in esecuzione. Se accendo la breadboard con il condensatore o posiziono un condensatore che non è stato completamente scaricato, il problema rimane.
Ho letto su alcuni siti che problemi simili al mio possono verificarsi a causa di un maggiore consumo di energia del PIC su frequenza più alta e tensione di funzionamento più bassa più alta. In questi casi, se ci sono alcune cadute di tensione sull'alimentatore, è più probabile che raggiungano la tensione operativa più bassa del PIC su quella frequenza, quindi è una buona idea avere condensatori aggiuntivi sulla breadboard per risolvere quel problema. Dato che a pieno carico a 40 MHz, l'intero circuito utilizza circa 64 mA, la mia prima idea è stata quella di mettere alcuni condensatori al tantalio sperando che fossero abbastanza grandi e con un ESR abbastanza basso da risolvere il problema. Uno non ha aiutato e il secondo non ha aiutato neanche. Quindi ho aggiunto un 100 μ Fcondensatore di alluminio e questo non ha aiutato neanche. Quindi ho aggiunto un condensatore in alluminio senza alcun effetto. Alla fine, ho aggiunto un condensatore elettrolitico in alluminio da 1 mF e quindi per la prima volta il circuito ha funzionato bene fino a quando non è stato spento e acceso. Dovrei anche notare che a scopo di test sto usando Vcc di 5,5 V che è la tensione nominale più alta per questo microcontrollore. Questo dovrebbe lasciarmi un po 'di spazio fino a 4,2 V, che è la tensione di funzionamento più bassa a 40 MHz
Successivamente, ho letto che a volte le uscite fluttuanti possono causare problemi, quindi ho inserito alcuni resistori pull-down da su tutti i pin non utilizzati e questo non ha aiutato neanche. Dopo di che ho letto che a volte potrebbero esserci problemi se gli ingressi dell'oscillatore sono fluttuanti, quindi ho provato a collegarli a GND usando alcuni resistori da 10 M Ω e questo non ha aiutato.
A causa della lunghezza del filo che va dall'uscita dell'oscillatore all'ingresso dell'oscillatore sul PIC, mi aspettavo problemi con esso, ma non mi aspettavo problemi con il cristallo da 10 MHz che è molto vicino ai pin dell'oscillatore sul PIC. Anche con il cristallo, mi aspetterei problemi anche in modalità HS, se il problema fosse la distorsione del segnale dell'oscillatore dovuta alla breadboard, ma in modalità HS, il PIC funziona bene.
Normalmente uso 33 condensatori pF per i cristalli, ma ho provato anche con 15 pF e non sono riuscito a rilevare alcun cambiamento.
Devo anche notare che questo PIC ha un monitor di clock a prova di guasto e una commutazione dell'oscillatore interno / esterno. Ho provato ad abilitarli entrambi, sperando che almeno confermassero che il problema è con l'oscillatore, ma non aiutano il problema. Non c'è differenza se sono accesi o spenti.
Ho anche disabilitato a scopo di test timer watchdog, reset brown-out e reset stack over / underflow. Penso di aver disattivato tutte le fonti di ripristino per questo chip. Inoltre, il programma è in un ciclo infinito, quindi non sta finendo.
Il PCF8583 non ha alcun problema e continua a funzionare correttamente anche quando PIC si sta ripristinando, ma d'altra parte ha una tensione minima molto più bassa.
Sfortunatamente, non ho un oscilloscopio, ma ho fatto alcuni test con una scheda audio (frequenza di campionamento di 96 kHz) e ho notato che quando l'RTC è acceso, c'è un rumore di 25 Hz sulla linea di alimentazione. Il programma che sto usando riporta circa 300 mV da picco a picco, ma non so quanto fidarmi e non so se sarebbe abbastanza per causare problemi al PIC. Quando tutto è spento, il rumore è di circa 100 mV picco-picco, quindi dovrebbe andare bene.
Nel caso in cui aiuti, ecco l'immagine della breadboard stessa: (tasto destro-> vedi immagine per dimensioni intere)
Qualcuno ha idea di cosa sta succedendo qui?
Alla fine, ho potuto semplicemente eseguire il PIC a 20 MHz, ma se avessi bisogno di più potenza di elaborazione, mi piacerebbe essere in grado di eseguirlo a 40 MHz.
AGGIORNARE
Ho posizionato un altro regolatore sulla breadboard stessa e il rumore raccolto dalla scheda audio ora è molto più basso (circa 50 mV da picco a picco), ma non ha influenzato il problema principale.