Esta es una nueva perspectiva de seguimiento con respecto a mi pregunta anterior Mensajes para el protocolo SPI .
Una idea de esa pregunta es usar la línea SS para saber que se está enviando un nuevo mensaje del maestro al esclavo. El maestro será el STM32 y el esclavo el Arduino, ver a continuación:
Slave <--- Master
Arduino (SPI) STM32
| ^ ^ ^
V | | |
RS485/DMX512 3x UART/MIDI
El maestro recibe señales MIDI de varias fuentes, las procesa, transmite mensajes MIDI (cambiados) y envía mensajes SPI al Arduino que envía las señales DMX.
Hasta ahora todo bien, actualmente estoy implementando el código Arduino (incluida una aplicación de prueba de Windows).
La razón por la que uso un Arduino para RS485/DMX es principalmente porque no pude hacerlo funcionar en un STM32, pero también para aliviar la potencia de procesamiento del STM32.
Sin embargo, necesito más SRAM en Arduino, así que usaré un chip SPI SRAM (32K256). El problema es que no estoy seguro de poder dejar que Arduino sea el esclavo.
SPI RAM 32K256
|(SPI)
V
Slave <--- Master
Arduino (SPI) STM32
| ^ ^ ^
V | | |
RS485/DMX512 3x UART/MIDI
Algunas cosas que consideré:
Afaik, la comunicación debe ser completamente síncrona, pero no estoy seguro de si hay algo de 'relajación' debido a los búferes dentro de los periféricos SPI.
Más información de fondo sobre todo el proyecto:
Cualquier idea sería útil.
Hacer que Arduino sea el maestro y sondear al STM32 (lo que resulta en mis eventos de encuesta inútiles probablemente)
Quizás pueda tener una línea de "interrupción" adicional desde el STM32 al Arduino para indicar cuándo hay datos disponibles. Podría desencadenar directamente una interrupción en el Arduino.
simular este circuito : esquema creado con CircuitLab
Si tiene paquetes de datos de tamaño fijo, los periféricos STM32 SPI+DMA pueden manejar el tráfico esclavo SPI de forma autónoma, sin ninguna intervención de la CPU después de que se active la línea de interrupción (OK, la señal debe restablecerse eventualmente, una interrupción de transferencia DMA completa o una -disparo temporizador puede hacer eso).
NSS
en la documentación de ST. I N verted / N egated S lave S elect, supongo.
Pedro Smith
michel keijzers
Andy alias
david tweed
michel keijzers
michel keijzers
david tweed
Sólo yo
michel keijzers
david tweed
michel keijzers
michel keijzers