Abbattimento tensione minima

Ciao a tutti, sono un nuovo iscritto, lavoro in ambito informatico ed elettronico (pi=F9 informatico a dire il vero :)), e mi piacerebbe condividere ci=F2 che so nonch=E9 imparare nuove cose.

Inizio col sottoporre un problema piuttosto banale, ma per me mica tanto. :) Sto giochicchiando con una MCU, montata su una scheda multifunzione, che per=F2 ha uno strano comportamento quando la tensione di alimentazione si abbassa di un certo range per poi ristabilizzarsi. In parole povere, la cpu lavora in un range da 3.3V a circa 2V, ma se questa scende per un istante al di sotto dei 2V (senza toccare lo zero) per poi tornare a 3.3V, la cpu si blocca. A monte di tutto c'=E8 un tradizionale regolatore di tensione (LM317 / LM1086) con qualche condensatore di disaccoppiamento. La cpu assorbe da qualche mA fino a circa 30mA.

Per risolvere la faccenda ho tentato di montare un grosso condensatore in parallelo all'alimentazione (elettrolitico da 220uF), ma paradossalmente ottengo l'effetto contrario: in temporanea mancanza di alimentazione, questa tende a scendere ancora pi=F9 lentamente mantenendo pi=F9 a lungo quella sottosoglia critica. Quindi mi era venuta un'altra idea, ovvero quella di utilizzare qualcosa che tronchi la tensione a zero quando questa scende sottosoglia (2V), ma sinceramente ho ben poca esperienza in merito. Utilizzando un diodo zener (con una Vz pari a 2/3V) in serie all'alimentazione ma montato al contrario potrei risolvere il problema?

Grazie in anticipo a chi vorr=E0 aiutarmi. Ciao, Marco

Reply to
Mark
Loading thread data ...

...

Sarei meravigliato del contrario. La tensione di alimentazione =E8 fondamentale per il corretto funzionamento. Non solo sotto una certa soglia il funzionamento cessa od =E8 imprevedibile, ma =E8 sufficiente un ripple mediocre per rendere critico il sistema. Di solito, a bordo del micro risiede un supervisore di tensione in grado di generare reset in caso di sottotensione. E' la cosa migliore visto che l'alternativa =E8 il bloccaggio od il funzionamento random. Queste funzioni vengono assolte anche da componenti esterni ormai molto comuni (di solito 3 pin, simili a transistor). Altri chip integrano la funzione assieme a stabilizzatori di tensione e watchdog.

...

Devi generare semplicemente un segnale di reset sul micro. Forse trovi qualche applicazione di reset-generator con gli NE555, molto comuni. Senn=F2, consiglio i chip dedicati. Attenzione agli zener: quelli per basse tensioni sono piuttosto imprecisi e con pendenze scadenti. Meglio valutare un TL431 (o LM431) che =E8 uno zener controllato.

Piccio.

Reply to
Piccio

Ti sembra strano?... Come dovrebbe comportarsi, secondo te?

Reply to
LAB

Mi sembra strano poich=E9 nel datasheet della mcu, nelle varie applicati>Devi generare semplicemente un segnale di reset sul micro.

Avevo pensato anche a questo, e sarebbe la soluzione pi=F9 efficiente. Per=F2 non ho modo di metterci le mani poich=E9 =E8 tutto assemblato in una scheda microscopica. L'unica alternativa =E8 lavorare agendo direttamente sull'alimentazione : ( Grazie della dritta riguardo l'LM431 !

Reply to
Mark

Di quale microcontrollore si tratta?

Devi usare il circuito di reset interno, chiamato brown-out reset. In generale i microcontrollori ne hanno uno. Il circuito pone in reset la cpu fintanto che la tensione è sotto una certa soglia, la quale spesso è regolabile dall'utente. Per attivare il circuito è necessario (spesso) agire sulle impostazioni di inizializzazione, comunemente chiamate fuse bits. Prova a controllare il datasheet della MCU in proposito.

Se il micro non ha un sistema di brown-out reset, devi usarne uno esterno. Devi inserire un voltage monitor, come ha consigliato Piccio. Ti sconsiglio però NE555, la cui alimentazione non può scendere sotto

4.5V, ed anche lo zener in serie all'alimentazione non mi sembra una soluzione sicura. Di integratini ad hoc ce ne sono centinaia. Per esempio, io con il TPS3106K33 mi sono trovato molto bene:
formatting link

Ciao, Alessandro

Reply to
AlessandroDallai

MC13224V della Freescale.

Ti cito testualmente il datasheet perch=E9 questa =E8 bella:

"After release of the hardware RESETB signal, the CRM will perform a power up sequence of the MCU after the POR. The linear regulators and clock sources are managed for a graceful start-up of the MCU and its resources. To guarantee a proper start-up procedure, there is a power- on reset circuit that holds the equivalent of an active reset signal until the VBATT voltage reaches a minimum threshold voltage. The POR will then be released to allow the device start-up sequence to proceed."

Inizio a temere che vi sia un piccolo bug hardware relativamente a questo.

S=EC, e sarebbe la soluzione pi=F9 efficiente. Ma il tutto =E8 in SMD in un= a piccolissima scheda, l'unico modo che ho per agire =E8 quello di lavorare a monte di tutto sull'alimentazione. Naturalmente nella futura ristampa della scheda terr=F2 sicuramente conto di un reset esterno, ma ora ho necessit=E0 di risolvere alla meglio, basta che funzioni. :/ (grazie per la dritta del TPS3106K33, me lo segno :) )

Ieri ho trovato questo schemino che sfrutta il TL431:

formatting link
(Voltage Monitor Circuit) Una prova penso di farla comunque come reperisco questo componente, anche se questa citazione mi ha lasciato qualche dubbio: "The resistor labelled R4 in parallel with the LED prevents the LED from glowing softly when the input voltage is still below the switch-on voltage". Ci=F2 che mi serve, infatti, =E8 che al di sotto della soglia la tensione cada bruscamente.

Vi far=F2 sapere.

Reply to
Mark

Ciao, ho scaricato il datasheet dal sito Freescale. Documento MC1322x rev1.3 Purtroppo il testo che citi tu non l'ho trovato. Ovvero c'è una sezione che riporta questo:

Reset and power up - After release of the hardware RESETB signal, the CRM will perform a power up sequence of the MCU. The linear regulators and clock sources are managed for a graceful start-up of the MCU and its resources. The radio is not powered until needed

Dunque non c'è cenno ad un circuito di monitor della tensione. Anche dal testo che citi tu, sembrerebbe quasi di capire che il mantenimento del reset avvenga solo all'inizio, dopodiché la tensione non verrebbe più monitorata. Se comunque non fosse così, dovresti controllare se l'alimentazione è collegata al pin VBATT, il quale sembrerebbe l'unico ad essere monitorato.

Quello è solo un esempio. Texas Instruments, come altri produttori di integrati, hanno a catalogo centinaia di voltage monitors. Alcuni hanno solo tre pin. Se riesci a raggiungere il resistore di pull-up (hai detto che è presente) che è collegato al pin di reset del micro, con tre fili te la cavi egregiamente.

Guarda questo: TLV803S,

formatting link
E' un monitor a 3pin, con tensione di soglia 2.93V

Ciao, Alessandro

Reply to
AlessandroDallai

Se non ci metti una "giusta" R prima dell'elettrolotico, o se vuoi un diodo sckottky che fa bassa caduta, difficilmente riesci a tenere alta la tensione. Fissa un costante di tempo che sia ad esempio 5 volte il tempo durante il quale ti cade la tensione, chiamala dt. Se usi una R poni che sia dt=3RC, fissato C ottieni il valore della R. Col diodo diodo c'e' pero' la caduta di circa 0,3 volt fissa che non so se ti disturba. Questo senza voler sottovalutare i suggerimenti + professionali che ti hanno gia' fornito

Giorgio

Reply to
Giorgio Padoan

Sto usando la revisione 1.4 del 10/2010, pagg 30, 106. VBATT =E8 connesso all'alimentazione, certamente. Comunque sia credo che tu abbia ragione, tutto fa pensare che vi sia un controllo allo startup ma poi nulla durante il normale funzionamento.

Uhm... aldil=E0 del problema di raggiungere facilmente il pin di reset (ne dovessi lavorare soltanto una di queste schede...), mi hai fatto venire un'idea. E se utilizzassi un monitor a tre pin, ma connesso ad un transistor che a sua volta pilota il ground del micro? Probabilmente con quattro componenti in croce riuscirei a soddisfare la richiesta in oggetto. Non so, l'ho buttata l=EC. :)

Reply to
Mark

Hai ragione, ho cannato alla grande dimenticandomi le basi dell'RC. :D Aldil=E0 di questo, per=F2, ho abbandonato subito per una considerazione logica: posso certamente allungare il tempo di mantenimento alimentazione, ma sempre che dopo un tot di tempo cade con una rampa, ritrovandomi il medesimo problema ma soltanto shiftato di qualche secondo. Grazie comunque per l'aiuto. :)

Reply to
Mark

...

...

Puoi usare l'ADC e monitorare periodicamente la tensione di alimentazione. In caso di sottotensione imminente puoi salvare i dati e mettere la CPU in power-down (ovvero, fermare il clock). La CPU resta bloccata ma in un punto ben definito senza creare danni. Non ho letto tutte le 500 pagine del datasheet ( :-), ma forse =E8 possibile senza intervenire a livello hardware a porre come Vref la tensione di alimentazione Vdd e come input analogico un valore bandgap generato internamente al chip. Con questi due valori =E8 molto semplice dedurre la tensione, ancor pi=F9 semplice definire a priori un valore e determinarne periodicamente lo sconfinamento.

Piccio.

Reply to
Piccio

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.