MusicIsLife Inserito: 17 dicembre 2021 Segnala Inserito: 17 dicembre 2021 Ciao ragazzi! Per un progetto vorrei utilizzare un chip che integra il watchdog timer ed il voltage supervisor. Tale chip supervisionerà il microcontrollore a cui è connesso. Il chip in oggetto è il TPS3850G33 della Texas Instruments. Il chip prevede la possibilità di abilitare o disabilitare il watchdog timer attraverso i pin SET0 e SET1. Se entrambi i pin sono connessi a GND il watchdog è abilitato; se SET0=1 e SET1=0 il watchdog è disabilitato. L'alimentazione della scheda è singola ed è pari a 3,3V; di conseguenza il microcontrollore ed il supervisor sono entrambi alimentati a 3,3V. Come vedete dalla porzione di schema elettrico allegato, il pin RESET e WDO del chip sono connessi insieme al pin NRST del microcontrollore, poiché quest'ultimo non è dotato di pin NMI. Il problema che devo affrontare riguarda lo startup del mio dispositivo. - Nel momento in cui la tensione 3,3V che alimenta la scheda rientra nel range del supervisor, il pin RESET del supervisor viene rilasciato (va a "1"). In questo frangente il pin WDO si porta a "1" con una rampa e, quindi, il microcontrollore si può avviare poiché il pin NRST è a "1". - A quel punto dovrebbe partire un timer interno al supervisor che conta un tempo entro il quale il supervisor si aspetta di ricevere dal microcontrollore l'impulso sulla linea WDI. Se tale impulso non arriva entro il tempo prestabilito, comunque adattabile in un determinato range attraverso un condensatore esterno, il pin WDO del supervisor viene portato a "0" e, di conseguenza, il microcontrollore viene resettato. Mi viene quindi da dire che dovrei avviare la scheda mantenendo il watchdog timer disabilitato attraverso i pin SET0=1 e SET1=0. Una volta che il microcontrollore ha terminato la fase di boot dovrei cambiare lo stato del pin SET0 portandolo a "0" in modo da abilitare il watchdog timer. A questo punto il microcontrollore sarebbe pronto per inviare sulla linea WDI l'impulso nel tempo prestabilito. Il ragionamento che ho fatto è corretto oppure è possibile avviare il sistema mantenendo i pin SET0 e SET1 connessi a GND senza effettuare il passaggio che vi ho descritto in precedenza? Nel caso in cui sia necessario compiere quanto da me descritto avreste un circuito semplice da suggerirmi per effettuare quando richiesto? Pensavo ad una porta logica che commuta l'uscita forzandola a "0" o a "1", in modo esclusivo, pilotata da un C-R che fa in modo di mantenere l'uscita della porta logica a "0" una volta che è passato il tempo prestabilito dalla rete C-R. Avete suggerimenti? Grazie mille! Gabriele.
Ctec Inserita: 17 dicembre 2021 Segnala Inserita: 17 dicembre 2021 (modificato) Il Twdu (tempo di avvio del WD), con CWD aperto e Set0=Set1=0 implica che deve arrivare il primo impulso di riarmo del reset (WDI) entro tipicamente 55ms, e un micro generalmente si sveglia molto prima. Non so quale sia quello che usi tu, ma gli STM32 partono immediatamente (e hanno il WDT interno). Se non vuoi rischiare, puoi semplicemente mettere Set0=Set1=1, al che hai tempo 1,6s per poterlo fare... Guarda bene la tabella del Twdu, ci sono parecchie combinazioni possibili. Modificato: 17 dicembre 2021 da Ctec
MusicIsLife Inserita: 17 dicembre 2021 Autore Segnala Inserita: 17 dicembre 2021 Il problema è che il microcontrollore è "pronto" in pochi ms, ma deve effettuare una serie di test "test RAM, ecc.." che possono portare il tempo totale di startup a qualche centinaia di ms. Di conseguenza temo che 55ms siano troppo pochi e potrei incorrere nel caso in cui il timer del watchdog vada in timeout mantenendo quindi il microcontrollore resettato. A questo punto la soluzione è effettivamente quella di disabilitare il watchdog all'avvio del microcontrollore ed abilitarlo al termine della fase di boot? Guardando il datasheet ho capito che l'unico modo per fare questo è agire sul pin SET0 ponendolo a "1" o a "0" a seconda se voglio il watchdog disabilitato o abilitato. Come potrei fare?
Ctec Inserita: 17 dicembre 2021 Segnala Inserita: 17 dicembre 2021 Scusa, ma essendo già pronto, non può già emettere il segnale WDI? Basta che mentre fa i test gestisca in parallelo anche l'emissione del WDI. Purché sia passato un tempo minimo. Da quel che capisco nella fig. 6.3 del datasheet, devi averlo attivo (per impostare il "tempo"), poi lo disattivi e in seguito lo riattivi. Ma per fare ciò ti spechi un GPIO per cambiare modalità al TPS.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora