¿Han reemplazado los microcontroladores circuitos integrados más simples?

37

¿Todavía vale la pena aprender, por ejemplo, cómo sintonizar un temporizador 555 con resistencias y condensadores, cuando puede escribir un programa de temporizador para un microcontrolador en un lenguaje de programación legible por humanos?

O, para decirlo de otra manera, ¿hay problemas de que los circuitos integrados sean buenos para los microcontroladores?

usuario955
fuente
44
@ jes5199 - No estoy muy seguro de cómo esta pregunta merece una metaetiqueta; ¿Puedes comentar tu razón?
J. Polfer
3
mi idea era que no estaba haciendo una pregunta sobre un problema específico, sino sobre todo el campo. Eso me pareció un poco meta.
user955
Una placa de circuito con componentes discretos y un chip etiquetado como un temporizador 555 es mucho más legible para el ser humano que el programa almacenado en un chip.
Kaz

Respuestas:

35

En su mayoría, los microcontroladores han reemplazado los circuitos integrados discretos. Creo que incluso si pudiera diseñar un circuito con un 555, es probable que sea necesario ajustar el mismo circuito en unas pocas semanas para hacer otra cosa, y un micro conserva esa flexibilidad.

Pero hay algunas excepciones.

La lógica discreta es aún más rápida que la mayoría de los microcontroladores. El tiempo de propagación y los tiempos de conmutación para la lógica discreta están en el rango de 1-10 ns. Para que coincida con un microcontrolador, debe poder implementar cualquier lógica que necesite en 1 instrucción, y tener un reloj en el rango de 100 MHz a 1 GHz. Puede hacerlo, pero tal vez no en una placa de pruebas en su garaje.

Un buen ejemplo de esto es el decodificador de cuadratura HCTL2020. Toma dos series de pulsos y le dice en qué dirección está girando su motor. Se implementa como un chip no programable en aras de la velocidad.

Otra área interesante donde fallan tanto la lógica digital como los microcontroladores es el filtrado de señales. Si tiene una señal analógica que desea filtrar digitalmente, debe muestrearla a cierto ritmo. No importa qué tan rápido lo muestree, el ruido en la señal que aparece en frecuencias de más de la mitad de su frecuencia de muestreo se reducirá a frecuencias más bajas, donde puede interferir con su señal. Puede resolver este problema con un filtro de paso bajo, hecho de una tapa y una resistencia, antes de que se realice el muestreo. Después del muestreo, estás jodido. (Por supuesto, es frecuente el caso de que el ruido no se superponga a su señal en frecuencia, y luego un filtro digital funcionará muy bien).

pingswept
fuente
> La lógica discreta es aún más rápida que la mayoría de los microcontroladores. A menos que esté usando un Cypress PSoC3.
Rocketmagnet
3
@Rocketmagnet: el PSoC, como un FPGA, sigue siendo una lógica en bruto. No es discreto, claro, pero es igual de rápido.
Kevin Vermeer el
29

Por extraño que parezca, acabo de tener una de nuestras fábricas chinas tratando de agregar un micro a un proyecto donde fue totalmente exagerado, y les dije que usaran un 555 en su lugar. Un 555 cuesta tal vez 6 centavos, frente a un microcontrolador barato por 60 centavos. Cuando fabrica productos en grandes cantidades, esa diferencia de costos es importante, y definitivamente querrá saber cómo usar el IC más barato. Entonces sí, son mejores para costar menos. :)

endolito
fuente
12
También puede agregar confiabilidad a eso. Cada software tiene un error restante después de que se eliminó el último.
stevenvh
13

Un área donde la lógica discreta aún supera a los micros es la estabilidad de las partes a largo plazo.

¿Este micro estará disponible en 10 años? 20? ¿El IDE y la cadena de herramientas aún lo admitirán en ese momento?

Puede garantizar que la lógica discreta seguirá siendo lógica discreta en el futuro. Micros, no tanto. Si está diseñando un producto que espera que tenga una larga vida de producción, lógica genérica y, en la medida de lo posible, las piezas genéricas reducirán la necesidad de rediseñar el dispositivo cuando cambie la disponibilidad de las piezas.

Además, no eres SOL si el fabricante de tu chip está pendiente. Muchas personas hacen lógica genérica compatible, mientras que básicamente no hay micro genéricos.

Connor Wolf
fuente
11

Es frecuente que resulte más barato usar circuitos discretos para realizar una tarea simple. Por ejemplo, un LED parpadeante. El PIC más barato, un PIC10F200, cuesta alrededor de US $ 0.35 en 5ku, y eso es antes de los costos de programación y teniendo en cuenta el tamaño pequeño (y los problemas asociados con la fabricación). $ 0,10 de TI en 5ku, y una solución completa probablemente pesaría alrededor de US $ 0,20.

Otra cosa a tener en cuenta es que los microcontroladores son dispositivos inherentemente digitales. Claro, la mayoría tiene ADC y algunos incluso tienen DAC, pero aún funcionan en unidades de tiempo discretas y funcionan en bits y bytes individuales. Un circuito analógico se puede ajustar con precisión para hacer lo que el diseñador necesita porque, en teoría, lo analógico tiene una resolución infinita **. Un circuito digital está limitado por su componente más lento.

Finalmente, está el problema de la oferta. Volviendo a mi primer ejemplo, el NE555. Eso ha existido durante más de 20 años y probablemente seguirá existiendo durante otros 50 después de esto. Es una parte tan gomosa que probablemente se fabricará para siempre (o al menos hasta que los electrones convencionales se vuelvan obsoletos en la electrónica). Considerando que, un PIC10F podría hacerse NRND en cualquier momento. Con un único proveedor como Microchip, existe un riesgo significativo de que esto pueda arruinar un producto.

** Bien, esto no es del todo cierto. En realidad, estamos limitados a la resolución de electrones. 1 amperio = 6.24 × 10 18 electrones / segundo. Entonces, la mejor resolución actual que puede obtener es el attoamperio, o 10 ^ -18 amperios, que es de aproximadamente 6 electrones por segundo. Pero para la mayoría de los propósitos prácticos, esto está bien. :)

Thomas O
fuente
44
confunde la resolución con la precisión, un error que a menudo se comete. No tiene sentido tener> 10 dígitos de resolución si la deriva hace que la precisión efectiva sea de solo dos dígitos. La solución digital puede tener una mayor precisión a pesar de tener una resolución discreta y, por lo tanto, más limitada .
stevenvh
8

No olvide la lógica programable: CPLD y FPGA. Al reemplazar la lógica discreta con un CPLD, las partes que se descontinúan no le afectan y puede obtener mucho más rendimiento, tamaño reducido y menor costo. Si tiene un FPGA en el sistema, puede implementar un núcleo blando en él, que se puede actualizar fácilmente si los requisitos cambian, y todo se puede hacer fácilmente "a prueba de futuro".

Leon Heller
fuente
6

Clasificaría aprender a sintonizar un temporizador 555 como conocimiento "por si acaso". Es lo mismo que la gente que dice "He vivido toda mi vida sin álgebra, ¿por qué se lo enseñamos a los niños?" Si no sabe cómo usar una herramienta, nunca verá un problema al que pueda aplicarse.

En cuanto a una respuesta específica: la lógica digital muy rápida se implementa en los FPGA / ASIC hoy en día porque sería demasiado lenta en un microcontrolador / procesador (a menos que fuera un procesador diseñado específicamente como un DSP).

penjuin
fuente
6

En mi proyecto actual, estamos usando un chip Marvell ARM9 que funciona a 500Mhz con un FPGA para ofrecer muchos puertos DIO. Aún así, hay cosas que se manejan en lógica discreta. Por ejemplo, se necesita un control de motor paso a paso para 4 motores paso a paso controlados individualmente. Hay un oscilador para generar una frecuencia con un contador que permitirá que pasen varios pulsos. El contador se configura desde el microcontrolador, pero luego funciona sin ningún control adicional del microcontrolador, lo que le da tiempo para trabajar en otras tareas.

Podríamos haber optado por más microcontroladores. Pero un controlador central que trabaje con lógica discreta tradicional puede ser una solución poderosa y muy confiable.

Además, si tiene un problema claramente definido, la solución siempre debe ser lo más simple posible, pero no más simple (cita oculta allí ;-)). Si un 555 funciona, ¿por qué no lo usarías? La flexibilidad podría ser un argumento cuando alguien más optó, pero podría no serlo. Todo depende de su problema y su interpretación de cuál es la solución más simple.

Wouter Simons
fuente
1
Creo que su FPGA expansor de E / S sería un gran lugar para la parte "lógica" de un control paso a paso.
Chris Stratton
5

Las aplicaciones de comunicación de alta frecuencia vienen a la mente. A pesar de que ahora tenemos 'radio definida por software', sería muy sorprendente si el procesamiento de señal de 100MHz + todavía no tiene al menos algunas etapas analógicas.

JustJeff
fuente
4

Muy pocos de mis diseños recientes de microcontroladores han requerido una lógica discreta. Una excepción fue implementar un tipo de reinicio Ctrl-Alt-Del mediante el cual presionar dos teclas específicas en un teclado personalizado durante dos segundos haría un reinicio completo del micro. Usé una puerta NOR (usada como una puerta AND con 2 entradas invertidas), una puerta AND y un 74HC123. Era conveniente poder obtener las puertas específicas que necesitaba en puertas individuales en un paquete SMT, en lugar de las 4 puertas / paquete en los días DIP.

tcrosley
fuente
4

He tenido la oportunidad de ser desarrollador de software durante años y ahora trabajo como ingeniero electrónico.

Cualquier sistema con complejidad viene con errores y errores. Tanto los microcontroladores como los circuitos integrados tienen sus ventajas y desventajas en función de sus áreas de uso.

Para proyectos a pequeña escala, los circuitos integrados son más rápidos, más baratos y más confiables que los microcontroladores. Para proyectos a gran escala con millones de entradas, análisis y lógicas de comparación, seguramente los microcontroladores tienen la ventaja sobre los circuitos integrados.

Todo el software falla en algún momento, incluso el código sin errores es propenso a modificaciones porque se guarda en una ROM, lo que resulta en errores lógicos (por ejemplo, pérdidas de memoria) que son difíciles de detectar pero que a veces terminan en una catástrofe.

Para los sistemas basados ​​en software a prueba de balas de fallas en aplicaciones críticas (como sistemas de grado militar o sistemas de salvamento como sistemas de control de trenes), se implementan y desarrollan conceptos de "seguridad a prueba de fallas".

Los sistemas a prueba de fallas vuelven a un estado seguro en caso de que ocurra un error excepcional. Por lo general, dos procesadores ejecutan el mismo código, comparan los resultados de cada instrucción y, si son iguales, la instrucción se ejecuta. De lo contrario, el sistema usa relés eléctricos físicos para volver a un estado seguro.

Los sistemas basados ​​en software a prueba de fallas se utilizan en sistemas de enclavamiento de trenes y ATP (Protección automática de trenes).

Diseñar el mismo sistema complejo con Ics es un gran dolor de cabeza para cualquier ingeniero. ¡Y es por eso que el software fue diseñado desde el día 1!

hmdz
fuente
3

Los circuitos integrados pueden ser muy específicos del dominio. Estoy pensando en un decodificador DTMF. Podría programar un microcontrolador para decodificar las dos frecuencias, pero es más fácil, más rápido y más barato usar un chip comercial.

Creo que es importante tener suficiente conocimiento de todas las herramientas para saber qué herramienta usar.

Robert
fuente
Depende, por supuesto, de si de todos modos necesita un microcontrolador en el circuito. Recientemente tuve un proyecto donde necesitaba un decodificador DMTF. Las fichas cuestan alrededor de un dólar en cantidad. La diferencia de precio entre un PIC24F o un dsPIC33F equivalente (que también tiene un DSP) también fue de aproximadamente un dólar en cantidad. Las rutinas DSP del decodificador DTMF estaban libres de Microchip. Además, ahora tengo un DSP para otras cosas.
tcrosley
FYI, escribí un decodificador DTMF bastante bueno para un PIC 16C622 hace unos años, usando solo el comparador como entrada.
Supercat
3

Hay una gran diferencia entre diseñar algo usando solo componentes discretos versus usar un microcontrolador; El software tiene errores. Si la confiabilidad es un aspecto importante, es posible verificar el diseño de algo hecho de componentes discretos. Ni siquiera Knuth se atreve a afirmar que su software no tiene errores.

Por supuesto, su diseño también puede tener errores y solo pueden aparecer en casos muy raros, pero serán más fáciles de entender y corregir. Es posible que el software falle de maneras extremadamente oscuras y no obvias, que nunca encontrará.

hlovdal
fuente
2
Dado que los componentes discretos en este caso probablemente significan circuitos integrados y no transistores, ¿qué te hace pensar que los circuitos integrados no tienen errores? El software bien escrito termina con errores no porque sea software, sino porque resuelve requisitos complicados: una versión cableada también podría tener errores. Una vez que haya encontrado un error, es mucho más económico implementar arreglos en el software que modificar los PCB, a menos que alguien haya quemado un gran inventario de micros OTP por usted. Puede entrenar a alguien para enchufar un cable de programador y obedecer las reglas de ESD mucho más rápido de lo que puede entrenarlo para que sea bueno en el reelaboración de los SMT PCB.
Chris Stratton
Los circuitos integrados existen en todo tipo de niveles de complejidad, incluidos los microcontroladores. La probabilidad de errores en un IC es proporcional a la complejidad del IC. La pregunta se refería a circuitos integrados más simples, como el temporizador 555, y creo que la probabilidad acumulativa de que tales circuitos integrados y componentes adicionales tengan errores es mucho menor que la probabilidad de que el microcontrolador que los reemplaza tenga errores. Por supuesto, si reemplaza 1000 componentes con un microcontrolador, las probabilidades probablemente cambiarán, por lo que la imagen no es completamente en blanco y negro. Pero para cualquier dispositivo LED parpadeante o similar que yo ...
hlovdal
... percibo que se trata esta pregunta, todavía creo que los componentes discretos tienen el potencial de ser más confiables. Y para los errores de software, no son deterministas. Por supuesto, nada está 100% garantizado, pero si implementa un controlador de semáforo con componentes, puede verificarlo y desplegarlo, sabiendo que seguirá funcionando durante X años hasta que el desgaste físico haga que la unidad falle y reemplace con una nueva unidad mucho antes de eso. No hay forma de estimar que el software funcionará de manera confiable durante cualquier período de tiempo.
hlovdal
El software de complejidad comparable a unos pocos discretos puede, en la CPU apropiada, ser probado matemáticamente. La lógica discreta de complejidad comparable al software más común tampoco puede ser completamente segura contra los inimaginables, aunque a menudo en cualquier caso puede usar una complejidad adicional para proporcionar algunas garantías de respaldo en caso de que el mecanismo primario falle.
Chris Stratton
3

¡La respuesta es sí!

Debe verlo como un diseñador de hardware con orientación a los costos de producción. El 555 es un viejo IC que se considera muy básico. Si eres un EE, lo más probable es que lo hayas visto varias veces en las clases de electrónica digital. Configurarlo es muy fácil, ya que necesita resolver 2 o 3 fórmulas para las aplicaciones más comunes. Esto casi no lleva tiempo (ya que ya conoce la parte y cómo usarla, y las matemáticas son fáciles). La cantidad de tiempo que llevaría configurar el desarrollo incluso para un MCU de 8 bits y validar el software podría llevar de días a meses, dependiendo del entorno en el que trabaje. Por lo tanto, esto podría mantener bajos los costos de ingeniería en cantidades que no imagina posibles y También, posiblemente, acortar el tiempo de comercialización.

Historia real: solía trabajar para una gran compañía médica. Diseñé plantillas de prueba para la validación del producto. Las plantillas eran parte de hardware y parte de software integrado. El producto que fabrica la compañía interactúa con partes vulnerables del cuerpo, por lo que la cantidad de inspección que realizamos fue increíble. Esta vez, tuve que ajustar el protocolo de comunicación para reflejar los cambios en el producto en sí. El cambio fue tal vez 10 líneas de código en C y el oscilador de cristal también se cambió ya que se modificó la velocidad en baudios y lo que se instaló originalmente no era 11.0592MHz ... Me llevó alrededor de 2 horas hacer esto, incluida la documentación. El costo para la compañía fue probablemente de $ 300 o menos con el pedido de Digikey para las piezas nuevas. La validación de la plantilla de prueba mejorada tomó varios meses (! ) y mantuvo ocupadas a 3 o 4 personas al menos varias veces al día en asuntos relacionados. ¿Cuánto le cuesta esto a la empresa? Probablemente al norte de $ 10K - $ 15K. Este costo refleja el costo real del cambio menor en el diseño. Muchas veces puede guardarlo y conocer algunas soluciones casi listas podría ahorrar una pequeña fortuna.

usuario34920
fuente