I microcontrollori hanno sostituito i circuiti integrati più semplici?


37

Vale ancora la pena imparare, ad esempio, come mettere a punto un timer 555 con resistori e condensatori, quando è possibile scrivere un programma timer per un microcontrollore in un linguaggio di programmazione leggibile dall'uomo?

Oppure, per dirla in altro modo, ci sono problemi che i circuiti integrati sono buoni per i microcontrollori che non lo sono?


4
@ jes5199 - Non sono sicuro di come questa domanda meriti un meta tag; puoi commentare la tua logica?
J. Polfer,

3
la mia idea era che non stavo facendo una domanda su un problema specifico, ma sull'intero campo. Mi è sembrato un piccolo meta.
user955

Un circuito stampato con componenti discreti e un chip etichettato come un timer 555 è molto più leggibile dall'uomo rispetto al programma memorizzato su un chip.
Kaz,

Risposte:


35

Principalmente, i microcontrollori hanno sostituito i circuiti integrati discreti. Trovo che anche se potessi progettare un circuito con un 555, è probabile che lo stesso circuito dovrà essere modificato in poche settimane per fare qualcos'altro, e un micro conserva quella flessibilità.

Ma ci sono alcune eccezioni.

La logica discreta è ancora più veloce della maggior parte dei microcontrollori. Il ritardo di propagazione e i tempi di commutazione per la logica discreta sono compresi nell'intervallo 1-10 ns. Per abbinarlo a un microcontrollore, devi essere in grado di implementare la logica di cui hai bisogno in 1 istruzione e disporre di un clock nell'intervallo da 100 MHz a 1 GHz. Puoi farlo, ma forse non su una breadboard nel tuo garage.

Un buon esempio di ciò è il decodificatore di quadratura HCTL2020. Prende due serie di impulsi e ti dice in che modo gira il tuo motore. È implementato come chip non programmabile per motivi di velocità.

Un'altra area interessante in cui la logica digitale e i microcontrollori falliscono è il filtraggio del segnale. Se si dispone di un segnale analogico che si desidera filtrare in modo digitale, è necessario campionarlo a una certa velocità. Indipendentemente dalla velocità con cui lo campionate, il rumore nel segnale che appare a frequenze superiori alla metà della frequenza di campionamento verrà ridotto a frequenze più basse, dove potrebbe interferire con il segnale. È possibile risolvere questo problema con un filtro passa-basso, costituito da un cappuccio e un resistore, prima che si verifichi il campionamento. Dopo il campionamento, sei fregato. (Naturalmente, spesso accade che il rumore non si sovrapponga al segnale in frequenza, quindi un filtro digitale funzionerà alla grande.)


> La logica discreta è ancora più veloce della maggior parte dei microcontrollori. A meno che non si stia utilizzando un Cypress PSoC3.
Rocketmagnet,

3
@Rocketmagnet - Il PSoC, come un FPGA, è ancora una logica grezza. Non è discreto, certo, ma è altrettanto veloce.
Kevin Vermeer,

29

Stranamente, ho appena avuto una delle nostre fabbriche cinesi che cercavano di aggiungere un micro a un progetto in cui era totalmente eccessivo, e ho detto loro di usare invece un 555. Un 555 costa forse 6 centesimi, contro un microcontrollore economico per 60 centesimi. Quando realizzi prodotti in grandi quantità, questa differenza di costo è importante e vorrai sicuramente sapere come utilizzare l'IC più economico. Quindi sì, sono migliori a costare meno. :)


12
Puoi anche aggiungere affidabilità a questo. Ogni software ha un bug rimanente dopo che l'ultimo è stato rimosso.
stevenvh

13

Un'area in cui la logica discreta batte ancora i micro è la stabilità delle parti a lungo termine.

Questa micro sarà disponibile tra 10 anni? 20? L'IDE e la toolchain lo supporteranno ancora in quel momento?

Puoi praticamente garantire che la logica discreta sarà ancora logica discreta in futuro. Micros, non tanto. Se si sta progettando un prodotto che si prevede abbia una lunga durata di produzione, una logica generica e il più possibile, le parti generiche ridurranno la necessità di ridisegnare il dispositivo quando la disponibilità delle parti cambia.

Inoltre, non sei SOL se il produttore del chip è in arretrato. Molte persone creano una logica generica compatibile, mentre praticamente non esiste un micro generico.


11

Spesso è più economico usare circuiti discreti per svolgere un semplice compito. Ad esempio, un LED lampeggiante. Il PIC più economico, un PIC10F200, è di circa 0,35 US $ in 5ku, e questo prima dei costi di programmazione e tenendo conto delle dimensioni ridotte (e dei problemi associati con la produzione.) Un timer NE555, d'altra parte, può essere prelevato per circa gli Stati Uniti $ 0,10 da TI in 5ku e una soluzione completa peserebbe probabilmente intorno a $ 0,20.

Un'altra cosa da tenere in considerazione è che i microcontrollori sono intrinsecamente dispositivi digitali. Certo, la maggior parte ha ADC e alcuni hanno persino DAC, ma funzionano ancora su unità di tempo discrete e lavorano su singoli bit e byte. Un circuito analogico può essere sintonizzato precisamente per fare ciò di cui il progettista ha bisogno perché in teoria l'analogo ha una risoluzione infinita **. Un circuito digitale è limitato dal suo componente più lento.

Infine, c'è il problema dell'offerta. Tornando al mio primo esempio, il NE555. Questo è in circolazione da più di 20 anni e probabilmente sarà in giro per altri 50 dopo questo. È una parte così gelatinosa che probabilmente sarà prodotta per sempre (o almeno fino a quando gli elettroni convenzionali non diventeranno obsoleti nell'elettronica). Considerando che un PIC10F potrebbe essere reso NRND in qualsiasi momento. Con un unico fornitore come Microchip, esiste un rischio significativo che potrebbe rovinare un prodotto.

** Va bene, questo non è del tutto vero. In realtà, siamo limitati alla risoluzione degli elettroni. 1 ampere = 6,24 × 10 18 elettroni / secondo. Quindi la migliore risoluzione attuale che puoi ottenere è l'attoampere, ovvero 10 ^ -18 ampere, che è di circa 6 elettroni al secondo. Ma per scopi pratici, questo va bene. :)


4
stai confondendo la risoluzione con precisione, un errore spesso commesso. Non ha senso avere> 10 cifre di risoluzione se la deriva fa sì che la precisione effettiva sia solo doppia cifra. La soluzione digitale può avere una precisione maggiore nonostante abbia una risoluzione discreta e quindi più limitata .
Stevenvh,

8

Non dimenticare la logica programmabile: CPLD e FPGA. Sostituendo la logica discreta con un CPLD non si è influenzati dalla sospensione delle parti e si possono ottenere molte più prestazioni, dimensioni ridotte e costi inferiori. Se si dispone di un FPGA nel sistema, è possibile implementare un soft core al suo interno, che può essere facilmente aggiornato se i requisiti cambiano e il tutto può essere facilmente reso "a prova di futuro".


6

Imparerei in classe a mettere a punto un timer 555 come conoscenza "per ogni evenienza". È lo stesso che la gente dice "Ho vissuto tutta la mia vita bene senza algebra, perché la stiamo insegnando ai bambini?" Se non sai come utilizzare uno strumento, non vedrai mai un problema a cui può essere applicato.

Per quanto riguarda una risposta specifica: al giorno d'oggi la logica digitale molto veloce è implementata negli FPGA / ASIC perché sarebbe troppo lenta su un microcontrollore / processore (a meno che non fosse un processore appositamente progettato come un DSP).


6

Nel mio attuale progetto stiamo usando un chip Marvell ARM9 funzionante a 500Mhz con un FPGA per offrire molte porte DIO. Tuttavia, ci sono cose che sono gestite in una logica discreta. Ad esempio, è necessario un controllo del motore passo-passo per 4 motori passo-passo controllati singolarmente. C'è un oscillatore per generare una frequenza con un contatore che consentirà il passaggio di un numero di impulsi. Il contatore viene impostato dal microcontrollore, ma quindi funziona senza ulteriori controlli dal microcontrollore, dandogli il tempo di lavorare su altre attività.

Avremmo potuto optare per più microcontrollori. Ma un controller centrale che funziona con la logica discreta tradizionale può rivelarsi una soluzione potente e molto affidabile.

Inoltre, se hai un problema chiaramente definito, la soluzione dovrebbe essere sempre il più semplice possibile, ma non più semplice (citazione nascosta lì ;-)). Se un 555 funziona, perché non dovresti usarlo? La flessibilità potrebbe essere un argomento come qualcun altro ha optato, ma potrebbe non esserlo. Tutto dipende dal tuo problema e dalla tua interpretazione di quale sia la soluzione più semplice.


1
Penso che il tuo FPGA expander I / O sarebbe un ottimo posto per la parte "logica" di un controllo stepper.
Chris Stratton,

5

Mi vengono in mente le applicazioni di comunicazione ad alta frequenza. Anche se ora abbiamo una "radio definita dal software", sarebbe molto sorprendente se l'elaborazione del segnale a 100 MHz + non avesse ancora almeno alcuni stadi analogici.


4

Pochissimi dei miei recenti progetti di microcontrollori hanno richiesto una logica discreta. Un'eccezione era l'implementazione di un tipo di reset Ctrl-Alt-Canc in base al quale premendo due tasti specifici su una tastiera personalizzata per due secondi si sarebbe verificato un hard reset del micro. Ho usato una porta NOR (utilizzata come porta AND con 2 ingressi invertiti), una porta AND e una 74HC123. È stato conveniente essere in grado di ottenere le porte specifiche di cui avevo bisogno in porte singole in un pacchetto SMT, invece delle 4 porte / pacchetto nei giorni DIP.


4

Ho avuto la possibilità di essere uno sviluppatore di software per anni e ora lavoro come ingegnere elettronico.

Qualsiasi sistema con complessità viene fornito con errori e bug. Sia i microcontrollori che i circuiti integrati presentano i loro vantaggi e svantaggi in base alle loro aree di utenza.

Per i progetti su piccola scala i circuiti integrati sono più veloci, più economici e più affidabili dei microcontrollori. Per i progetti su larga scala con milioni di input, analisi e logiche di confronto, i microcontrollori hanno sicuramente un vantaggio rispetto ai circuiti integrati.

Tutti i software falliscono ad un certo punto, anche il codice bugsless è soggetto a modifiche perché viene salvato su una ROM, causando errori logici (ad esempio, perdite di memoria) che sono difficili da rilevare ma a volte finiscono in catastrofi.

Ai sistemi basati su software a prova di proiettile da guasti in applicazioni critiche (come sistemi di livello militare o salvavita come i sistemi di controllo dei treni), vengono implementati e sviluppati concetti "fail safe".

I sistemi sicuri non ripristinati a uno stato sicuro nel caso si verifichi un errore eccezionale. Di solito due processori eseguono lo stesso codice, confrontano i risultati di ciascuna istruzione e, se sono uguali, l'istruzione viene eseguita. In caso contrario, il sistema utilizza relè elettrici fisici per ripristinare uno stato sicuro.

I sistemi basati su software fail-safe sono utilizzati nei sistemi di interblocco dei treni e ATP (protezione automatica dei treni).

Progettare lo stesso sistema complesso con Ics è un grande mal di testa per qualsiasi ingegnere. Ed è per questo che il software è stato progettato dal primo giorno!


3

I circuiti integrati possono essere molto specifici del dominio. Sto pensando a un decoder DTMF. Potrei programmare un microcontrollore per decodificare le due frequenze, ma è più facile, veloce ed economico usare un chip standard.

Penso che sia importante avere una conoscenza sufficiente di tutti gli strumenti per sapere quale strumento utilizzare.


Dipende ovviamente dal fatto che in ogni caso sia necessario un microcontrollore nel circuito. Di recente ho avuto un progetto in cui avevo bisogno di un decoder DMTF. Le chips costano circa il dollaro in quantità. Anche la differenza di prezzo tra un PIC24F o un equivalente dsPIC33F (che ha anche un DSP) era di circa un dollaro in quantità. Le routine DSP del decoder DTMF erano prive di Microchip. Inoltre ora ho un DSP per altre cose.
Tcrosley,

Cordiali saluti, ho scritto un decoder DTMF abbastanza buono per un PIC 16C622 qualche anno fa, usando solo il comparatore come input.
supercat

3

C'è una grande differenza tra la progettazione di qualcosa utilizzando solo componenti discreti rispetto all'uso di un micro controller; il software ha dei bug. Se l'affidabilità è un aspetto importante, è possibile verificare la progettazione di qualcosa fatto di componenti discreti. Neanche Knuth osa sostenere che il suo software è privo di errori.

Naturalmente, anche il tuo progetto potrebbe avere errori e potrebbero apparire solo in casi molto rari, ma saranno più semplici da capire e correggere. È possibile che il software fallisca in modi estremamente oscuri e non ovvi, che non troverai mai.


2
Poiché i componenti discreti in questo caso probabilmente significano circuiti integrati e non transistor, cosa ti fa pensare che i circuiti integrati siano privi di bug? Un software ben scritto finisce con i bug non perché è un software, ma perché risolve requisiti complicati: anche una versione cablata potrebbe essere difettosa. Una volta trovato un bug, è più economico distribuire correzioni al software che modificare PCB, a meno che tu non abbia avuto qualcuno che brucia un grande inventario di micro OTP per te. Puoi addestrare qualcuno a collegare un cavo programmatore e obbedire alle regole ESD molto più velocemente di quanto tu possa addestrare per essere bravo a rielaborare i PCB SMT.
Chris Stratton,

I circuiti integrati esistono in tutti i tipi di livelli di complessità, inclusi i microcontrollori. La probabilità di errori in un IC è proporzionale alla complessità dell'IC. La domanda riguardava i circuiti integrati più semplici come il timer 555, e penso che la probabilità cumulativa di un tale circuito integrato e di componenti aggiuntivi di avere errori sia molto inferiore alla probabilità che il microcontrollore li sostituisca con errori. Ovviamente se si sostituiscono 1000 componenti con un microcontrollore, le probabilità probabilmente cambieranno, quindi l'immagine non è completamente in bianco e nero. Ma per qualsiasi dispositivo LED lampeggiante o simile che io ...
hlovdal

... percepisco questa domanda, credo ancora che i componenti discreti abbiano il potenziale per essere più affidabili. E per errori software, non sono deterministici. Ovviamente nulla è garantito al 100%, ma se si implementa un controller semaforo con componenti, è possibile verificarlo e dispiegarlo, sapendo che continuerà a funzionare per X anni fino a quando l'usura fisica renderà l'unità probabilmente in avaria e sostituirà con una nuova unità ben prima. Non è possibile stimare che il software funzionerà in modo affidabile per qualsiasi periodo di tempo.
hlovdal,

Software di complessità comparabile ad alcuni discreti possono, sulla CPU appropriata, essere matematicamente testati. Una logica discreta di complessità comparabile a un software più comune non può davvero essere resa completamente sicura contro i non immaginati - anche se spesso in entrambi i casi è possibile utilizzare ulteriore complessità per fornire alcune sicurezze di backup nel caso in cui il meccanismo primario non funzioni.
Chris Stratton,

3

La risposta è si!

È necessario considerarlo come un progettista hardware con orientamento ai costi di produzione. Il 555 è un vecchio IC considerato molto semplice. Se sei un EE più probabilità l'hai visto più volte nelle lezioni di elettronica digitale. La configurazione è molto semplice in quanto è necessario risolvere 2 o 3 formule per le applicazioni più comuni. Questo non richiede quasi tempo (dal momento che conosci già la parte e come usarla e la matematica è facile). Il tempo necessario per configurare lo sviluppo anche per un MCU a 8 bit e convalidare il software potrebbe richiedere da giorni a mesi, a seconda dell'ambiente in cui si lavora. Pertanto, ciò potrebbe ridurre i costi di progettazione di importi che non si immagina possibile e inoltre, possibilmente, ridurre il time to market.

Storia vera - Lavoravo per una grande azienda medica. Ho progettato maschere di prova per la convalida del prodotto. Le maschere erano basate in parte su hardware e in parte su software incorporato. Il prodotto che l'azienda interagisce con le parti vulnerabili del corpo, quindi la quantità di ispezione che tutto ciò che abbiamo fatto è stata pazzesca. Questa volta, ho dovuto adattare il protocollo di comunicazione per riflettere i cambiamenti nel prodotto stesso. Il cambiamento è stato forse di 10 righe di codice in C e anche l'oscillatore di cristallo è stato scambiato poiché il baud rate è stato modificato e ciò che è stato originariamente installato non era 11,0592 MHz ... Mi ci sono volute circa 2 ore per farlo, compresa la documentazione. Il costo per l'azienda era probabilmente di $ 300 o meno con l'ordine da Digikey per le nuove parti. La convalida della maschera di prova migliorata ha richiesto diversi mesi (! ) e ha tenuto occupate circa 3 o 4 persone almeno più volte al giorno in questioni correlate. Quanto costa l'azienda? Probabilmente a nord di $ 10K - $ 15K. Questo costo riflette il vero costo del piccolo cambiamento nel design. Molte volte è possibile salvarlo e conoscere alcune soluzioni quasi pronte potrebbe salvare una piccola fortuna.

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.