devo scrivere una routine che agganci l'INT generato dal brownout?
mettiamo che quando viene spento il circuito devo effettuare il backup di alcune variabili nella eeprom... per allungare il tempo utile per salvare queste variabili mi conviene piazzare un elettrolitico bello grosso in parallelo all'alimentazione? Altre indicazioni?
io avevo fatto qualcosa di simile (backup dati) utilizzando lo spegnimento del circuito da parte del uC stesso. In pratica prevedi un pulsante di spegnimento collegato al PIC che alla sua pressione prevede a fare tutte le routine di salvataggio e poi tramite un transistor o quant'altro toglie alimentazione al circuito. Se vuoi fare le cose facili puoi lasciare alimentato solo il PIC in modalità sleep (o analoga, non ricordo la terminologia microchip) in modo da risvegliarlo alla successiva pressione del pulsante. Altrimenti con un minimo di elettronica puoi ottenere la stessa cosa via hardware.
purtroppo ho il problema che lo spegnimento avviene in istanti non prevedibili (non è deciso dall'utente, insomma) e quindi il sistema deve riconoscere da solo quando viene a meno la tensione di alimentazione e procedere al salvataggio
"ice" ha scritto nel messaggio news:TrkQd.544369$ snipped-for-privacy@news3.tin.it...
molto artigianalmente parlando potresti provare inserendo in serie all'alimentazione del PIC un diodo, seguito poi da un bel condensatore come "scorta di energia". Su di un altro pin fai leggere il valore di tensione prima del diodo che in teoria dovrebbe, in caso di black-out, scendere più rapidamente di quella ai capi del condensatore serbatoio. Se il pin va a zero significa black-out e ti regoli di conseguenza. Occhio a dimensionare il condensatore "sebatoio" perchè ti dia tempo sufficiente per eseguire il back-up
l'unico è vedere se esiste un INT per il pic che scatta quando il valore analogico presente su un certo pin è sotto un certo livello (una sorta di comparatore insomma). Purtroppo ho timing abbastanza stringenti e non posso permettermi il lusso di fare polling...
Il giorno Tue, 15 Feb 2005 14:23:34 +0100, "Iw7" ha scritto:
Questa può essere una soluzione, ma ha il difetto che il tempo di intervento dipende dal livello della tensione di alimentazione (in presenza di una variazione della tensione di rete questo tempo cambia)
Personalmente ho sempre preferito usare l'alternata se disponibile.
Usando un paio di inverters HC14 col primo squadri l'onda sinusoidale dal secondario del trasformatore mettendo una resistenza da 10K verso AC~, poi metti una RC con un diodo in scarica con una costante di circa 50msec (lEnel garantisce la semionda ma è meglio esagerare) e colleghi l'uscita del secondo inverter all'Interrupt del micro.
12VAC~ ---------|>o------|o---------INT\ hc14
Naturalmente se devi scrivere dati su EEPROM devi prevedere sull'alimentatore un elettrolitico di dimensioni adeguate per consentire la scrittura di tutti i dati.
ho visto che il 18f458 e company supportano un #INT quando viene rilevato un voltaggio "basso", impostabile via sw oppure impostabile dall'esterno su un pin dedicato
no, nel mio caso era piú semplice perchè il micro rimaneva sempre alimentato e quindi usavo un pulsante per attivare e disattivare l'alimentazione agli altri dispositivi.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.