¿Qué microcontrolador PIC puede interactuar con un giroscopio ADXRS800 con salida SPI?

Directo al grano...

Planeo usar un giroscopio ADXRS800 y su salida es un mensaje SPI de 32 bits, ¿significa esto que solo puede conectarse con un microcontrolador PIC de 32 bits, o podría usar mi microcontrolador de 8 bits?

Respuestas (4)

Por supuesto, puede usar cualquier µC de 8 bits.

Mensajes de más de un byte que puede manejar en múltiples piezas de un solo byte.

Echa un vistazo a algún código de ejemplo.
Por ejemplo, aquí puede encontrar varios ejemplos para conectar un PIC a varios periféricos.

Como dijo Curd, puede usar cualquier microcontrolador siempre que tenga tres líneas de salida digital y una línea de entrada digital. El hardware SPI en los PIC se limita a transferir fragmentos completos de 8 bits. Como necesita transferir un múltiplo entero de eso, puede usar el hardware directamente. Simplemente realiza cuatro transferencias de 8 bits consecutivamente. Los PIC de 16 bits también tienen un modo SPI de 16 bits en el que transfiere fragmentos completos de 16 bits a la vez. Eso también funcionaría para ti, ya que 32 es un múltiplo entero de 16.

SPI es un protocolo muy simple de implementar para el maestro. Dado que el maestro posee el reloj, SPI se puede implementar fácilmente en el firmware. Lo he hecho varias veces, a veces solo para usar pines diferentes a los del periférico SPI dedicado. Por supuesto, con una implementación de firmware, puede transferir la cantidad de bits que desee en un mensaje.

El tamaño de palabra nativo del procesador no tiene nada que ver con su problema. Eso solo le dice en qué tamaño de fragmento de bits puede operar a la vez. Eventualmente, puede operar en cualquier número de tamaño con cualquier procesador, solo que se necesitarán un montón de instrucciones para manipular palabras más anchas que las rutas de datos del procesador.

La cantidad de bits que tiene un microcontrolador es la cantidad de bits en los que puede hacer cálculos de forma nativa. Un micro de 8 bits normalmente puede multiplicar, sumar, restar 2 8 bits (byte) en 1 instrucción.

Si el micro tiene que hacer cálculos de 16 o 32 bits, compilará instrucciones adicionales para que eso suceda. Hará que el cálculo sea significativamente más lento, sin embargo, si eso tomaría ~400 instrucciones a 4MIPS (=16MHz PIC16/18), aún podrá procesar (teóricamente) 10KSPS. Probablemente siempre pueda modificar los cálculos para que se ejecuten más rápido en su sistema, por lo que, a menos que desee realizar varios filtros de kalman, cálculos de seno angular(), en realidad no necesita un procesador realmente grande.

(Oh, por cierto, no pude encontrar una hoja de datos del sensor, solo un resumen que dice que genera palabras de datos de 16 bits).

Consulte la herramienta de selección de productos para ayudar a reducir su búsqueda: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005 .

Como ya han dicho los anteriores, muchas opciones funcionarán, pero esta herramienta lo ayuda a pensar en otras limitaciones (como el costo, el paquete, la velocidad, el tamaño, etc.).