SPI en Linux incrustado Deja un comentario

¿Ya te sientes cómodo trabajando con partes de Interfaz Periférica Serial (SPI) y estás buscando un desafío? Sospechamos que muchos de ustedes han cortado sus dientes con microcontroladores de 8 bits a través de 32 bits, pero ¿cuánto tiempo han dedicado a jugar con las interfaces de hardware en Linux embebido? Aquí una nueva misión, si decides aceptarla. [Matt Porter] habló en detalle sobre el subsistema SPI de Linux durante su presentación en FOSDEM 2017. ¿Por qué no agarrar una placa embebida de Linux y probar su conexión para conectar hardware adicional a uno de los buses de SPI?

El lado del hardware de esto es exactamente lo que esperarías de cualquier SPI incrustada en la que hayas trabajado: MOSI, MISO, un reloj y un esclavo. [Matt] ofrece una descripción sucinta de SPI y la lectura de hojas de datos. Nuestro propio [Elliot Williams] ha hecho un excelente trabajo al profundizar en los conceptos básicos y los errores más comunes si necesita ponerse al día sobre todos los principios básicos de SPI .

Los detalles divertidos de la charla comienzan aproximadamente a las 18:30 en el video cuando [Matt] salta al lado de Linux de SPI. Necesita un controlador de controlador y un controlador de protocolo. El controlador del controlador es responsable de tratar con los pines (hardware real) y el controlador de protocolo se encarga de dar sentido a los paquetes SPI (mensajes que contienen cualquier cantidad de transferencias) que entran o salen. En otras palabras, la unidad del controlador solo quiere bits y los empuja hacia adentro o hacia afuera en el hardware, el controlador de protocolo hace que esos bits sean significativos para el sistema Linux.

Agregar dispositivos SPI (piense en dispositivos como LCD y sensores) a sus propios sistemas integrados significa decirle al sistema operativo los detalles sobre ese hardware, como la velocidad máxima y el modo SPI. Hay tres formas de manejar esto, pero el árbol de dispositivos es el método preferido para los sistemas modernos. Esto allana el camino para el controlador controlador que implementa un conjunto de API que el subsistema SPI de Linux utilizará para trabajar con su nuevo hardware.

Los controladores de protocolo siguen el estándar Modelo de controlador de Linux y son bastante directos. Con estos dos controladores en su lugar, el nuevo dispositivo se conecta al sistema operativo y abre las llamadas de la API SPI comunes: spi_async (), spi_sync (), spi_write () y spi_read (), y algunos otros.

Esto nos parece un montón de diversión, pero si te sientes un poco loco, podrías abordar otro tema divertido: usando Direct Memory Access (DMA) para sus necesidades de SPI .

[Gracias por el consejo Drew]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?