No sé qué quiere decir con "UWB" (use abreviaturas estándar o comunes, no, no lo voy a buscar, es su trabajo para explicarlo), pero muchos muchos micros tienen A / D de 10 bits. y SPI hardware. Incluso sin el hardware SPI, SPI es fácil de hacer en el firmware controlando las líneas de E / S directamente.
En la línea de Microchip, hay un amplio espectro que cumple con estos requisitos. Un PIC 16 de gama baja puede ser pequeño, barato y de muy baja potencia. Un dsPIC33 rápido puede ejecutar hasta 40 MIPS pero, por supuesto, utilizará más potencia. Hay varios PIC 18 y PIC 24 en el medio.
Lo que necesita explicar es qué tan rápido necesita muestrear el A / D de 10 bits y qué debe hacer el micro a estos valores de 10 bits antes de transmitirlos a través de SPI.
Esta "respuesta" es más un comentario porque falta mucha información importante. Puede convertirse en una respuesta si coopera y responde a las preguntas específicas , no a lo que le apetece responder o si cree que es importante. Tal como está, esta pregunta es demasiado vaga para ser respondida razonablemente y debe cerrarse. La gente vendrá y la cerrará cuando la encuentren. Cuando se emiten 5 votos cerrados, se termina. El reloj está corriendo. Usted puede tener sólo unos minutos a unas pocas horas. Haga lo que dije exactamente como lo dije rápidamente y puede obtener su respuesta. Ignórelo y no coopere, y será enviado a casa sin una cookie.
Añadido:
Ahora ha agregado que la frecuencia de muestreo A / D es de 500 kHz y que estos datos en bruto A / D deben transmitirse a través de SPI. Dado que el A / D es de 10 bits, parece que aquí es donde obtuvo el requisito de datos SPI de 5 Mb / s.
Esto es factible, pero requerirá un micro de final razonablemente alto. El factor limitante es el A / D de 10 bits a una frecuencia de muestreo de 500 kHz. Eso es bastante rápido para un micro, por lo que limita las opciones disponibles. Otra cosa a considerar es que SPI es más que solo enviar los bits. Es posible que los bytes se deban transferir en trozos con la selección de chip activada y anulada por trozo. Por ejemplo, ¿cómo se empaquetarán estos datos de 10 bits en bytes de 8 bits, o en absoluto?
El bucle de operación principal del firmware será bastante simple. Probablemente configure el A / D para hacer conversiones periódicas automáticas e interrumpir cada 2 µs con un nuevo valor. Ahora tienes la mayoría de 2µs para enviarlo al SPI. Si el dispositivo realmente puede aceptar un flujo de bits, entonces podría ser más fácil hacer el SPI en el firmware. La mayoría del hardware SPI quiere enviar 8 o 16 bits a la vez. Tendría que almacenar en búfer los bits y enviar una palabra de 16 bits 5 de cada 8 interrupciones. Podría ser más fácil simplemente enviar 10 bits cada interrupción en el firmware.
Enviar bits SPI en el firmware si solo necesita controlar el reloj y la salida de datos es bastante fácil. Por bit, tienes que:
- Escriba el valor de bit en la línea de datos.
- levantar el reloj
- reloj inferior
Tendría sentido desenrollar este bucle con la lógica del preprocesador o algo así. Un PIC 24H puede funcionar hasta 40 MIPS, por lo que tiene 80 instrucciones por interrupción. Obviamente no puedes usar 8 instrucciones para enviar cada bit. Si puedes hacerlo en 6 debería funcionar. Hay una cierta sobrecarga para entrar y salir de cada interrupción, por lo que puede hacer que todo sea un circuito de sondeo en espera del A / D, pero luego el procesador no puede hacer nada más. Probablemente trataría de incluir esto en la rutina de interrupción A / D utilizando todos los trucos posibles para que queden al menos unos pocos ciclos para las tareas en segundo plano, como saber cuándo parar, etc.
Echa un vistazo a la línea PIC 24H de Microchip. Creo que la mayoría, si no todos, tienen A / D que pueden hacer 500 kbit / s, y todos pueden funcionar al menos hasta 40 MIPS. La nueva serie E es aún más rápida, pero no estoy seguro de cuán real es eso todavía.