Estoy buscando construir un producto que combine más de 40 interruptores de botón pulsador LCD (ejemplo aquí que se comunican a través de SPI). He estado buscando microprocesadores para manejar esto, pero tengo problemas para encontrar alguno. Lo más alto que ofrece Atmel es 12 dispositivos ( como se encuentra aquí ), y ARM no se ve mejor.
¿Cuál es la mejor manera de controlar tantos dispositivos SPI? ¿Necesito vincular varios procesadores en un maestro?
Use demultiplexores como el 74HC138 para la selección de esclavos o use diodos OR con una selección de matriz.
O si el protocolo lo permite, puede encadenar todos los botones y usar una transferencia SPI larga para todos ellos.
Una palabra de precaución cuando esté utilizando tantos dispositivos SPI en un solo bus:
Esa cantidad de dispositivos pondrá una gran cantidad de capacitancia en el bus. A menos que tome precauciones, limitará severamente su frecuencia máxima de bus y, por lo tanto, la velocidad a la que puede actualizar los contenidos de la pantalla, etc. (Básicamente, la capacitancia de entrada junto con la impedancia de salida de los pines IO de la MCU forman un filtro de paso bajo que convierte la frecuencia más alta ondas cuadradas en más como ondas sinusoidales, lo que a SPI no le gusta - interfiere con el tiempo).
Si está dispuesto a usar velocidades de comunicación más bajas, está bien; sin embargo, recomendaría dividir el bus en varios segmentos más pequeños y almacenar en búfer cada señal SCK y MOSI para mantener la capacitancia en cada segmento dentro de niveles razonables. Una alternativa es usar un solo búfer de unidad de alta corriente para reducir la impedancia de salida de los pines SCK y MOSI.
NO hay límite para la cantidad de dispositivos SPI que se pueden conectar a un solo SPI, suponiendo que haya suficientes IO para seleccionar el dispositivo correcto.
Pero en la práctica puede haber algunas dificultades cuando el número es mayor a velocidades más altas. Pero eso es raro.
Puede conectar MISO MOSI y SCK en paralelo a todos los dispositivos. Pero debe conectar el GPIO del controlador al pin SS (selección de esclavo) de una manera individual.
Elija expansores GPIO o multiplexores solo si la cantidad de GPIO en el controlador es limitada
chris stratton
Rvdo
kfriede
kfriede
usuario2943160
Rvdo
kfriede
usuario2943160