[beagleboard] Re: PWM using eCAP module in PRU-ICSS

2020-07-19 Thread Vedant Paranjape
Hi,
I need to add one more thing to this. On running *sudo 
/opt/scripts/tools/version.sh, *this is the output: 
https://pastebin.com/tgwb3u3S

Regards,
Vedant Paranjape
On Monday, July 20, 2020 at 1:36:48 AM UTC+5:30 Vedant Paranjape wrote:

>
> Hi, 
> I wanted to use PRU-ICSS's eCap module to generate PWM signals, It is 
> something I want to implement in my GSoC project. I referred to AM335x TRM 
> <https://elinux.org/images/6/65/Spruh73c.pdf> section 15.3, It has a 
> detailed description of how to use ECAP to generate PWM signals at section 
> 15.3.3.5. 
> Since pru_ecap.h was missing bit fields required to use PWM mode, as 
> described in the TRM (15.3.3.5.1) I defined those required bit fields from 
> register descriptions in the TRM (15.3.4). Here's the new header I defined: 
> https://github.com/VedantParanjape/pru-ecap-pwm/blob/master/include/am335x/pru_ecap.h
>
> According to the register value (Table 15-100 and Example 15-13 of the 
> TRM) needed to be set to get it working, I set the registers in my code. 
> Here is my main code which drives the eCap module to generate PWM: 
> https://github.com/VedantParanjape/pru-ecap-pwm/blob/master/main0.c
>
> I am using pru-gcc version: 
>
>
>
>
>
> *pru-gcc (GCC) 10.0.1 20200315 (experimental)Copyright (C) 2020 Free 
> Software Foundation, Inc.This is free software; see the source for copying 
> conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS 
> FOR A PARTICULAR PURPOSE.*
> Command to compile: 
> *pru-gcc main0.c -o pwm -I./inlude/ -I./include/am335x/ -mmcu=am335x.pru0*
>
> Command to load binary and start PRU:
>
> *cp pwm /lib/firmware/am335x-pru0-fw *
>
> *config-pin p9.42 pru_ecap *
> *echo start > /sys/class/remoteproc/remoteproc0/state *
>
> When I load the binary, it loads without any issue, but i fail to get 
> output on p9.42 pin, which is the pr1_ecap pin. I check with a multimeter, 
> It shows Nada, zero Volts.
>
> I am using a BeagleBone Black Wireless: 
> *Linux beaglebone 4.19.94-ti-r45 #1buster SMP PREEMPT Thu Jun 18 19:18:41 
> UTC 2020 armv7l GNU/Linux*
>
> This the output on running *(sudo show-pins | sort*) 
> https://pastebin.com/r2128R9b
> This is my *uEnv.txt*: https://pastebin.com/99qxs8NN
>
> Regards,
> Vedant Paranjape
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/f33e6877-fe45-4d9b-b42c-dd8d4b5091e9n%40googlegroups.com.


[beagleboard] PWM using eCAP module in PRU-ICSS

2020-07-19 Thread Vedant Paranjape

Hi, 
I wanted to use PRU-ICSS's eCap module to generate PWM signals, It is 
something I want to implement in my GSoC project. I referred to AM335x TRM 
<https://elinux.org/images/6/65/Spruh73c.pdf> section 15.3, It has a 
detailed description of how to use ECAP to generate PWM signals at section 
15.3.3.5. 
Since pru_ecap.h was missing bit fields required to use PWM mode, as 
described in the TRM (15.3.3.5.1) I defined those required bit fields from 
register descriptions in the TRM (15.3.4). Here's the new header I defined: 
https://github.com/VedantParanjape/pru-ecap-pwm/blob/master/include/am335x/pru_ecap.h

According to the register value (Table 15-100 and Example 15-13 of the TRM) 
needed to be set to get it working, I set the registers in my code. Here is 
my main code which drives the eCap module to generate PWM: 
https://github.com/VedantParanjape/pru-ecap-pwm/blob/master/main0.c

I am using pru-gcc version: 





*pru-gcc (GCC) 10.0.1 20200315 (experimental)Copyright (C) 2020 Free 
Software Foundation, Inc.This is free software; see the source for copying 
conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS 
FOR A PARTICULAR PURPOSE.*
Command to compile: 
*pru-gcc main0.c -o pwm -I./inlude/ -I./include/am335x/ -mmcu=am335x.pru0*

Command to load binary and start PRU:

*cp pwm /lib/firmware/am335x-pru0-fw *

*config-pin p9.42 pru_ecap *
*echo start > /sys/class/remoteproc/remoteproc0/state *

When I load the binary, it loads without any issue, but i fail to get 
output on p9.42 pin, which is the pr1_ecap pin. I check with a multimeter, 
It shows Nada, zero Volts.

I am using a BeagleBone Black Wireless: 
*Linux beaglebone 4.19.94-ti-r45 #1buster SMP PREEMPT Thu Jun 18 19:18:41 
UTC 2020 armv7l GNU/Linux*

This the output on running *(sudo show-pins | sort*) 
https://pastebin.com/r2128R9b
This is my *uEnv.txt*: https://pastebin.com/99qxs8NN

Regards,
Vedant Paranjape

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/b8d99fed-89f1-4a93-9d17-74e0cb991692n%40googlegroups.com.