33 votos

¿Por qué algunos microcontroladores tienen los pines de un solo puerto distribuidos ampliamente por el paquete?

Estaba tratando de usar el puerto IO de 16 bits de un microcontrolador para interactuar con una pantalla paralela. Encontré que las IOs de un solo puerto (digamos PORTB) están muy fragmentadas alrededor del microcontrolador:

STM32G pinout

Por ejemplo, en la imagen de arriba, PB0~PB2 están situados en la parte inferior derecha, PB3~PB9 están situados en la parte superior izquierda, y PB10~PB15 están situados en la parte inferior derecha.

Aquí hay otro ejemplo de un PIC32MM:

PIC32MM

Este es tan caótico que no puedes encontrar 5 alfileres seguidos.

Y por último este, Freescale Kinetis KL16:

Kinetis KL16 pinout

Este tiene unos cuantos conjuntos de pines seguidos, pero los puertos en sí no están completos; un poco de PTA, unos cuantos pines de PTB, y así sucesivamente.

Las preguntas:

  • No estoy familiarizado con el silicio que hay debajo, pero ¿los puertos no son sólo unos cuantos MOSFETs y algún otro circuito controlado desde las señales (los bits) de un registro? Por lo tanto, físicamente, deben estar en una fila al igual que el registro, o al menos, no tan caótico que la mitad del puerto es de 1 cm de distancia de la otra mitad. ¿Por qué están diseñados así?
  • Creo que algunos fabricantes prefieren que el pinout sea compatible con los periféricos (por ejemplo, SPI) y que estén cerca unos de otros porque hoy en día nadie necesita 16 pines seguidos. Pero muchos de estos microcontroladores tienen algún tipo de IO periférica reutilizable, y aparte de eso, ¿cuál es el problema de tener una IO SPI directamente como la IO principal del puerto, por lo que podríamos mantener la compatibilidad de 16 pines?

15voto

ozba Puntos 1558

Una de las razones para distribuir los pines individuales de E/S asociados a un bus alrededor de la periferia es reducir los problemas que pueden surgir de las SSO (Salidas Simultáneas Conmutadas).

Cuando muchas salidas de un chip (MCU, FPGA, ASIC, etc.) conmutan al mismo tiempo, los picos de corriente asociados con esa actividad de conmutación junto con la inductancia de interconexión en el chip pueden causar picos en el carril GND, desde dV=l(dI/dt), que pueden alterar el funcionamiento del chip.

Para mejorar este problema, los diseñadores de chips han implementado múltiples carriles de alimentación IO dentro del chip. Puede haber un carril de alimentación (y GND) para cada lado del chip, o varios carriles en función del tamaño del chip.

Por lo tanto, al distribuir la E/S de un bus alrededor del chip, el ruido SSO se reduce porque la corriente transitoria fluye por caminos separados en los distintos carriles de alimentación de E/S y GND del chip.

Tenga en cuenta que, además de distribuir la IO alrededor de un chip, el SSO también puede ser ayudado mediante el uso de control de velocidad de giro en las salidas, si esa es una característica del dispositivo que está utilizando.

10voto

andrew g Puntos 91

Una consideración que no se ha mencionado hasta ahora es la compatibilidad con otros dispositivos de la cartera del fabricante.

Hay demasiadas posibilidades para enumerarlas, pero algunas lo son:

  • El CI puede ser un sustituto de otra pieza (posiblemente para un caso de uso concreto)
  • La misma matriz puede utilizarse con otro paquete y existen requisitos de compatibilidad en el otro paquete
  • Los pines son duales/multifuncionales por lo que el fabricante quiere (digamos) que los pines SPI estén en el mismo lugar aunque estén en el puerto B de un chip pero en el puerto C de otro, de nuevo para que el CI sea un simple reemplazo de otra pieza.

Ciertamente, durante el desarrollo buscaremos la reducción de riesgos al seleccionar un CI, así que si un fabricante tiene una gama de dispositivos con buenas configuraciones de pines compatibles, eso significa que si ocurre algo inesperado durante el desarrollo (por ejemplo, necesitamos más RAM, un puerto serie adicional, el estado del chip pasa de ser de producción a no recomendado para nuevos diseños, tenemos dificultades para conseguir piezas, etc., etc.), entonces podríamos salirnos con la nuestra sin tener que volver a maquetar la placa de circuito impreso o ser capaces de hacer simples modificaciones hasta que la placa de circuito impreso pueda ser revisada.

4voto

Matt Puntos 150

Los MCUs modernos de gama baja rara vez tienen un bus de datos/direcciones externo de 16 bits. No tiene sentido restringir el pinout cuando no existe tal requisito. Las piezas de gama alta tienen interfaces paralelas dedicadas, principalmente para las memorias. Estas partes de gama alta tendrán el pinout optimizado para tal requisito.

4voto

mbs Puntos 11

He aquí algunas razones.

Muchas veces estos chips se diseñaron a medida para un cliente específico que controlaba el pinout. Cuando se compran millones, los centavos cuentan. Más adelante, si el cliente está de acuerdo en que se vendan en el mercado comercial, generalmente se acuerda antes de comenzar el diseño.

Los competidores igualarán las configuraciones de las clavijas para poder adaptarse a un enchufe existente y ganar parte de ese negocio.

A veces, el semiconductor es el segundo proveedor de una pieza a medida construida por el cliente. Las obleas son caras y cualquier ahorro de espacio es dinero en el bolsillo del fabricante.

Parte de ello viene dictado por la disposición del silicio, normalmente no se quiere que las E/S estén adyacentes a las líneas de reloj.

La radiación de radiofrecuencia es otra consideración.

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