Puede crear sus propias señales PWM en el software, si lo desea. Contribuirá a la carga de la CPU, ya que la CPU decide cuándo subir y bajar el voltaje del pin de su elección, pero es factible. Sin embargo, a menos que esté ejecutando un sistema operativo en tiempo real, el tiempo entre los pulsos variará (“fluctuación”), y es posible que pueda lograr una resolución de tiempo para las subidas / caídas de pulsos de hasta 100 microsegundos más o menos. .
También existe la opción de dar a la CPU un solo comando que solo especifica el ciclo de trabajo y dejar que el hardware dedicado fuera de la CPU cree el PWM. La CPU ya no está involucrada en esos problemas de tiempo y puede pasar su tiempo trabajando en otras tareas. El hardware PWM es mucho más preciso cuando ocurren los flancos ascendentes / descendentes. Sin embargo, la frambuesa solo lleva un conjunto de ese hardware, y eso está conectado al pin 18 de GPIO.
La biblioteca “cableado” (enlace) parece admitir PWM en todos los pines GPIO: PWM basado en hardware si es posible, y software * de lo contrario.
- ¿Se puede programar una Raspberry Pi o similar para que actúe como una ECU para un automóvil?
- De los dos (Raspberry Pi y BeagleBone Black), ¿qué placa debo comprar si me siento cómodo con la programación en C?
- ¿Cuáles son algunos ajustes de configuración de overclock seguros para la Raspberry Pi sin tener que sobrevoltearse?
- ¿Qué preparativos debe tener antes de comenzar a programar una Raspberry Pi?
- ¿Cuál es la historia detrás del nombre 'Raspberry Pi'?
* En realidad, parece estar usando DMA (acceso directo a memoria) de alguna manera en lugar de un simple bucle de software. Eso debería hacer que el PWM sea más preciso que si hiciera un bucle simple con “encender, esperar, apagar, esperar, …”, pero aún no es tan preciso como el PWM de hardware.