Señal incorrecta en la línea MISO

0

Estoy intentando configurar la comunicación entre mi MCU y el chip esclavo, pero aquí están los resultados del analizador lógico:

Tengo un conocimiento básico del protocolo SPI pero, por lo que sé, los datos se deben muestrear en el cambio de fase de cada reloj. Las muestras obviamente se pierden en la línea MISO. ¿Qué podría salir mal?

Editar 1

Mi dispositivo esclavo es X-NUCLEO-IDB05A1

Editar 2

Problema resuelto: la señal MISO es estable cuando trabajo con la batería de la computadora portátil ... Se veía muy pobre en el osciloscopio, eso me dio una pista.

    
pregunta joe.kovalski

1 respuesta

1

La única forma en que puedo intentar explicar el seguimiento de su analizador lógico es adivinar que va de un maestro SPI de 2 cables a un esclavo SPI de 1 cable y que el esclavo se configura en un modo diferente (el maestro cambia en el flanco descendente y los pestillos en el flanco ascendente / esclavo cambian en el flanco ascendente y el pestillo en el flanco descendente) y (aún no he terminado) los resistores del esclavo están mal conectados, de modo que la única forma en que la línea MISO del esclavo está activa es cuando el maestro La línea MOSI lo está tirando alto.

No podemos saber exactamente en cuál de los 4 modos están operando el maestro o el esclavo porque no podemos ver la línea de Selección de chip.

Añadido más tarde ...

Disculpas, el modo del maestro es 3. El sentido de la CS no es parte de las definiciones de modo de acuerdo con esto .

El placa de evaluación STMicroelectronics , si no está modificada, es poco probable para contener un error. El módulo BlueTooth y la EEPROM en la placa de evaluación, de acuerdo con schematic , son ambos Dispositivos de 2 hilos (pines MOSI y MISO independientes). Sin embargo, el SPBTLE-RF specification no especifica un modo SPI. Tampoco tiene una forma de onda SPI para estudiar.

Aunque esta es una placa de evaluación, es poco probable que contenga un error. La traza del analizador lógico SPI publicada no parece correcta. Esto solo deja una mano llena de posibilidades:

  1. La prueba del analizador lógico es incorrecta. Verifique las conexiones y verifique que se esté monitoreando la señal correcta.

  2. El hardware ha sido modificado o dañado. Utilice únicamente el hardware necesario. Quita cualquier escudo extra (Arduino). Si es posible, intercambie el controlador con un controlador que funcione. Deje los puentes en su configuración predeterminada.

  3. El software ha sido modificado o dañado. Use la última versión del código de STMicroelectronics diseñado para funcionar con su versión del controlador y la placa de demostración. No modifique el software ni las configuraciones predeterminadas (si las hay).

respondido por el st2000

Lea otras preguntas en las etiquetas