Estoy trabajando en un proyecto donde estoy integrando BME688, CAN, LoRa, tarjeta SD, pantalla ePaper y módulo WiFi. Estoy utilizando la placa Heltec LoRa V2. Y he encontrado este diagrama de pines. Lo que no entiendo es por qué usaron pines diferentes para SPI (con LoRa) en lugar de los predefinidos. Según la hoja de datos de ESP32, los 2 pines SPI disponibles están asignados a estos pines:
ESP32 HSPI & VSPI
Entonces, mi pregunta es ¿cuál es el beneficio de cambiar los pines de SPI (y cómo es eso posible)? Al leer la documentación oficial de espressif menciona algo sobre la matriz GPIO y IOMUX. Donde se indica lo siguiente
La mayoría de las señales periféricas en ESP32 pueden conectarse directamente a un GPIO específico, que se llama su pin IOMUX. Cuando una señal periférica se enruta a un pin que no es su pin IOMUX, ESP32 utiliza la matriz GPIO menos directa para hacer esta conexión.
Si el controlador está configurado con todas las señales SPI establecidas en sus pines IOMUX específicos (o sin conexión), evitará la matriz GPIO. Si se configura alguna señal SPI en un pin que no sea su pin IOMUX, el controlador enrutarán automáticamente todas las señales a través de la Matriz GPIO. La matriz GPIO muestrea todas las señales a 80MHz y las envía entre el GPIO y el periférico.
Cuando se utiliza la matriz GPIO, las señales más rápidas que 40MHz no pueden propagarse y el tiempo de configuración de MISO es más fácilmente violado, ya que se aumenta el retardo de entrada de la señal MISO. La frecuencia máxima de reloj con la Matriz GPIO es de 40MHz o menos, mientras que el uso de todos los pines IOMUX permite 80MHz.
Para mí esto es algo nuevo, nunca había oído hablar de esto. Si alguien puede explicar qué está pasando y conoce la razón detrás de esta elección de pin, lo apreciaría. Además, ¿alguien puede ayudarme a definir los pines para el SPI libre (ya que uno está siendo utilizado por el módulo LoRa)? Quiero omitir la pantalla OLED que viene con el módulo y usar en su lugar una pantalla ePaper.