¿Por qué existen dispositivos como el MCP23008 o PCF8574 cuando existen alternativas más baratas? [cerrado]

1

INB4: si esta pregunta no se ajusta a esta placa, elimínela. Pero no sé dónde más preguntar.

Hay muchos expansores de puertos de E / S disponibles. La mayoría de ellos agregan 8 líneas de E / S al costo de dos líneas I2C (SDA, SCL). Aquí está el pinout para el MCP23008, tomado como ejemplo:

YaquítenemosunpinoutdeATtiny404MCU:

Elchiptiene12líneasdeE/S,desdelascuales:

  1. DoslíneassonparaI2C,conectadasalmóduloI2Cdehardware;
  2. UnalíneaestáreservadaparaRESET;
  3. SepuedeusarunalíneaparagenerarinterrupcionesparaMCUexterna;
  4. 8líneasdeE/Sdepropósitogeneral.

Porlotanto,talMCUpuedesustituirfácilmenteunexpansordedicadocomoMCP23008ocualquieradesuscaracterísticas.Porsupuestorequeriráalgodeprogramaciónparahacerlo.Yomismoclasifiquémispropiashabilidadesdeprogramaciónenalgúnlugarentre"horrible" y "muy pobre", y aún así creo que me llevará entre 4 y 5 días hábiles escribir este firmware. Programador experimentado, supongo, puede hacerlo en 1-2 días. No veo obstáculos aquí.

Si bien para el chico Arduino (como yo) la simplicidad es muy importante, el control de costos de producción a escala completa es lo primero. ¿Y qué tenemos para el MCP23008? Aquí hay una oferta de Digikey, aproximadamente $ 8,000 por 10,000 unidades: enlace

Y aquí para ATtiny404, aproximadamente $ 4,300 por 10,000 unidades: enlace

Eso significa que para 10,000 pcs la diferencia de precio es de $ 3,700 . Y 10k pcs no es una cantidad impresionante para un dispositivo de producción.

Entonces, la pregunta es: ¿cuál es la razón por la que los MCU no eliminan completamente estos dispositivos?

    
pregunta Zhenek

5 respuestas

2

Una respuesta son las computadoras industriales. Si carece de IO en la MPU, utilice un expansor de este tipo.

En tales computadoras, que usualmente ejecutan Linux, es importante que los controladores estén en el núcleo principal. El costo de desarrollar su propio código para el controlador ATtiny y el kernel es mucho mayor que los 3700 USD que menciona en su pregunta.

    
respondido por el Jan Dorniak
2

La razón principal es el costo.

Has olvidado tener en cuenta dos factores muy importantes:

  1. El costo de escribir el firmware para una MCU y luego mantenerlo sin errores, a lo largo de diferentes iteraciones de silicio. (sí, MCU con el mismo número de pieza pero versión de silicio diferente, podría necesitar un FW actualizado)
  2. El costo / tiempo de programación / prueba de la MCU adicional y de encontrar el espacio en la PCB para los pines de programación.

Cuando se trata de escribir un controlador para estos expansores, tendrá que hacerlo incluso si usó una MCU externa, por lo que no hay ganancia allí.

En esencia, es mucho más fácil y más económico pagar un poco más por un producto que es confiable y que solo cae en el sistema.

    
respondido por el Elmesito
1

Poco conocido, los CI dedicados a los microchips tienden a ser microcontroladores PIC de propósito general preprogramados. Específicamente, como el mcp que usas como ejemplo.

La razón por la que aún se usan, es que han probado el código, están garantizados y respaldados por el fabricante, lo que significa que no hay que pagarle a un ingeniero para rehacer la rueda y realizar pruebas exhaustivas y corregir errores, costos de programación, etc. Simplemente funciona. Es un análisis de costo-beneficio, para una parte de conveniencia. Al igual que la mayoría de las personas, puede hacer una rebanada de pan de manera fácil y económica, pero le resulta más conveniente comprar uno. O trabajo de rutina en el coche. O externalizar una tarea de TI común.

Usted está pagando una prima por una solución llave en mano.

    
respondido por el Passerby
0

Funcionalmente, la MCU que sugiere no es tan versátil como el expansor de puerto dedicado, ya que carece de pines suficientes para las tres entradas de dirección, por lo que solo podría usar una de ellas en su bus I2C. Por supuesto, podría programar la dirección en el chip como parte de su programa, pero eso significaría que se necesitan múltiples versiones diferentes del código de MCU.

Pero la razón principal es que, además de desarrollar, probar y mantener el código, todavía tiene que programarlo físicamente en los MCU como parte de su proceso de fabricación. Eso suele ser una operación manual que costará mucho más en mano de obra que los pocos centavos que ahorra en los precios de los componentes.

    
respondido por el Finbarr
0

alguna razón:

  • usar un ic sobre un puerto estándar puede ayudar a aislamiento . Tenemos un aislador I2C para esta tarea.

  • Hoy en día, muchos microcontroladores trabajan con 3.3volt. El uso de este IC ayuda a los diseñadores a interactuar con 5V

  • Un pequeño microcontrolador tiene muchas partes (Reloj, ALU general, RAM, controlador Flash, ...) Pero I2C IC es un chip IO dedicado, por lo que la confiabilidad de un módulo dedicado simple es más alto que un controlador general.

  • muchos IO de procesador de alta tecnología tienen muchas limitaciones, por ejemplo, 1.25 voltios de salida o entrada (debido a otro módulo instalado en la placa) y no pueden usar el IO del procesador para una tarea común.

  • Por lo general, estos chips dedicados funcionan en un rango de temperatura más alta (-40 ° C a + 125 ° C)

respondido por el M KS

Lea otras preguntas en las etiquetas