obtener valores PWM a través de i2c

0

-corto respuesta: usando un arduino hace el trabajo- "Leyendo la señal del receptor PWM usando Arduino": enlace

Acabo de comenzar a controlar circuitos electrónicos con software, por lo que tengo muy poca experiencia.

Estoy buscando una manera de obtener una señal PWM en mi pi frambuesa. (En particular, forme un receptor RC, de modo que pueda modificar la señal y transmitirla a los servos, un poco como vuelo por cable utilizado por los aviones modernos. Ya he logrado enviar PWM a los servos utilizando el pca9685).

Si hubiera un dispositivo similar, eso es exactamente lo contrario: leer las señales PWM entrantes y convertirlas en una señal que podría recibir a través de I²C, sería increíble. No he encontrado nada de eso. Si no existe tal cosa, ¿tienes alguna idea de cómo podría superar el problema?

Mi PWM es de alrededor de 50 kHz con pulsos entre 900 y 2100 ns. Necesito al menos una precisión de + -25ns.

    
pregunta Simon

1 respuesta

0

En Raspberry Pi (cualquier modelo) tienes varias entradas GPIO. Es posible que desee programarlos para la detección de flancos ascendentes y descendentes, marcando la marca de tiempo en cada uno de los eventos y calculando el PWM mediante programación. Sin embargo, esto requiere habilidades de programación del controlador del kernel de Linux, ya que la interfaz del espacio de usuario a GPIO puede ser demasiado lenta para proporcionar una respuesta adecuada.

Alternativamente, puedes usar la entrada ADC de Raspberry Pi conectada a tu señal PWM entrante a través de un filtro RC de paso bajo.

También puede usar un ADC I2C externo con un filtro de paso bajo RC o puede crear su propio lector PWM I2C digital con un chip STM32F030 adicional y su temporizador de uso general en el modo Captura de entrada.

Es posible que desee revisar las respuestas a esta pregunta en Raspberry Pi StackExchange: enlace

    
respondido por el Alexander Amelkin

Lea otras preguntas en las etiquetas