Hello
I want to use the Radxa Zero for teaching robotic and i build a camera guided robot with this board.
I went in trouble with the PWM to control the DC motor via an optocoupled driver (DFrobot DRI0041).
One PWM work well but the level is low: 1.12V high: 3.2V it is on pin 40 - GPIOAO_11. The other is on pin 18 - GPIOX_8, when nothing is connected the level is good (0-3.3V) but when connecting the driver levels are : low 1.4V and it is not detected as 0.
I have inverted the 2 inputs of the driver. They work well with pin40 but not pin18.
I try to play with drive strength but the devicetree is not my cup of tea… I try this ( but doing that don’t change anything).
But how can i change GPIO drive strength. I don’t see them in devicetree, only peripherals. I have other board and i suspected this will cause me trouble.
I have ten zero boards, and i need to change some drive strength pins 500µA is to small for my app. I arrive to change this for my two PWM ( see upper post).
But I fail after a lot of search and try to modify drive strength of a single GPIO ( more if i succes) , for example the GPIOAO_9 in the devicetree.
I’m not an expert of devitree, please any advice is welcome
Best regards
Thank for the reply and the link. I was arrive to change pwm drive strength, but my motor controller need also some gpio with “high” current, and i search how to modify that in device tree like my last post, but in some cases I lose PWM on the pwm_ao_a_pins an drive strength not change, and for some try with another overlay i don’t lose the pwm but the drive strength don’t change.
I don’t see were the value of drive strength are define for common Gpio in the link you give.
Here is an example of how GPIO’s strength was defined. I’d assume undefined are default to the lowest level of drive strength to save power. Depending on which bank your GPIO pin is located you may need to change function to gpio_aobus. You can check gpio_aobus_groups and gpio_periphs_groups in the last file to see which pin belong to which bank.
As I’m writing this reply it occurs to me that you might have mismatched groups and function in your dtb overlay. So try copy exact section from meson-g12-common.dtsi and add your drive-strength line.
But same result, no change. So i really don’t know how to change for example GPIOAO_9 drive strength in device tree. If you have a solution, i get it.
I found an other method to change the drive strength. The alternative is to use /dev/mem and busybox (or other mechanism) to write directly to register ( And i hope the S905Y2 have the same register than the S905D3) like that:
`
busybox devmem 0xFF80001c w 0x00CC0000
But I rather the devicetree solution, if you have an idea.
Best regards
`