Hi, In case someone still needs a solution to this problem, I've written a small kernel patch: ti_ehr_pwm.patch <https://sites.google.com/site/avterekhov/ti_ehr_pwm.patch> and a short description of how to apply it: https://randomlinuxhacks.wordpress.com/2014/09/16/changing-pwm-period-on-beaglebone-black/
So far it works for me. On Thursday, June 26, 2014 8:10:26 AM UTC+2, jmc...@gmail.com wrote: > > I also tried this and had no luck :-/ > > PWM on the BBB is turning out to be more work than I had thought. > > On Monday, January 6, 2014 12:13:37 PM UTC-8, Anto Dominic wrote: >> >> Thanks, >> >> Tried your trick.... even replaced the new dtbo file.... but even after >> that I am getting the default value for Period ( ie, 5000000) and duty (ie, >> 0) ... Is there any step that you missed in between...??. Anyways thanks >> for the tip..:) >> >> On Monday, 8 July 2013 08:44:54 UTC+5:30, tohr...@gmail.com wrote: >>> >>> Hello, >>> >>> you can change period by changing dtbo files. >>> >>> 1 Generate dts file from original dtbo file >>> dtc -I dtb -O dts -o /lib/firmware/bone_pwm_P8_13-00A0.dts /lib/firmware >>> /bone_pwm_P8_13-00A0.dtbo >>> >>> 2 Change period >>> open file "/lib/firmware/bone_pwm_P8_13-00A0.dts" with editor at >>> lines around line 26: >>> pwm_test_P8_13 { >>> compatible = "pwm_test"; >>> pwms = <0xdeadbeef 0x1 0x7a120 0x1>; >>> >>> and change to following, for example change period to 100000ns=0.1ms >>> >>> pwm_test_P8_13 { >>> compatible = "pwm_test"; >>> pwms = <0xdeadbeef 0x1 100000 0x1>; >>> >>> where >>> -3rd parameter of line"pwms = ~" is period. >>> -period (and other parameters) can be written in either decimal or >>> hexadecimal of 0xABC format. >>> -default period 0x7a120 is 5000000 in decimal. >>> -As you mentioned, Both A and B output for one eHRPWM must have same >>> period setting. >>> If not, the second device will fail to setup at "echo (device)> >>> /sys/devices/bone_capemgr.*/slots" command. >>> >>> 3 Compile to new dtbo file >>> dtc -O dtb -o bone_pwm_P8_13-00A0.dtbo -b 0 -@ bone_pwm_P8_13-00A0.dts >>> >>> You'd better back up original dtbo file before overwriting it. >>> >>> 4 Use new dtbo file. >>> echo bone_pwm_P8_13 > /sys/devices/bone_capemgr.*/slots >>> >>> >>> >>> 2013年6月4日火曜日 16時33分00秒 UTC+9 sultanof.ilo...@gmail.com: >>>> >>>> Hey, >>>> yes sure, duty must be (0 <= duty <= period). Otherwise you would try >>>> to to set a pwm duty cycle of less than 0% or more than 100%. Returning an >>>> error to the user is a proper way to handle this. >>>> >>>> As mentioned above EHRPWM1 and EHRPWM2 share the same base period (or >>>> respectively the base frequency). If I enable both PWM ouputs, writing to >>>> the period files always results in an error. Enabeling only one of the two >>>> outputs lets me change the periods. >>>> This does make sense after all. I assume the necessary crosschecking of >>>> the conditions (0 <= duty <= period) for related PWM outputs is simply not >>>> implemented yet or mayby just faulty. >>>> >>>> Am Montag, 3. Juni 2013 12:25:15 UTC+2 schrieb lawe...@gmail.com: >>>>> >>>>> Hi >>>>> >>>>> I'm just starting out, but here is what I found. Hopefully it can help >>>>> you. >>>>> The period must be greater than duty. >>>>> This worked fine for me: >>>>> echo 100000 > /sys/devices/ocp.2/pwm_test_P9_14.12/period >>>>> Period is given in ns. Duty is given in ns on/off depending on >>>>> polarity. >>>>> >>>> >>> -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.