5 votos

¿Cómo puedo búfer SPI?

Tengo una tabla con un dispositivo que envía los datos a través de SPI (como dispositivo esclavo) y un microcontrolador. El dispositivo señala que se dispone de datos (24 bits) mediante el establecimiento de un determinado pin baja, alrededor de 8000 veces por segundo. Si los datos no se lee antes de la próxima datos disponibles se pierde. Por desgracia, el microcontrolador puede a veces ser ocupado con otra tarea, como mucho 1 a 2 milisegundos.

Me gustaría alguna manera de leer los datos desde el dispositivo siempre está disponible en un búfer FIFO o de algún tipo. El microcontrolador puede recuperar los datos después cuando no está ocupado. Yo también quiero ser capaz de hacer SPI leer/escribir directamente en el dispositivo cuando el buffer está vacío. ¿Cuál es la mejor manera de poner esto en marcha?

10voto

AnonJr Puntos 111

Me temo que la respuesta va a ser un microcontrolador o de otro dispositivo programable. Mi razonamiento es el siguiente:

  1. El sensor es un dispositivo esclavo, no un maestro.

  2. Los dispositivos esclavos necesidad de un reloj externo para el reloj de los datos.

  3. Pero sólo el 24 pulsos.

  4. La Simple lógica de los dispositivos no están establecidos con carácter general para hacer su propio reloj.

  5. Por lo tanto, la solución más sencilla será un microcontrolador con dos SPI periféricos y la memoria suficiente para almacenar en búfer a través de su máxima latencia de interrupción. Elegir un micro con un reloj interno y la correspondiente tensión de alimentación para el circuito. Tal vez MSP430F5151.

Ahora, si el sensor fue un SPI maestro, entonces usted podría ser inteligente con multiplexado de los pines y sólo tiene que utilizar un Microchip de serie SRAM, la configuración de la escritura con el microcontrolador, a continuación, dejar que el sensor de seguir escribiendo en la memoria RAM. Véase por ejemplo, la Lógica de Camarón analizador lógico para el uso creativo de la serie de RAM partes.

El consumo de potencia de cálculo con el microcontrolador.

Por petición popular, vamos a estimar el consumo de corriente para el MSP430 que he enlazado más arriba.

MSP430 logra de baja potencia con un conmutables de alta velocidad de reloj de ACA, que sólo tendrá que ejecutar para la duración de la transferencia de datos.

Vamos a elegir de 8 MHz SPI del reloj. 24-bits de transferencia será, por tanto, tomar 24/(8 MHz) o 3 microsegundos. De la hoja de datos, el DCO toma 1.6 mA máximo y 6.5 microsegundos máximo para iniciar a las 8 MHz. De manera que toda la transferencia tarda unos 10 microsegundos. Cada transferencia se lleva a 1,6 mA * 10 microsegundos, o 16 nC. 8000 transferencias / seg es de 128 microamperios promedio actual. Pero con el doble de esto, porque tenemos que leer así. (Este es un poco pesimista, como el reloj no necesita ejecutar durante un SPI esclavo de la transacción.) Así que decir que un promedio actual de 256 microamperes.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X