Reset hardware con Arduino

Puo' nascere la necessita' di voler effettuare automaticamente un reset hardware. Basta usare questo piccolo schema:

formatting link

Ho provato solo su funduino mega e non su arduino uno o mega.

Giorgio

Reply to
Giorgio
Loading thread data ...

Il 10/02/2019 14:37, Giorgio ha scritto:

Questa non l'ho capita, perche' far rimanere perennemente - ed occupato

- alto un pin digitale (con relativo consumo continuo) ? Forse sbaglio....

--

Ciao, Renato
Reply to
Renato_VBI

"Giorgio" ha scritto nel messaggio news:q3p9fj$a5p$ snipped-for-privacy@gioia.aioe.org...

quale e' stato il tuo motivo per adottare una simile tecnica ? in genere si ricorre al reset hardware in caso di malfunzionamento del software, con appositi circuiti di watch-dog, che se non triggerati entro il tempo massimo resettano il sistema. ma il tuo circuito prevede che il software sia funzionante e sia lui a voler eseguire un reset hardware, perche' ?

Reply to
alfio

Il 10/02/2019 16:37, alfio ha scritto:

L'aggeggio contiene 2 oscillatori e del codice discrimina quando l'alimentazione, tramite un commutatore a 2 posizioni, passa da uno all'altro. Quando cio succede ho trovato utile eseguire un reset, anche se ovviamente si puo' simulare abbastanza il reset con dell'opportuno software, ma io ho preferito cosi' e funziona bene in quanto tutto viene reinizializzato a dovere.

Reply to
Giorgio

Sembra che non ce lo voglia ben spiegare (perche' effettivamente non esiste), da quello che leggo in giro la atmel :

CONSIGLIA di far partire il WatchDog e aspettare che si generi il reset.

Giulia

Reply to
Giulia

Il 13/02/2019 23:58, LAB ha scritto:

Non per contraddire ma da quello che vedo nel display e nel comportamento delle periferiche il reset e' totale, forse perche' c'e' una capacita' che mantiene abbastanza a lungo in basso il pin di reset. Il discorso del WatchDog e' interessante e se trovo il codice lo inserisco al posto dell'autoreset. Giorgio

Reply to
Giorgio

Ho appena trovato questo codice di reset software per l'arduino due e funziona:

void Software_Reset() { //============================================================================================

// // Parameter: keine // Rueckgabe: keine //============================================================================================ const int RSTC_KEY = 0xA5; RSTC->RSTC_CR = RSTC_CR_KEY(RSTC_KEY) | RSTC_CR_PROCRST | CR_PERRST; while (true); }

formatting link

Reply to
Giorgio

Il 10/02/2019 14:37, Giorgio ha scritto:

Ho letto tutto,

un monostabile retriggherabile e dagli un impulso, se si inchioda il

quantomeno una idiozia.

Reply to
El_Ciula

Dato che ho un cassetto pieno di arduini di vari tipi sono arrivato molto vicino a una cosa del genere.

di me" :D

--

   in crisi la nostra relazione! 
- Lo so cara, ma preferirei che tu non lo avessi 
   proprio.
Reply to
Archaeopteryx

Il 14/02/2019 22:49, Archaeopteryx ha scritto:

carta igienica...

Si sa che le cpu hanno punti deboli va usato qualcosa di concreto per tamponare e meglio dell'analogico non esite nulla al mondo. Mettimo che il blocco avvenga per spike o altro disturbo, calo alimentazione etc. non ti salva nulla se non lavorare in analogico.

Reply to
El_Ciula

Penso pure io che l'analogico abbia degli aspetti imbattibili da qualsiasi tecnologia digitale :)

--

   in crisi la nostra relazione! 
- Lo so cara, ma preferirei che tu non lo avessi 
   proprio.
Reply to
Archaeopteryx

ma cosa dici Ciula :) come fai con l'analogico a segnalare un circuito che non funziona ?

Anche un blocco da spike lo puoi segnalare immediatamente (dipende dal grado di sicurezza che vuoi ottenere)ed agire nel minor tempo possibile.

I costi del digitale sono calati moltissimo e vanno bene per "tutte" le sistuazioni.

Reply to
Franco Af

Non mi sono spiegato, si tratta di un pin dello stesso micro che produce "l'autoreset", non ci sono 2 micro. Giorgio

Reply to
Giorgio

Il 14/02/2019 11:44, Giorgio ha scritto:

[CUT]

------------------

Talvolta, non solo in circuiti ridondanti, e' comodo utilizzare dei moduli specifici per resettare il microcontrollore (specie senza uno specifico bootloader inserito).

Nel tuo caso, dato che parli di Arduino, dai un'occhiata a questo articolo che reputo decisamente interessante.

Se ne sei gia' a conoscenza non tenerne conto.

--

Ciao, Renato
Reply to
Renato_VBI

--

sapere come far funzionare la cose senza sapere come

alla teoria per riuscire a non far funzionare le cose senza capire come abbiamo fatto"

Reply to
Archaeopteryx

L'autoreset hard. proposto all'inizio funzionava benissimo, l'ho detto + volte. Adesso ne faccio a meno perche' ho trovato un semplice codice che usa il Watchdog per fare il reset soft.

void Software_Reset() { //============================================================================================

// // Parameter: keine // Rueckgabe: keine //============================================================================================ const int RSTC_KEY = 0xA5; RSTC->RSTC_CR = RSTC_CR_KEY(RSTC_KEY) | RSTC_CR_PROCRST | CR_PERRST; while (true); }

Reply to
Giorgio

Il 15/02/2019 17:44, LAB ha scritto:

il problema.

Probabilmente vi mancano 30 anni di rogne e disturbi su sistemi progettati bene a tavolino ma non visti nell'ambiente industriale dove poi sarebbero finiti.

I watchdog dei micro sono inaffidabili per definizione (basta capire bene come funziona un microcontrollore, e non se ne esce a nessun livello) figuriamoci poi se pilotati dallo stesso.

Il reset deve nascere da qualcosa di esterno che preveda generi appunto

dal micro non viene rispettato nei suoi parametri, ma deve essere in

(inchiodamento).

Per avere garanzie del 100% si usa l'analogico non ci sono alternative di nessun genere.

Reply to
El_Ciula

Il 15/02/2019 18:38, Giorgio ha scritto:

Funziona benissimo quando funziona...

Reply to
El_Ciula

Il 15/02/2019 18:44, El_Ciula ha scritto:

Motiva, please (richiesta non ironica, ma per sete di sapere, mejjio specificarlo, si sa mai...)

Reply to
RobertoA

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.