¿Puede el SS SS estar bajo si solo se usa un dispositivo SPI?

7

Leí en línea que para iniciar una transacción SPI a un dispositivo compatible con SPI, la línea SS (selección de esclavo, también conocida como chip) debe establecerse en baja para toda la transacción y luego ser elevada al final de la transacción. Si hago un circuito que contiene solo un dispositivo SPI, ¿tendré que disminuir el comando de envío de la línea SS y luego subir la línea ss cada vez o puedo atar la línea ss baja y enviar comandos ilimitados? El dispositivo que estoy usando es ISD1700 chip de sonido .

    
pregunta Nick Alexeev

3 respuestas

13

[@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 de esclavos 2 ). Este comportamiento depende de la implementación de cada dispositivo individual. He visto dispositivos que pueden funcionar con el SS permanentemente activados. También he visto dispositivos que requieren caídas y bordes ascendentes en las SS.

Aunque no dice explícitamente que el SS debe estar activado,
la guía de diseño (p.31) dice que SS comienza 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 de esclavos.

    
respondido por el Nick Alexeev
4

Depende completamente del dispositivo esclavo.

Si el protocolo para el dispositivo esclavo incluye algún tipo de estructura, ya sea con paquetes de longitud fija, bytes de inicio / parada o un encabezado que especifica la longitud del paquete, entonces el dispositivo esclavo puede funcionar sin una selección de chip . Tengo un chip de memoria flash SPI en el tablero en el que estoy trabajando y parece estar perfectamente satisfecho con o sin el chip seleccionado. Puede conectarse permanentemente a 0V (habilitado) sin problemas.

Esto realmente 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 tenían el chip select seleccionado. ¡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 una selección de chips!

A la inversa, muchos dispositivos esclavos necesitan selecciones de chip para enmarcar 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 verá como una transferencia no válida y se rechazará. Los DAC a menudo cargarán el nuevo valor en la salida en el flanco ascendente de selección de chip. De manera similar, los ADC a menudo usarán la transferencia SPI para iniciar (y algunas veces) la conversión, por lo que necesitan que el chip seleccione el flanco descendente como su activador.

Su hoja de datos en realidad no dice nada sobre cómo manejar su chip en particular sobre SPI, y no estoy lo suficientemente motivado para buscarlo en Google. Ejercicio dejado para el lector ...;)

    
respondido por el Graham
3

Sin saber nada específico sobre el dispositivo esclavo SPI, no, simplemente no puedes vincular SS low.

Muchos dispositivos utilizan la vanguardia de SS para restablecer su lógica interna al inicio de una nueva transacción. Por ejemplo, las memorias pueden interpretar los dos primeros bytes como dirección, y luego los bytes posteriores como datos. Algunos recuerdos no realizan la escritura física hasta que se deselecciona 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.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas