Estoy interesado en aprender más sobre cómo funciona SPI en general, pero con la biblioteca de frambuesa pi y py-spidev en mente. Soy muy hábil desde el punto de vista técnico, aunque no tanto en el aspecto de las cosas en EE.
Estoy intentando comunicarme con un equipo a través de SPI y solo me han dado una hoja de cálculo con información sobre los comandos de bytes y el tiempo. Ya he determinado que el modo SPI es 1, la velocidad del reloj debería ser 300kHz y la longitud de palabra es de 8 bits. Una instantánea de la hoja de comandos se ve a continuación. Se deben unir de extremo a extremo.
He intentado comunicarme utilizando la biblioteca py-spidev y he visto algunos números esperanzadores (creo). Ejemplo:
import spidev
spi = spidev.SpiDev()
spi.open(0, 0)
spi.mode = 1
spi.max_speed_hz = 500000
spi.xfer2([0x03, 0x00])
Tengo la impresión de que esto debería encender el potenciómetro digital, pero no lo hace. Sin embargo, sí veo los valores [3, 0] devueltos, lo que me lleva a creer que algo está sucediendo.
¿Cuál es la diferencia entre Bytes (s) out y Byte (s) in? Supongo que si envío el comando xfer2([0x03, 0x00], 500000, 9000)
debería recibir los bytes 0xF3 y 0x03. ¿Es eso correcto?
Realmente no sé cómo proceder y me encantarían las referencias a buenos tutoriales / descripciones.
Después de recibir finalmente mi analizador lógico Saleae, tengo una actualización. Parece que el pin de selección de chip no está funcionando? ¿Alguien tiene consejos para depurar esto en un Pi específicamente?