Perché cose come RESET / MCLR attive in basso sulla maggior parte dei circuiti integrati?


40

Convenzione?

Più facile da implementare?

Un'altra ragione?

C'è una ragione per cui cose come MCLR o RESET sui microcontrollori sono attive-basse, cioè è necessario abbassarle per ripristinare l'IC e alzarle per "far funzionare" l'IC.

Sono solo curioso perché questo mi provoca alcuni problemi. Se fosse attivo in alto, potrei evitare il condensatore su MCLR richiesto in alcuni casi e gestire solo un resistore pull-down. Sembra solo aggiungere alla complessità.


Come nota a margine, se non hai un buon terreno, anche il tuo terreno può oscillare. Se stavi utilizzando una configurazione a discesa, potresti ancora avere bisogno di un condensatore su MCLR.
Kellenjb,

Risposte:


49

Guarda cosa succede durante l'accensione: Vcc sale a un punto in cui è abbastanza alto da far funzionare tutto correttamente. Tuttavia, quel punto non è chiaramente definito e può variare da dispositivo a dispositivo. Ha senso non utilizzare questa tensione per ripristinare il controller.
È facile, tuttavia, mantenere un livello basso indipendentemente da Vcc. Dopotutto, Reset è già attivo nel momento in cui si accende l'alimentazione, poiché in quel momento tutto è a un livello basso.

modifica
Il grafico seguente mostra come la tensione di uscita del controller di ripristino (come un MC34064 ) rimanga bassa fino a quando Vcc è abbastanza alto da mantenere stabile il microcontrollore completo.

testo alternativo


Questo è quello che stavo per chiedere.
Kortuk,

-1 - È altrettanto facile mantenere un livello alto indipendentemente da Vcc. Utilizzi un transistor pullup o un resistore, allo stesso modo in cui utilizzeresti un transistor o un resistore pulldown. Il tuo argomento non dice nulla di speciale sulla differenza tra le tensioni sui pin dell'alimentatore. All'accensione, si allontanano e i livelli logici validi sono relativi alla tensione di alimentazione.
Jason S,

1
@Jason: ha più senso mantenerlo ad un livello che è sempre chiaramente definito piuttosto che fare affidamento su un livello in costante cambiamento.
Stevenvh,

8
Vcc e Gnd stanno entrambi cambiando l'uno rispetto all'altro. È solo una convenzione che pensiamo a Gnd come "costante" quando in realtà sono i due l'uno rispetto all'altro. Vcc sta cambiando rispetto a Gnd solo perché la pensiamo in questo modo, piuttosto che Gnd aumenta negativamente rispetto a Vnd.
Jason S,

26

Wikipedia dice :

Molti segnali di controllo in elettronica sono segnali attivi-bassi (di solito linee di ripristino, linee di selezione del chip e così via). Ciò deriva dal fatto che la maggior parte delle famiglie logiche può sprofondare più corrente di quanta ne riescano a procurarsi, quindi aumentano la fanout e l'immunità al rumore. Consente inoltre la logica OR cablata se le porte logiche sono open-collector / open-drain con una resistenza di pull-up. Esempi di questo sono il bus I²C e la Controller Area Network (CAN) e il PCI Local Bus. La segnalazione RS232, utilizzata su alcune porte seriali, utilizza segnali attivi-bassi.

Spero che sia di aiuto.


7
Il motivo per cui l'affondamento è più semplice, è perché i MOSFET a canale N (usati per affondare in CMOS) hanno una migliore mobilità del vettore (il flusso di elettroni è migliore dei fori)
Nick T

2
Non ne sono del tutto sicuro; la maggior parte dei circuiti integrati al giorno d'oggi può assorbire ± 20 mA, e importa davvero? 4.7k (tip.) Sarà inferiore a 1mA, come può fare la maggior parte dei circuiti integrati.
Thomas O

3
@Thomas - 'Affondamento ± 20mA' non è un modo preciso per affermare cosa succede. Le correnti di source e sink passano attraverso transistor separati, che hanno specifiche diverse per una determinata area di chip.
Kevin Vermeer,

@reemrevnivek - Scusa, errore mio, credo che l'affondamento / approvvigionamento sia più appropriato. Ma in entrambi i casi, possono sprofondare e procurarsi molta corrente.
Thomas O

3
anche se le parti di oggi sono più robuste, ormai potrebbe essere solo una convenzione.
JustJeff

8

Oltre alla risposta di Igor, ci sono due motivi minori per cui vengono utilizzati segnali attivi-bassi:

  • Oltre alla quantità di corrente di dispersione disponibile superiore alla corrente di sorgente, è più facile per i circuiti TTL produrre una tensione vicina alla terra (solo una caduta di Vce) rispetto a una tensione vicina a Vcc (caduta di Vbe + di solito un po 'più ).

  • È più facile per i circuiti passivi esterni (ad es. Pulsanti o finecorsa) produrre in sicurezza un segnale basso attivo: basta usare una resistenza di pullup sull'estremità di ricezione e sull'estremità della sorgente esterna, cortocircuitare il nodo del circuito in questione con il potenziale di terra. Se si utilizza un segnale alto attivo, è necessario rendere Vcc disponibile per quei circuiti esterni, il che comporta il rischio che il nodo Vcc sia in cortocircuito verso massa.


4

Affondare di più a livelli bassi e segnali attivo-basso in generale risale ai giorni del TTL - ora è solo una convenzione comune. Non c'è motivo di cambiarlo.


2

Non è raro che diverse parti di un sistema siano alimentate da diversi materiali di consumo che condividono un terreno comune. Ciò può essere dovuto al fatto che alcune parti necessitano di 3,3 volt, mentre altre richiedono 2.0 o 5.0, perché alcune parti potrebbero dover essere accese e spente separatamente da altre, poiché alcune parti potrebbero generare un livello di rumore elettrico sui loro alimentatori che altre parti non sarebbero in grado per tollerare, ecc. In alcuni casi, i circuiti che generano un ripristino potrebbero non funzionare o essere controllati dalla stessa alimentazione che gestisce la CPU. Avere il generatore di reset su un alimentatore diverso dalla CPU non è un problema se si utilizza un reset attivo-basso e la CPU può tollerare livelli di tensione superiori a VDD o la linea di reset può essere debolmente elevata da qualcosa collegato all'alimentazione della CPU .

Ad esempio, immagina una CPU da 3 volt che è interfacciata con chip da 5 volt. Il circuito esterno non funzionerà in modo arbitrario se VDD scende al di sotto di 4,75 volt e richiederebbe la reinizializzazione dopo che la tensione sale oltre quel punto. La CPU stessa potrebbe essere in grado di eseguire correttamente il codice se la tensione di alimentazione principale scende a 3 volt, ma potrebbe non essere in grado di fare nulla di utile; il modo più pulito per garantire che l'hardware esterno venga inizializzato dopo che VDD supera i 4,75 volt sarà quello di ripristinare la CPU ogni volta che VDD è al di sotto di quel punto. Usare un chip di reset open collector e un pullup passivo sul VDD della CPU sarebbe l'approccio più semplice.

L'unico svantaggio di questo approccio alla gestione del reset è che un pull-up passivo consumerà continuamente corrente mentre il sistema è in reset. Nei sistemi alimentati dalla rete, i dispositivi di accumulo dell'energia [condensatori] si aspettano di essere scaricati completamente asciutti senza danni. Nei sistemi alimentati da batterie ricaricabili, tuttavia, scaricare la corrente da una cella scarica può causare un'eccessiva usura. Anche nei sistemi alimentati da batterie usa e getta, l'assorbimento continuo di corrente può aumentare in modo indesiderato il rischio di "sfiato" delle batterie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.