¿Los microcontroladores reemplazaron a los IC más simples?

35

¿Todavía vale la pena aprender, por ejemplo, cómo ajustar un temporizador 555 con resistencias y condensadores, cuando se 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?

    
pregunta user955

13 respuestas

33

En su mayoría, los microcontroladores han reemplazado los CI discretos. Me parece que incluso si pudiera diseñar un circuito con un 555, es probable que sea necesario modificar 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 retardo de propagación y los tiempos de conmutación para lógica discreta están en el rango de 1-10 ns. Para que coincida con un microcontrolador, debe poder implementar la lógica que necesite en una instrucción y tener un reloj en el rango de 100 MHz a 1 GHz. Puedes hacerlo, pero tal vez no en una placa de pruebas en tu garaje.

Un buen ejemplo de esto es el decodificador en cuadratura HCTL2020. Toma dos series de pulsos y te dice en qué dirección gira tu 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 cierta velocidad. 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 que el ruido no se superponga a su señal en la frecuencia, y luego un filtro digital funcionará muy bien).

    
respondido por el pingswept
27

Por extraño que parezca, acabo de tener una de nuestras fábricas chinas intentando agregar un micro a un proyecto en el que era totalmente excesivo, 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 está fabricando productos en grandes cantidades, esa diferencia de costo es importante, y definitivamente querrá saber cómo usar el IC más barato. Así que sí, son mejores en costar menos. :)

    
respondido por el endolith
12

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

¿Este micro va a estar disponible en 10 años? 20? ¿El IDE y la cadena de herramientas seguirán siendo compatibles en ese momento?

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

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érico.

    
respondido por el Connor Wolf
10

Es frecuente que resulte más barato utilizar circuitos discretos para realizar una tarea simple. Por ejemplo, un LED parpadeante. El PIC más barato, un PIC10F200, es de aproximadamente US $ 0,35 en 5 ku, y eso es antes de programar los costos y tener en cuenta el pequeño tamaño (y los problemas asociados con la fabricación). Un temporizador NE555, por otro lado, puede ser recogido por aproximadamente US $ 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 digitales inherentes. 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 puede ajustarse precisamente para hacer lo que el diseñador necesita porque, en teoría, el analógico tiene resolución infinita **. Un circuito digital está limitado por su componente más lento.

Finalmente, está el tema de la oferta. Volviendo a mi primer ejemplo, el NE555. Eso ha existido por más de 20 años y probablemente estará por otros 50 después de esto. Es una parte tan gelatinosa 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 solo proveedor como Microchip, existe un riesgo significativo de que esto pueda arruinar un producto.

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

    
respondido por el Thomas O
7

No olvide la lógica programable - CPLD y FPGA. Al reemplazar la lógica discreta con un CPLD, no se verá afectado por la interrupción de las piezas y puede obtener mucho más rendimiento, menor tamaño y menor costo. Si tiene un FPGA en el sistema, puede implementar un núcleo blando en él, que puede actualizarse fácilmente si los requisitos cambian, y todo se puede hacer "a prueba de futuro".

    
respondido por el Leon Heller
6

Aprendería a programar un temporizador 555 como "por si acaso" el conocimiento. Es lo mismo que la gente dice: "He vivido toda mi vida bien sin álgebra, ¿por qué se lo estamos enseñando a los niños?" Si no sabe cómo usar una herramienta, nunca verá un problema al que se le pueda aplicar.

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

    
respondido por el penjuin
6

En mi proyecto actual, estamos utilizando un chip Marvell ARM9 que funciona a 500 MHz con un FPGA para ofrecer muchos puertos DIO. Sin embargo, 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 establece desde el microcontrolador, pero luego opera sin ningún control adicional desde el 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 la lógica discreta tradicional puede llegar a ser una solución potente y muy confiable.

Además, si tiene un problema que está 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 como lo eligió otra persona, pero podría no serlo. Todo depende de su problema y de su interpretación de cuál es la solución más sencilla.

    
respondido por el Wouter Simons
5

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

    
respondido por el JustJeff
4

Muy pocos de mis diseños recientes de microcontroladores han requerido alguna lógica discreta. Una excepción fue la implementación de 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 restablecimiento completo del micro. Utilicé una compuerta NOR (usada como compuerta AND con 2 entradas invertidas), una compuerta AND y una 74HC123. Fue 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.

    
respondido por el tcrosley
4

He tenido la oportunidad de ser un 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 según sus áreas de uso.

Para proyectos de pequeña escala, los IC 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, para asegurarse de que 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, ya que se guarda en una ROM, lo que genera 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 sistemas basados en software a prueba de balas de fallas en aplicaciones críticas (como sistemas militares de grado o de salvamento, como sistemas de control de trenes), se implementan y desarrollan los conceptos de "protección contra 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 utiliza relés eléctricos físicos para revertir a un estado seguro.

Los sistemas basados en software a prueba de fallas se utilizan en los sistemas de interbloqueo 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 primer día!

    
respondido por el hmdz
3

Los IC 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 disponible en el mercado.

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

    
respondido por el Robert
3

Hay una gran diferencia entre diseñar algo utilizando solo componentes discretos en lugar de 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 contiene errores.

Por supuesto, su diseño también puede tener errores y es posible que solo se muestren en casos muy raros, pero serán más fáciles de entender y corregir. Es posible que el software falle de una manera extremadamente oscura y no obvia, que nunca encontrará.

    
respondido por el hlovdal
3

¡La respuesta es SÍ!

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

Historia verdadera: solía trabajar para una gran compañía médica. Diseñé plantillas de prueba para validación de productos. Las plantillas se basaron en hardware y en parte en software integrado. El producto que la empresa elabora interactúa con las partes vulnerables del cuerpo, por lo que la cantidad de inspección por la que pasamos fue por nueces. Esta vez, tuve que ajustar el protocolo de comunicación para reflejar los cambios en el producto en sí. El cambio fue quizás de 10 líneas de código en C y el oscilador de cristal también se intercambió cuando se modificó la velocidad en baudios y lo que se instaló originalmente no fue 11.0592MHz ... Me tomó aproximadamente 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 nuevas piezas. La validación de la plantilla de prueba mejorada tomó varios meses (!) Y mantuvo a unas 3 o 4 personas ocupadas al menos varias veces al día en asuntos relacionados. ¿Cuánto 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 saber algunas soluciones casi listas podría ahorrar una pequeña fortuna.

    
respondido por el user34920

Lea otras preguntas en las etiquetas