Leí en línea que para iniciar una transacción SPI en un dispositivo compatible con SPI, la línea SS (selección esclava, también conocida como selección de chip) debe establecerse en baja para toda la transacción y luego colocarse alta al final de la transacción. Si hago un circuito que contiene solo un dispositivo SPI, ¿tendré que bajar el comando de envío de línea SS y luego subir la línea ss cada vez o puedo vincular la línea ss baja y enviar comandos ilimitados? El dispositivo que estoy usando es el chip de sonido ISD1700 .
8
Respuestas:
[@Kevin y @akohlsmith deberían publicar sus comentarios como respuestas.
Esto es para ampliar sus comentarios. ]
SPI 1 no prescribe el comportamiento exacto de la SS (línea de selección esclava 2 ). Este comportamiento depende de la implementación de cada dispositivo individual. He visto dispositivos que pueden funcionar con el SS permanentemente insertado. También he visto dispositivos que requieren caídas y bordes ascendentes en el SS.
Aunque no dice que explícitamente se deba activar el SS ,
la guía de diseño (p.31) dice que el SS inicia y finaliza la transacción SPI. Sería prudente suponer que se debe activar SS para que se realice la transacción SPI.
1 SPI es más una costumbre que un estándar.
2 CS (selección de chip) es otro nombre para la selección esclava.
fuente
Depende completamente del dispositivo esclavo.
Si el protocolo para el dispositivo esclavo incluye algún tipo de encuadre, ya sea con paquetes de longitud fija, bytes de inicio / parada o un encabezado que especifique la longitud del paquete, entonces el dispositivo esclavo puede funcionar sin una selección de chip. Tengo un chip de memoria flash SPI en la placa en la que estoy trabajando actualmente, que parece estar perfectamente satisfecho con o sin la selección de chip. Se puede conectar permanentemente a 0V (habilitado) sin problemas.
En realidad, esto nos causó algunos problemas, porque un contratista había configurado algunas de las E / S de bajo nivel, incluido el SPI, y nosotros (¡y ellos!) No nos dimos cuenta de que no habían hecho funcionar la selección de chips. ¡No fue hasta que tuve que extender su trabajo SPI para agregar otro dispositivo SPI en el mismo bus que descubrí que en realidad no teníamos selecciones de chips!
Por el contrario, muchos dispositivos esclavos necesitan selecciones de chip para encuadrar los datos, y el envío de más bits / bytes que el paquete esperado sin liberar la selección de chip al final se considerará como una transferencia no válida y rechazada. Los DAC a menudo cargan el nuevo valor en la salida en el borde ascendente de selección de chip. De manera similar, los ADC a menudo usarán la transferencia SPI para iniciar (y, a veces, tiempo) la conversión, por lo que necesitan que el chip seleccione flanco descendente como su desencadenante.
Su hoja de datos en realidad no dice nada sobre cómo manejar su chip particular sobre SPI, y no estoy lo suficientemente motivado para googlearlo. Ejercicio dejado para el lector ...;)
fuente
Sin saber nada específico sobre el dispositivo esclavo SPI, no, no puede simplemente atar SS bajo.
Muchos dispositivos utilizan el borde de ataque de SS para restablecer su lógica interna al comienzo de una nueva transacción. Por ejemplo, las memorias pueden interpretar los primeros dos bytes como dirección, luego los bytes posteriores como datos. Algunos recuerdos no realizan la escritura física hasta que se desautoriza SS.
Para algunos dispositivos con el protocolo correcto, es posible que pueda salirse con la suya. Sin embargo, no funcionará con la mayoría de los dispositivos disponibles.
fuente