Tolerancia de las tasas de bits de comunicación SPI (transmisor y reloj maestro demasiado rápido)

0

Me pregunto qué piensan las personas sobre lo que sucede cuando los tiempos SPI entre el maestro y el esclavo están "un poco" desactivados. Un poco siendo 2.34375% demasiado lento.

Mi configuración es:

  • El dispositivo esclavo, que no puedo cambiar, quiere recibir un reloj de 128000.
  • Mi dispositivo maestro, que puedo cambiar , actualmente está bloqueado en 125000 debido al cristal que tengo en él, 8 MHz.

He pedido un cristal de 8.192 MHz de RS con condensadores que llegará en unos pocos días. Cuando se ejecute mi dispositivo maestro, estarán en armonía con la tasa de bits.

Mientras tanto, cuando leo del esclavo, está devolviendo datos pero es un poco desordenado. No sé si es mi desajuste de la tasa de bits o algún otro problema de comunicaciones que todavía no tengo bajo control.

¿Qué piensas? * ¿Nunca irás a trabajar hasta que los bps estén emparejados? * Debería haber algunos datos ingresando correctamente, pero después de N bits empezará a ir mal.

Sé que esto último puede aplicarse a UART pero no estoy seguro de SPI. Por supuesto, en UART no hay un reloj compartido, y en mi configuración, proporciono un reloj que es 2.34375% demasiado lento.

Gracias por tus pensamientos.

Rich

Añadido: el kit con el que estoy hablando tiene alrededor de 15 años. No será algo moderno de 32 bits ARM, es un reproductor de CD para el automóvil de principios del milenio.

Imágenes que muestran comportamientos 'buenos' y 'malos':

Este es el comportamiento adecuado, entre mi reproductor de CD y el equipo conectado geniune:

Estoesconmifrecuenciaderelojincorrecta:

Esto me hace preguntarme si el dispositivo esclavo es de hecho un dispositivo SPI real, o algún microcontrolador que me está bloqueando el tiempo.

    
pregunta RichColours

1 respuesta

1

La diferencia de reloj no es un problema con spi, ya que el maestro genera el reloj que el esclavo finalmente usa. Debes comprobar el reloj máximo permitido del esclavo por supuesto. Probablemente esté considerando configurar los ajustes de reloj tx de su periférico del esclavo, pero no se utilizan en el modo esclavo. La configuración puede influir en el reloj máximo permitido si se trata de un devider de reloj para el periférico en su conjunto. Ajústelo a la velocidad máxima en modo esclavo si el consumo de energía no es un problema.

    
respondido por el martijndb

Lea otras preguntas en las etiquetas