Reloj SPI y señales CS

0

Tengo una duda con respecto a SPI. Soy muy nuevo en este módulo. Sé que la comunicación se inicia al afirmar el CS (alto a bajo) en SPI. Y luego, en cada reloj basado en polaridad y fase, los datos se transmiten / muestrean. Mi duda es que una vez que se hayan transferido los datos y se haya confirmado nuevamente la CS (baja a alta), el pulso del reloj continúa o el pulso del reloj solo está allí hasta que se mantiene la comunicación. La imagen que se muestra es la forma de onda al intentar probar la comunicación SPI. El registro maestro de cambio de SPI es de 16 bits. Estoy transfiriendo cuatro 16 bits de datos durante el período bajo de CS (es decir, cuando CS está habilitado). Pero durante cada reloj obtengo 16 pequeñas formas de onda incompletas. Sé que esto está mal. ¿Podría alguien darme la resolución o sugerencia para rectificar esto?

Estoyesperandoalgocomoesto,aunquetransfieredosdatosde8bitscadaunoa8pulsosdereloj,quierotransferir4datoscadaunoaunpulsoderelojde16bits.Cuandoaumentomibúferdedatosde4a5,recibo5pulsoscuadradosycadapulsotiene16temblores.

Por favor, responde.

    
pregunta Akshara Prasad

3 respuestas

1

Termina cada vez que el maestro dice que termina. Si el maestro es una MCU, consulte la hoja de datos de la MCU para conocer su comportamiento.

    
respondido por el Ignacio Vazquez-Abrams
1

Un dispositivo esclavo SPI es seleccionado por su propia señal CS * (activa-baja). Si el pin CS * del Esclavo es alto, se requiere que ignore cualquier pulso de reloj que pase. Si el pin CS * está bajo, debe registrar la entrada y salida de los datos según lo exijan los impulsos del reloj.

Esto le permite tener múltiples dispositivos esclavos SPI conectados a un dispositivo maestro SPI.

En ese caso, se le permite tener múltiples dispositivos SPI Master compartiendo uno o más dispositivos esclavos. Se requiere que los Maestros coordinen su uso del reloj SPI y las líneas de selección de chips, para que ambos no intenten usar las líneas al mismo tiempo. SPI no discute ni exige el mecanismo de sincronización.

    
respondido por el John R. Strohm
0

El SPI Master mantendrá el reloj alto / bajo hasta que la comunicación sea iniciada por el maestro, momento en el cual el maestro pulsa bajo / alto para iniciar y pulsa durante la duración (bajo a alto, bajo a alto, etc.) de la comunicación. Una vez que se realiza la comunicación, el maestro saca el reloj alto / bajo y permanece alto / bajo hasta que el maestro inicie nuevamente la comunicación.

Desafortunadamente, no tengo las formas de onda para confirmar esto, sin embargo, estuve trabajando con SPI hace unos meses y confirmé que este era el caso en mi situación.

EDITAR: Después de ver tu imagen, me di cuenta de que estaba confundiendo a SCLK con CS / SS. Así que lo que dije es verdad para el reloj en mi situación. Ahora, el CS / SS es necesario cuando se usa más de un dispositivo esclavo. El maestro mantendrá la línea baja para el esclavo seleccionado mientras se comunica y luego, cuando termine, vuelva a subirla. Cada esclavo necesita su propia línea CS / SS para seleccionarlos individualmente o una línea para seleccionar todos los esclavos al mismo tiempo.

Esto podría ayudar:

enlace

    
respondido por el TronicZomB

Lea otras preguntas en las etiquetas