Comentarios sobre los sensores SPI conectados en cadena

0

solo quería verificar si mis ideas son correctas con respecto al título / problema de esta pregunta. No tengo ningún hardware para ver la salida, por lo que estoy tratando de visualizarla mediante matemáticas y simulación.

Leímuchosblogs,sitiosdecadenasenmargarita,peroraravezveoinformacióndetalladasobrecómorecibirdatosdeestascadenasenmargarita(mássobredatosdesalida/transmisiónmaestraaesclavosencadena)osobrelarecepcióndedatosdeun(1)esclavoSPItambiénjaja

Aquíestáelsitioqueleíporúltimavez,peroaúnasímediounaideademodaalrespecto.(talvezsoydemasiadotontoparadarmecuentaquenotengodetallesxD)

enlace

1)Primerapregunta,entiendolaimagendearriba,loquesignificaquemientrasenviéunbyte(8bits;comando/instrucción)desdeuCaunesclavoSPIatravésdelalíneaMOSI,esteesclavoSPIenviaráautomáticamenteundatodebytesalalíneaMISOsindesactivarelchipseleccionado.CuandouCrecibiólosdatosdebytesenviadosporSPISlaveeselmomentoenquedebodeshabilitarlaseleccióndemichip.¿Esesocorrecto?

Lopreguntoyaquecuandosetratadelaconexiónencadena,parecequeestenoeselcaso.Despuésdeleereltutorialdespidesparkfun,asícomoenlanotadelblogdemaximenSPI enlace

en su lugar, cuando se conecta en cadena, aunque el primer esclavo SPI recibe un byte de comando, no lo ejecutará y continuará pasando el comando de byte a otro esclavo SPI cuando reciba otro byte, NO HASTA QUE DESACTIVA CHIP SELECT ejecutará los comandos recibidos en los esclavos SPI . ¿Es eso correcto?

2) Segunda pregunta, ¿los esclavos SPI en la margarita se entienden automáticamente o separan los bits en la instrucción? Digamos que el esclavo SPI1 recibe 2 bytes de comando. Después de recibir el 1er byte de comando y recibe un bit del 2do byte de comando a lo largo del camino, este esclavo descargará una vez el 1er byte de comando al SPI Slave2 para que tenga solo 1 bit del 2do byte y ¿Aceptaría los siguientes bits para que complete el comando del segundo byte? ¿estaría entre los dos en la tabla de abajo?

3)Tercerapregunta,silaconfiguracióndelaconexiónencadenayelenunciado/procesodedeshabilitarladesactivacióndelaseleccióndelchipejecutaríanloscomandosdelosesclavosescierto,¿cómoseveríalaretroalimentacióndelatransmisióndedatosenlalíneaMISOauC?¿entonces?TengoestedispositivoSPIdonde,despuésderecibiruncomandode1byte,recibiráinformaciónde3bytes.¿Estaríaentrelosdosenlatabladeabajo?

Espero que puedas aliviar este conflicto como un tumor en mi cabeza: D gracias.

    
pregunta Mheruian

1 respuesta

1

SPI no define nada en el nivel de enlace de datos (es decir, cómo interpretar los datos que se transmiten), por lo que una respuesta específica solo es posible para un dispositivo específico. Cada esclavo debe especificar si se puede conectar en cadena, y cómo deberían ser las transmisiones a dispositivos en cadena. Por lo general, los dispositivos que admiten el encadenamiento en margarita no responden en absoluto (es decir, copian MOSI a MISO a través de un registro de desplazamiento) o solo responden a la transmisión con la dirección correcta, pasando todo lo demás.

Lo que está especificado por SPI es el comportamiento de selección de chips. Si desactiva la selección de chips, todos los esclavos ignorarán los datos y el reloj por completo.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas