Go Down

Topic: ATMEGA644 in standalone non parte con alimentazione esterna (Read 3812 times) previous topic - next topic

superzaffo

Purtroppo devo aprire un altro topic per chiedervi una mano.
Ho su bradboard un 644 in stanalone con la linea di reset in serie con un cond. da 100nf e la linea dtr di un adattatore usb seriale.
Lo schema è il classico dello stand alone.. 2 cond. da 100nf nelle due linee di alimentazione del chip e il quarzo con relativi cond.
Le fonti di alimentazione possono essere 2, una da un 7805 alimentato a 12v e l'altra dalla usb. In mezzo tra i 2 un diodo che separa le due alimentazioni quando entrambe sono attive.
Il problema è che se io accendo il circuito via alimentazione usb.. tutto ok... Il led lampeggia per il caricamento del bootloader e parte uno sketch di esempio.
Mentre se io accendo il circuito via alimentazione esterna con il 7805, si vede che tutto è alimentato ma il led di caricamento bootloader non si accende. Si accende quando riaggancio l' usb. Se una volta partito il tutto, stacco l' usb, il circuito continua a funzionare.
Sembra che se alimento il circuito solo con il 7805 il reset non da il via al caricamento del bootloader, e appena la linea di reset sente il DTR della seriale, il 644 inizia a caricare il software.
E' Possibile ? Come fare per eliminare il problema ?
Grazie

leo72

Un diodo a separare le alimentazioni?
Te ne servirebbero 2, uno su ognuna delle linee VCC.

Ce l'hai uno schema elettrico?

superzaffo

Purtroppo ancora non ho uno schema. Dovevo iniziare a portare tutto su schema proprio questa sera, ma mi sono trovato questo problema  :~
Comunque per l' alimetazione vedi questo topic in cui Astro mi spiega la cosa. http://arduino.cc/forum/index.php/topic,145126.0.html
Ma il fatto è che si vede benissimo, tramite un led, che il chip viene alimentato.. se io stacco il positivo della seriale e quindi non alimento tramite usb, acendo l' alimentazione esterna e poi collego l' usb, vedi che parte.. Sembra proprio che sia un problema di reset.
Appena inizio a fare lo schema, te lo posto subito... ma per ora non c'è.. anche perchè ho un micro usb collegato, un sensore della temperatura, un lcd, un ds1307, un LM1117-33 per i 3.3v, un sensore dell' umidità, ecc... quindi ero proprio pronto a portare tutto su carta.  ;)

superzaffo

Solo per darti un dato in +.
Se io alimento da fonte esterna e porto a massa il reset con un bottone, tutto parte.

PaoloP

Se porti a massa il reset, resetti il micro. Pare ovvio che poi riparta, altrimenti sarebbe guasto.  :smiley-roll:
Sul reset c'è la pull-up?

leo72

Stacca tutto quello che non riguarda la parte alimentazione e reset, e fai uno schemino di queste 2, per capire cos'ha collegato e come.

Michele Menniti

ma il diodo in serie ad una delle due alimentazioni porta i 5V a 4,3V, hai pensato a questo? Comunque concordo, serve uno schema
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

paoloP@ : Chiaro che resetto il micro  ;) , ma infatti era appunto quello che volevo provare...  Capire se per partire gli serviva appunto un reset.
Leo@: Compatibilmente con i tempi liberi dal lavoro vi farò uno schemino veloce e "informale" così che possiate avere le idee più chiare.
Quello che comunque ho notato è che se l' alimento tramite 7805 e lo resetto, molte volte lo sketch parte ma poi si blocca. Mentre con l' alimentazione via usb questo non succede mai.
Questo circuito è ormai un paio di mesi che funzionava anche con alimentazione esterna, probabilmente ho collegato qualche cosa che gli rompe.. ma allora non capisco perchè con l' usb funziona.
Michele@ La tensione a 4.3 è appunto nell' usb, mentre quella che arriva dal 7805 rimane a 5. Ho provato anche a togliere il diodo a collegare direttamente l' alimentazione esterna.
Se riesco questa sera vi faccio lo schemino...

leo72

Probabile che ci sia qualcosa che non ci deve stare o che sia montato male.

Michele Menniti

considerando che il problema si verifica in base alla fonte di alimentazione, l'ipotesi più probabile non può essere ricercata in un componente o un collegamento "fastidioso", che riguarderebbe entrambe le alimentazioni, ma bisogna concentrarsi sull'alimentazione. Bisogna vedere come è messo questo diodo e soprattutto se le varie masse (GND) provenienti dalle due fonti di alimentazione e dal convertitore sono tutte collegate assieme a quelle del micro, una massa non collegata giustificherebbe pienamente questo comportamento.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

Leo@: Ok questo potrebbe essere, ma quello che non mi spiego è come mai con l' alimetazione usb non fa sta cosa.
Michele@:Le masse sono tutte collegate, una delle prime cose che ho controllato.
Quando si da tensione al chip, quali sono i passi che fa per fare lo start ed eseguire lo sketch ? in teoria dovrebbe subito caricare il bootloader, giusto ?
Potrebbe essere che una tensione insufficiente non faccia fare lo start corretto ?

Michele Menniti

le verifiche a questo punto vanno fatte con strumenti di misura e non ad occhio, quindi per le masse verifica la continuità, per il valore di alimentazione fissa i puntali il più vicino possibile al micro e poi dai alimentazione, così puoi vedere se all'avvio c'è un forte abbassamento della tensione, se così fosse una certa impostazione del BOD Level bloccherebbe il micro.
Hai messo i 4 condensatori tipici sul 7805? che valori hai usato? hai masso il C da 100nF direttamente sul pin di alimentazione del micro? hai collegato i due pin di alimentazione del micro tra di essi?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

Ho fatto uno schema MOLTO velocemente, così per poter parlare su un qualche cosa di più concreto  ;) quindi non guardate molto la forma.


PaoloP

Spero sia un errore del disegno.
Il GND a fianco di AREF è collegato a 5V, cosi come AVcc è collegato a GND.

superzaffo

Si si .. scusate.. Ho invertito i pin.. nella realtà sono corretti...  :smiley-sleep: se così non fosse penso che il micro non sarebbe resistito....
E' un disegno fatto in fretta...
Correggo e lo riposto...

Go Up