2 votos

STM Salida Analógica

¿Es posible usar el pin GPIO de STM32F4 como salida analógica? Según lo que he leído, el modo analógico es un modo de entrada, entonces ¿hay alguna forma, algo similar al analogWrite de Arduino?

4voto

Andrew Walker Puntos 9038

El "analog out" de Arduino es en realidad una señal digital modulada por ancho de pulso, que cuando se promedia externamente (eléctrica, mecánicamente o a través de la percepción humana) puede ser efectivamente analógica para algunos propósitos.

La serie STM32 tiene numerosos canales de contador que se pueden utilizar para PWM de hardware. No está disponible en todos y cada uno de los GPIO, pero está disponible en muchos de ellos; consulta el manual de referencia del programador para la parte específica de tu interés, ya que la arquitectura periférica varía un poco en la familia.

También puedes intentar PWM de software utilizando una interrupción de temporizador. Esto, por supuesto, tendrá una frecuencia máxima más baja, puede tener algo de oscilación y restará tiempo de tu capacidad para lograr otras cosas. Sin embargo, estos procesadores tienen frecuencias de reloj internas mucho más altas (hasta 160 MHz para algunos F4), en comparación con un Arduino basado en ATmega, por lo que esta puede ser una opción realista para ti.

Como mencionó Arsenal, algunos pero de ninguna manera todos los STM32 tienen una salida de convertidor digital a analógico real (especialmente las variantes analógicas de la serie F3), pero el PWM es una opción en todas las partes.

3voto

Stefan Arentz Puntos 151

El modo análogo también se puede utilizar como salida analógica en conjunto con el periférico DAC de 12 bits:

Nota: Una vez que se habilita el canalx del DAC, el pin GPIO correspondiente (PA4 o PA5) se conecta automáticamente a la salida del convertidor analógico (DAC_OUTx). Para evitar el consumo parásito, el pin PA4 o PA5 primero debe configurarse como analógico (AIN).

(como se ve en el manual de referencia en el capítulo de DAC)

Nota: No todos los STM32F4 vienen con el DAC, por lo que en algunos chips no será posible generar directamente un voltaje analógico arbitrario. Consulta la hoja de datos de los dispositivos para verificar qué periféricos están disponibles.

1voto

whatUwant Puntos 131

Como se mencionó anteriormente, analogWrite de Arduino es en realidad PWM. Puedes ver un ejemplo de código PWM para STM32F4 aquí.

También puedes probar una de las placas de desarrollo que tienen DACs, como esta NUCLEO-F401RE

0voto

shash Puntos 668

Hay un DAC en el STM32F4, o al menos en los que he utilizado. La forma de utilizarlo es escribir código en C para controlarlo. Es algo similar en apariencia a la escritura analógica de Arduino, pero eso es PWM y no analógico. Tendrías que aprender algo nuevo para pasar de una plataforma a la otra.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X