Interfaz Periférica Serial

5

Estaba revisando un artículo relacionado con SPI . Había una configuración llamada 'Encadenamiento en margarita', en el caso de esclavos múltiples. Hasta ahora, lo que he entendido sobre SPI (basado en Wikipedia) es:

SPI puede transferir y recibir algunos datos simultáneamente.

Mis preguntas son:

  1. En el caso de varios esclavos, ¿significa que transfiere datos a muchos esclavos, o transfiere datos a uno de los esclavos, en medio de una conexión a muchos dispositivos esclavos?

  2. De acuerdo con Nota de aplicación 3947, Dispositivos SPI de conexión en margarita , figura 4, se da por hecho que el maestro mantiene su SS bajo, hasta que se envían todos los datos que necesita enviar a los tres dispositivos esclavos y luego hace el pin alto. Si es así, ¿qué datos & ¿De qué dispositivo esclavo recibe el maestro al final? (Como ya aprendí, el maestro siempre recibe algo a cambio).

  3. Como se indica en Arquitectura y programación de 8051 MCU's , en modo mejorado, la habilitación de carga (LDEN) & Se verifica que WCOL mueve el siguiente byte al búfer. ¿Por qué necesitamos revisarlos a ambos? ¿No es suficiente la WCOL para eso?

  4. Es estados: "El maestro configura el reloj: la frecuencia es menor o igual a la frecuencia máxima que admite el dispositivo esclavo. Dichas frecuencias suelen estar en el rango de 1 a 100 MHz." ¿Cómo encuentra el maestro la frecuencia de reloj del esclavo?

  5. ¿Los registros de SPSR, SPCR y SPDR permanecen en maestro y esclavo?

  6. Dado que, el indicador SPIF se establece después de la finalización de la transmisión. Si el SPIE también está habilitado, entonces se produce una interrupción. ¿Las banderas se ponen en maestro y esclavo? ¿La interrupción se produce tanto en el amo como en el esclavo? Se indica en AVR151: Configuración y uso de The SPI acerca de las interrupciones tanto en master como en esclavo. Pero, no pude entenderlo claramente.

  7. ¿Cuál es la diferencia orientada a la aplicación entre el modo normal y el modo mejorado? Ambos parecen esperar a que los datos se envíen / reciban. ¿Cuál es la principal diferencia?

pregunta Gomu

2 respuestas

3

Algunos puntos. Ese artículo de Maxim apunta a un tipo específico de dispositivo spi. Principalmente los que solo escriben. Observe que solo se muestra MOSI, no MISO. Además, estos dispositivos están encadenados, por lo que los datos se cambian de un dispositivo a otro, como un registro de desplazamiento. (Un uso común de los periféricos SPI en un microcontrolador es usarlos para manejar registros de desplazamiento comunes).

SPI no requiere el maestro para recibir datos. Un esclavo no es requerido para responder . Incluso puede haber leído solo dispositivos SPI, donde el Maestro simplemente registra los datos del Esclavo (solo usa MISO). Incluso puede tener una variación de 3 hilos donde MOSI y MISO están unidos (solo half duplex). Todo depende del tipo de dispositivo spi que esté utilizando. Además, SPI puede realizar transferencias Full Duplex, pero no todos los dispositivos lo admiten. Como dice Wikipedia, la mayoría de los dispositivos hacen half duplex, incluso cuando están cableados en modo de 4 cables.

En esa nota, los dispositivos SPI son de solo escritura.

En cuanto a la pregunta de frecuencia de reloj, no hay negociación automática de velocidades de reloj. Esto se decide mientras el maestro está siendo programado. Tienes que tenerlo en cuenta.

    
respondido por el Passerby
0
  

En caso de esclavos múltiples, significa que transfiere datos a   muchos esclavos, o transfiere datos a uno de los esclavos, en medio de una   conexión a muchos dispositivos esclavos?

El bus SPI es un bus multi-tap para las señales "MOSI", "MISO" y "SCK". Cada esclavo tiene una señal "! SS" separada.

  

De acuerdo con este enlace Figura 4, dado que, el maestro mantiene   su SS baja, hasta que todos los datos que necesita enviar a los 3 dispositivos esclavos   Se envía y luego hace que el pin alto. Si es así, ¿qué datos & a partir del cual   dispositivo esclavo, el maestro recibe al final? (Como, he aprendido que,   el maestro siempre recibe algo a cambio)

Si un dispositivo específico no afecta al pin MISO, entonces varias instancias de ese dispositivo en el mismo bus podrían recibir los mismos datos al mismo tiempo manteniendo el pin! SS de cada uno de esos esclavos al mismo tiempo . Este no es el uso común de SPI. En el uso común, se dirige a un solo esclavo a la vez, y el maestro recibe todo lo que el esclavo está desconectando mientras el maestro registra los datos en el esclavo.

  

Como se indica en este enlace, en modo mejorado, la habilitación de carga (LDEN) & WCOL   se comprueba para mover el siguiente byte en el búfer. ¿Por qué necesitamos   revisa ambos? ¿No es suficiente la WCOL para eso?

Esto es específico para cualquier implementación de dispositivo de la que estés hablando.

  

Se da que: "El maestro configura el reloj - frecuencia menor que o   igual a la frecuencia máxima que admite el dispositivo esclavo. Tal   las frecuencias están comúnmente en el rango de 1–100 MHz. "¿Cómo funciona la   ¿El maestro encuentra la frecuencia del reloj del esclavo?

Cada esclavo puede tener un límite diferente en la velocidad superior del reloj que admite. Cada maestro puede tener un límite diferente sobre qué relojes puede generar. Depende del diseñador del circuito y del programador del dispositivo maestro, seleccionar los dispositivos que trabajarán juntos y configurar la frecuencia del reloj para que funcione.

  

¿Los registros SPSR, SPCR y SPDR permanecen tanto en master como en   esclavo?

Eso es específico para el dispositivo en particular que estás preguntando. Esos son como los registros de control SPI en Atmega MCU (o alguien que usa exactamente los mismos nombres de registro). Los MCU Atmega con hardware SPI tienen esos registros, y pueden programarse para funcionar en modo maestro y esclavo. Sin embargo, cada dispositivo SPI de bus separado puede usar una implementación real diferente, siempre y cuando se respete el protocolo de señal.

  

Dado que, el indicador SPIF se establece después de la finalización de   transmisión. Si el SPIE también está habilitado, entonces se produce una interrupción.   ¿Las banderas se ponen en maestro y esclavo? La interrupcion es   Producido tanto en amo como en esclavo? Se da en este enlace sobre   interrupciones en el maestro y amp; esclavo. Pero no pude entenderlo.   claramente.

Una vez más, ese indicador es específico de la implementación de SPI en un dispositivo en particular; En este caso parece una CPU Atmega. Si una CPU Atmega ejecuta SPI en modo esclavo, sí, aumentará la interrupción SPIF cuando reciba un byte en modo esclavo.

  

¿Cuál es la diferencia orientada a la aplicación entre el modo normal y amp;   modo mejorado? Ambos parecen esperar a que los datos se envíen / reciban. Cual es el   principal diferencia?

Depende de qué "modo mejorado" esté hablando y sería específico para ese dispositivo en particular.

    
respondido por el Jon Watte

Lea otras preguntas en las etiquetas