1 votos

¿Por qué siguen existiendo dispositivos como el MCP23008 o PCF8574 cuando hay alternativas más baratas?

INB4: si esta pregunta no encaja en este foro, por favor elimínenla. Pero no sé dónde más preguntar.

Hay un montón de expandidores de puertos de E/S disponibles. La mayoría de ellos agregan 8 líneas de E/S a costa de dos líneas I2C (SDA, SCL). Aquí está el esquema de pines del MCP23008, tomado como ejemplo:

introduzca aquí la descripción de la imagen

Y aquí tenemos un esquema de pines del MCU ATtiny404:

introduzca aquí la descripción de la imagen

El chip tiene 12 líneas de E/S, de las cuales:

  1. Dos líneas son para I2C, conectadas al módulo I2C de hardware;
  2. Una línea está reservada para RESET;
  3. Una línea se puede utilizar para generar interrupciones para los MCU externos;
  4. 8 líneas de E/S de propósito general.

Por lo tanto, dicho MCU puede sustituir fácilmente un expandidor dedicado como el MCP23008 o cualquier otro similar. Por supuesto, requerirá algo de programación para hacerlo. Yo clasifico mis propias habilidades de programación en algún lugar entre 'terrible' y 'muy pobre', y aún así creo que me llevará quizás 4-5 días de trabajo escribir dicho firmware. Un programador experimentado, supongo, puede hacerlo en 1-2 días. No veo obstáculos aquí.

Mientras que para el chico de Arduino (como yo) la simplicidad es muy importante, en la producción a gran escala el control de costos ocupa el primer lugar. ¿Y qué tenemos para el MCP23008? Aquí está la oferta de Digikey, aproximadamente $8,000 por 10,000 piezas: https://www.digikey.com/product-detail/en/microchip-technology/MCP23008T-E-SO/MCP23008T-E-SOTR-ND/739286

Y aquí para el ATtiny404, aproximadamente $4,300 por 10,000 piezas: https://www.digikey.com/product-detail/en/microchip-technology/ATTINY404-SSNR/ATTINY404-SSNRTR-ND/8594960

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

Entonces la pregunta es: ¿cuál es la razón por la que estos dispositivos no han sido completamente eliminados por los MCUs?

3voto

dhruvajazz Puntos 1

Una respuesta son las computadoras industriales. Si te faltan E/S en la MPU, utilizas un expansor.

En tales computadoras, que generalmente funcionan con Linux, es importante que los controladores estén en el kernel principal. El costo de desarrollar tu propio código para el ATtiny y el controlador del kernel para él y mantener ambos es más alto que los 3700 USD que mencionas en tu pregunta.

3voto

Elmesito Puntos 1

La razón principal es el costo.

Has olvidado tener en cuenta dos factores muy importantes:

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

Cuando se trata de escribir un controlador para estos expanders, tendrás que hacerlo incluso si usaste un MCU externo, así que no hay beneficio allí.

En esencia, es mucho más fácil y barato pagar un poco más por un producto que sea fiable y simplemente se integre en el sistema.

1voto

Passerby Puntos 28913

Pequeño hecho poco conocido, los circuitos integrados dedicados a microchips tienden a ser microcontroladores PIC de propósito general preprogramados. Específicamente aquellos como el mcp que usas como ejemplo.

La razón por la que todavía se utilizan es que tienen un código probado, garantizado y respaldado por el fabricante, lo que significa que no se necesita pagar a un ingeniero para reinventar la rueda y realizar pruebas extensas y corrección de errores, costos de programación, etc. Simplemente funciona. Es un análisis de costo-beneficio, para una parte conveniente. Al igual que la mayoría de las personas pueden hornear un pan fácil y barato, pero encuentran más conveniente comprar uno. O el trabajo rutinario en un automóvil. O subcontratar una tarea de TI común.

Estás pagando un extra por una solución llave en mano.

0voto

Colene Lafever Puntos 38

Funcionalmente, el MCU que sugieres no es tan versátil como el expansor de puertos dedicado, ya que le faltan suficientes pines para los tres inputs de dirección, por lo que solo podrías usar uno de ellos en tu bus I2C. Por supuesto, podrías programar la dirección en el chip como parte de su programa, pero eso significaría que se necesitaran múltiples versiones diferentes de código de MCU.

Pero la razón principal es que además de desarrollar, probar y mantener el código, aún debes programarlo físicamente en los propios MCUs como parte de tu proceso de fabricación. Eso tiende a ser una operación manual que costará mucho más en mano de obra que los pocos céntimos que ahorras en los precios de los componentes.

0voto

Hurobaki Puntos 21

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.3 voltios, Usar dicho IC ayuda a los diseñadores a interactuar con 5V

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

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

  • Normalmente estos chips dedicados funcionan en un rango de temperatura más alto (-40°C a +125°C)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X