Sistemas integrados: ¿Por qué la configuración de los pines GPIO cambia entre placas EVM de desarrollo y placas personalizadas?

“Porque los ingenieros de hardware que diseñaron la placa personalizada querían mapearlos de manera diferente” es la respuesta más simple.

Las razones por las que querían hacer esto podrían ser muy variables: costo, diferentes conjuntos periféricos, voltajes, etc.

La mayoría de los SOC que he visto tienen dos niveles de configuración: el muxing funcional general de los diferentes bloques periféricos, y luego la configuración específica de los pines.

Estas dos piezas juntas determinan cuál es la función de un pin individual. Algunos diseños SOC tienen opciones muy limitadas, algunos tienen multitud.

Por lo general, en los proyectos en los que he trabajado, lo que sucede es que el proveedor de SOC proporciona un mapeo para la placa de evaluación en el paquete de documentación, y luego los ingenieros eléctricos que diseñan la placa personalizada producen un documento similar como parte del proceso de diseño esquemático. Esto normalmente incluiría no solo asignaciones GPIO sino funciones personalizadas, ubicaciones y direcciones de bus (SPI / I2C), etc.

En combinación con el manual de referencia técnica (TRM) para el SOC, estos 3 documentos suelen ser suficientes para averiguar qué va a dónde.

En cuanto a la transferencia del código de evaluación, depende del sistema operativo y los controladores proporcionados por el proveedor de SOC. Algunos proveedores son amables y usan mucha abstracción (o incluso tienen una capa de traducción completa en la que esencialmente puede alimentar las asignaciones de pin como una tabla). Algunos codifican todo …

Dependiendo de su rol en el proyecto y el volumen de código que se discute, generalmente es una buena idea leer la mayor cantidad de TRM posible, luego leer la mayor cantidad de código de la biblioteca que sea posible para comprender cómo se escribió el software de evaluación. Luego, por lo general, queda más claro qué piezas deben cambiarse para admitir la placa personalizada: las asignaciones GPIO suelen ser la parte más fácil.