Supongo que la colocación de los pines tiene algunos factores de diseño, como la longitud de la traza y la CEM, ¿estoy en lo cierto?
Sí, pero a veces se trata más del enrutamiento interno que de las señales externas. Tanto si se trata de pistas en una placa de circuito impreso como de capas de metalización en la superficie de un CI monolítico, cuanto más corto sea el recorrido y menos vías se necesiten, mejor. Cuanto más compacta sea la disposición, más difícil será llevar las señales a los pines sin que sean bloqueadas por otras pistas, por lo que el diseñador puede decidir cambiar la disposición de los pines. Por ejemplo, el Z80 tiene los pines de datos revueltos sin razón aparente, pero tiene sentido una vez que se entiende cómo está dispuesto internamente.
Pero, ¿no sería más importante la facilidad de uso que tener la ruta más corta posible dentro del CI o del módulo? En muchos casos no, porque el mismo problema se da en la placa de circuito impreso en la que se coloca el dispositivo. Esa bonita y ordenada secuencia de pines puede estropearse en cuanto intentes dirigir las señales a otros lugares. Los programas modernos de diseño de PCB se encargan de asegurar que las señales vayan a los lugares correctos, por lo que no hay que preocuparse por físico La asignación de pines, sólo tiene que asegurarse de que son correctos en el esquema (donde puede organizar el orden de los pines del símbolo como quiera).
Los pines GPIO de las MCU suelen utilizarse para funciones "aleatorias" en lugar de estar organizados en grupos, por lo que el orden de los pines (o incluso el puerto en el que se encuentran) no es un problema. Algunas MCU tienen asignaciones de pines programables para funciones especiales, lo que permite una mayor flexibilidad en el enrutamiento de los pines. El diseñador de la placa de circuito impreso puede dirigir las señales a los pines "aleatorios" de la MCU que produzcan el mejor diseño, y hacer las asignaciones por software.
Por ejemplo, creo que tendría más sentido poner el VIN junto a los 5V, junto a los 3.3V, junto a la tierra en el Arduino
Poner todos los pines de alimentación justo al lado de cada uno es bueno para la EMI, pero malo para la seguridad. El Arduino fue diseñado para los aficionados con poca experiencia en electrónica que son propensos a cometer errores tales como el cortocircuito accidental de los pines adyacentes mientras se trabaja en él. Sería mejor tener los pines de alimentación separados por otros a los que no les importe ser cortocircuitados. Por ejemplo, si el pin del Arduino VIN
pin estaba justo al lado del +5V
pin, al ponerlos en cortocircuito se aplicaría un alto voltaje a la MCU que probablemente la destruiría.
Cuando se trata de placas de desarrollo ESP, ¿por qué los pines GPIO suelen estar por todas partes?
Lo más probable es que sea por alguna de las razones expuestas anteriormente. Para mantener el tamaño del módulo bajo, los pines del chip se dirigirán probablemente a los pines del módulo más cercanos. La ordenación de los pines del CI se verá influida por el encaminamiento de las señales en el propio chip.