Is anyone aware of a straightforward way of generating PWM signals from a GPIO pin on the Jetson Nano?
In reviewing lots of articles, it seems most people end up either using an arduino, or a PCA9865 connected to the Jetson Nano to do PWM to control servos.
Given we are trying to operate at the “edge” with the Jetson Nano, it seems that a straight forward PWM capability, without extra hardware would be an incredibly valuable capability.
I have seen articles suggesting complicated ways it “might” could be done, but have not found any straightforward explanations, and confirmation that it works.
Modern OS, including linux, windows, etc., are not real time OS. For real time process such as PWM servos control, they may have some issues. Depending on the requirements, some non-real-time PWM control, such as LED or FAN control, it is still fine. But for real-time PWM control, the individual real-time control module should take the place.
However, it is still possible to do the job with only Jetson Nano itself. It may need some kernel tweak and testing. A lot of work has been done on Raspberry Pi platform.
Is it still reliable when CPU is on heavy load or multitasking heavily? I dont know.
I wanted to control the PWM of the motor driver, I was First tried the following procedures to activate the PWM outputs,
# Pre-test configuration, if boot-time pinmux doesn’t set up PWM
# Set BOARD pin 32 as mux function PWM (set bits 1:0 to 1 not 3):
# sudo busybox devmem 0x700031fc 32 0x45
# Set BOARD pin 32 as SFIO (clear bit 0):
# sudo busybox devmem 0x6000d504 32 0x2
Then, when i check the output signal the pwm worked well. After worked with several things, the signal is not the same output as before. Hence, I re tried the activation procedure but, some errors occured as follow;
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package devmem
E: Unable to locate package 0x700031fc
E: Unable to locate package 32
E: Unable to locate package 0x45