PIC SPI maestro y esclavo al mismo tiempo

-1

Necesito implementar un dispositivo esclavo SPI, y SPI master, la idea es un "hombre medio" SPI.

Estoy familiarizado con el desarrollo de avr y mbed, perdí el contacto con PIC hace mucho tiempo, por lo que esta será una oportunidad para reconectarme.

Requisitos:

1) paquete DIP

2) 2048-3000 bytes ram para contener datos variables

3) 2 x canales SPI uno para maestro y otro para el esclavo

4) MPLAB XC * Versión gratuita

5) 3.3v logic & vcc

Fui a MAPS y obtuve algunas opciones, elegí el PIC18F27K40.

Preguntas:

1) ¿Es posible manejar canales SPI maestros y esclavos al mismo tiempo?

2) ¿Puedo confiar solo en el reloj interno? estoy preocupado con el rendimiento (esclavo spi)

3) ¿Debo elegir un PIC diferente?

4) cualquier código / fragmento de muestra o enlace, me preocupa cómo manejar (reenviar) datos a la segunda línea spi mientras esté disponible para el maestro.

Gracias por leer.

===

¿Por qué el voto negativo ? ¿Es estúpido simple? Nadie proporciona un código de ejemplo o un enlace o una sugerencia.

    
pregunta Pedro Pereira

1 respuesta

0

Los canales SPI en sí mismos son lo suficientemente rápidos, y pueden ser activados por interrupciones, lo que le da esa opción. Los dos factores que tienen más probabilidades de afectar su metodología son:

1) ¿Cuántas otras tareas deberá realizar el PIC más allá de administrar los dos puertos SPI? Si está realizando un procesamiento intensivo continuo de la CPU y también intenta mantener los dos puertos SPI completamente ocupados, es posible que le resulte difícil. Como cuestión práctica, no sospecho que haya un problema, pero no conozco los detalles de su aplicación.

2) ¿Cómo se sincronizarán los otros dispositivos esclavos y maestros con este PIC? ¿Habrá apretón de manos requerido? Si los esclavos no pueden garantizar la disponibilidad de datos en todo momento en que los maestros puedan comenzar una transferencia, entonces se requiere algún tipo de sincronización / intercambio de manos. Por lo general planeo usar al menos una línea de E / S adicional como una línea de intercambio por canal SPI.

  • Puede ser útil saber que puede variar las conexiones de la línea de datos SPI para satisfacer sus necesidades. Por ejemplo, puede hacer que el otro maestro lea un byte directamente desde el otro esclavo, mientras deja una copia del byte en el búfer de entrada del esclavo PIC SPI. O bien, su maestro PIC SPI podría leer un byte del otro SPI esclavo y también enviar una copia del byte a un tercer esclavo. Lo que hace esto posible es que los registros de envío y recepción de datos son básicamente registros de desplazamiento.
respondido por el Entrepreneur

Lea otras preguntas en las etiquetas