Domanda:
Funzionamento di un ATmega328P-PU a 2,5 V.
fazzitron
2014-09-19 23:54:08 UTC
view on stackexchange narkive permalink

Per il mio lavoro, mi è stato assegnato il compito di creare una scheda per interfacciarsi con un dispositivo da 2,5 V che abbiamo realizzato. Quindi, per mantenere le cose semplici, ho deciso di interfacciarlo con un ATmega328P-PU che esegue il firmware Arduino a 2.5V. Tutte le specifiche dicono che il chip ha una tensione operativa di 1,8 V-5,5 V, quindi non mi sono preoccupato di testare alcun circuito a 2,5 V fino ad oggi. È stato un errore stupido.

Stavo testando la configurazione a bassa tensione eseguendo il semplice schizzo di lampeggiamento su una breadboard e ho scoperto che avrebbe smesso di funzionare appena sotto 2,7V. L'alimentatore mostrerebbe anche l'assorbimento di corrente di 0 mA rispetto ai 2 mA che mostrava prima. Ho controllato il pin con un multimetro digitale e il LED scollegato per confermare che nessun output provenisse dal pin.

Dopo alcune ricerche, ho trovato un sito che sembrava dire che, a tensioni inferiori, è necessario correre a una velocità inferiore. Quindi, ho bruciato il bootloader per fare in modo che il chip usasse l'oscillatore interno da 8 Mhz. Tuttavia, si spegne comunque al di sotto di 2,7 V.

Come posso accedere a queste tensioni inferiori? Immagino che questo abbia a che fare con l'impostazione dei fusibili interni, ma non riesco a trovare nulla al riguardo. Sono ben all'interno della tensione operativa sia per i pin I / O che per la barra di alimentazione. So che può funzionare a 2,5 V poiché Arduino BT può avere una tensione di ingresso fino a 2,5 V. C'è qualcosa che sto dimenticando?

Due risposte:
fazzitron
2014-09-19 23:57:11 UTC
view on stackexchange narkive permalink

Mi sono appena reso conto che, durante la mia ricerca, ho visto persone menzionare il rilevamento del calo di tensione. Ho cercato e questo sembra essere il problema.

http://openenergymonitor.org/emon/node/342

EDIT: per quelli curiosi, cambiano i fusibili estesi a 0x06 per abbassare la tensione di abbassamento a 1.8V.

Spehro Pefhany
2014-09-20 03:39:32 UTC
view on stackexchange narkive permalink

Con una tensione di alimentazione nominale di 2,5 V, è necessario limitare la frequenza di clock a forse 7 MHz (a seconda della tolleranza sull'alimentazione di 2,5 V). Non sono un appassionato di Arduio, ma credo che almeno alcune incarnazioni funzionino a 16MHz. Vedi questo:

http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

Come hai notato, il BOD deve essere impostato su un valore appropriato o disabilitato (e se è disabilitato tu probabilmente vorrei utilizzare un chip supervisore esterno).

http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

Nota che con l'impostazione 0x06 (l'unica impostazione possibile in cui BOD è abilitato) non è garantito che BOD funzioni correttamente, anche con frequenza di clock di 4MHz perché non sarà necessariamente attivo fino a quando la tensione di alimentazione non scende a 1.7V.

Quindi, se desideri un design affidabile, dovresti disabilitare il BOD e utilizzare un chip supervisore esterno, come ADM811, e limitare la frequenza di clock al minimo voltaggio possibile del circuito di vigilanza.

http://www.analog.com/static/imported-files/data_sheets/ADM811_812.pdf

Nel caso precedente, è 2,25 V, quindi circa 6-7 MHz (o meno) sarebbero sicuri.

Ah, grazie per quello!Il grafo!Avevo trovato originariamente tagliato prima di 2,5 V.Tuttavia, i miei calcoli impostano la frequenza di clock massima a circa 8,67 MHz.Quindi, penso che dovrei stare bene.Tuttavia, ne terrò conto per i progetti futuri. Non sono certo che il rilevamento del brownout sia una necessità poiché il nostro prodotto è solo una semplice demo.Ciò è particolarmente vero dato che il nostro dispositivo non si accende nemmeno sotto i 2,2 V.
Non vedo quale sia il punto di avere un BOD che non è garantito per funzionare.È come se volessero che funzionasse, ma hanno scoperto nella caratterizzazione che non era abbastanza buono, ma l'hanno lasciato comunque nei documenti.P.S.sì, 8,67 MHz è corretto per un minimo di 2,5 V.V = ((f-4) / 6) * 0.9 + 1.8 ma a 8.00MHz la tua tolleranza sui 2.5V non deve essere peggiore del -4% sulla fascia bassa.
Non sono sicuro di cosa intendi.Il BOD funziona ancora resettando Arduino a 1.8V.È il dispositivo che stiamo presentando che non si accende sotto i 2,2 V.Ma è per questo che abbiamo batterie sostituibili.Non è l'ideale, ma avevamo bisogno di una demo rapida.
@Seth_L Nel peggiore dei casi non lo reimposta fino a 1.7V (Tabella 29-17).Atmega ** non ** ** garantito ** per funzionare (a qualsiasi frequenza) al di sotto di 1.800V.Probabilmente funzionerà, a temperatura ambiente, ecc. Per la tua demo, ma come ingegnere, devo gridare male per questo genere di cose.
Lo so, non è affatto l'ideale.Ho rabbrividito quando ho calcolato la durata della batteria.Ma funziona per una semplice demo che mi ha insegnato alcune cose che non sapevo.La prossima revisione sarà meno degna di rabbia.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...