Me pregunto cómo puede lograr que un pin GPIO con precisión alterne según un determinado patrón. Este patrón es completamente variable (sin PWM) y se almacena en la memoria.
Mi conclusión de esto es:
- El pin debe configurarse / restablecerse mediante hardware, no en un ISR
- DMA es necesario para el transporte de datos
Lo que tengo en mente:
- temporizador de cuenta
- Canal DMA para actualizar ARR con datos de patrones
- Comparar canal para alternar pin
- Segundo canal DMA para actualizar el registro del canal de comparación con los mismos datos de patrones al mismo tiempo
¿Podría funcionar? ¿O hay una manera fácil de hacer esto?
Si esto funciona, ¿podría usar una segunda comparación y un tercer canal DMA para alternar otro pin invertido al primero?
Datos y requisitos:
- Un cristal de 72 Mhz conduce el STM32
- El pulso mínimo es 10 us
- La fluctuación de fase tolerable es inferior a 100 ns
- La duración del ISR más largo es mayor que 100 ns