https://elinux.org/api.php?action=feedcontributions&user=Neo01124&feedformat=atomeLinux.org - User contributions [en]2024-03-19T02:31:43ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22789BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:42:29Z<p>Neo01124: /* Kernel Patch */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the README file. [http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
<br />
== Kernel Patch ==<br />
The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.<br />
<pre><br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<br />
</pre><br />
<br />
== Links ==<br />
* More Info about PWM on the beagleboard. [http://elinux.org/BeagleBoardPWM]<br />
* Demo video using PWM on the beagleboard to control a motor . [http://www.youtube.com/watch?v=Ro5mdYn98xo]<br />
* Demo video using PWM on the beagleboard to drive a speaker . [http://www.youtube.com/watch?v=O0eAHEV4o28]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22788BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:40:10Z<p>Neo01124: </p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the README file. [http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
<br />
== Kernel Patch ==<br />
The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.<br />
<pre><br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
</code><br />
<code>@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<br />
</pre><br />
<br />
<br />
<br />
== Links ==<br />
* More Info about PWM on the beagleboard. [http://elinux.org/BeagleBoardPWM]<br />
* Demo video using PWM on the beagleboard to control a motor . [http://www.youtube.com/watch?v=Ro5mdYn98xo]<br />
* Demo video using PWM on the beagleboard to drive a speaker . [http://www.youtube.com/watch?v=O0eAHEV4o28]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22787BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:36:23Z<p>Neo01124: </p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the README file. [http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
<br />
== Kernel Patch ==<br />
The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.<br />
<pre><br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
</code><br />
<code>@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<br />
</pre><br />
<br />
<br />
<br />
== Links ==<br />
* More Info about PWM on the beagleboard. [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22786BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:34:15Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the README file. [http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22785BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:33:39Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the [README file http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22784BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:32:50Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
* For more information refer to the README file [http://github.com/neo01124/omap3-pwm/blob/master/README]<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22783BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:30:56Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<pre>root@beagleboard# ls<br />
pwm.ko<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
<br />
*There are two ways of modifying the parameters from userland. <br />
Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22782BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:28:26Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Edit the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
<pre>$ source beagle-source-me.txt</pre><br />
This will set the environment variables for cross compilation.<br />
<br />
<pre>$ make </pre><br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<br />
*<pre>root@beagleboard# ls<br />
pwm.ko</pre><br />
<br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1</pre><br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
<pre>root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1</pre><br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
* There are two ways of modifying the parameters from userland.<br />
* Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<pre>root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
</pre><br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<pre><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</pre><br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22781BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:25:15Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
<pre>$ vim beagle-source-me.txt</pre><br />
Modify the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
$ source beagle-source-me.txt<br />
This will set the environment variables for cross compilation.<br />
<br />
$ make <br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<br />
*root@beagleboard# ls<br />
pwm.ko<br />
<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1<br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1<br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
* There are two ways of modifying the parameters from userland.<br />
* Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
<br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22780BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:20:16Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
$ <edit> beagle-source-me.txt<br />
Modify the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
$ source beagle-source-me.txt<br />
This will set the environment variables for cross compilation.<br />
<br />
$ make <br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<br />
*root@beagleboard# ls<br />
pwm.ko<br />
<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1<br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1<br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
* There are two ways of modifying the parameters from userland.<br />
* Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
<br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and you'll see the duty cycle percentage of 1.8v.<br />
<br />
* Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22779BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:18:13Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
$ <edit> beagle-source-me.txt<br />
Modify the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
$ source beagle-source-me.txt<br />
This will set the environment variables for cross compilation.<br />
<br />
$ make <br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<br />
*root@beagleboard# ls<br />
pwm.ko<br />
<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1<br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1<br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
* There are two ways of modifying the parameters from userland.<br />
1. Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<br />
root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
<br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and <br />
you'll see the duty cycle percentage of 1.8v.<br />
<br />
2. Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
<code><br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
</code><br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22778BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:16:27Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
$ <edit> beagle-source-me.txt<br />
Modify the OETREE path. OETREE should point to the OE folder. For me OETREE= ~/OE .<br />
<br />
$ source beagle-source-me.txt<br />
This will set the environment variables for cross compilation.<br />
<br />
$ make <br />
This will generate the requisite pwm.ko kernel module file.<br />
<br />
* Copy the pwm.ko to your target board.<br />
<br />
* Once on the system, use insmod to load using the optional frequency parameter. The default frequency is 1024 Hz. Use multiples of two with a max of 16384. pwm9_enable,pwm10_enable and pwm11_enable and frequency are load time parameters.<br />
<br />
*root@beagleboard# ls<br />
pwm.ko<br />
<br />
root@beagleboard# insmod pwm.ko pwm9_enable=1<br />
<br />
The driver implements a character device interface. When it loads, it will create a /dev/pwm9 entry.<br />
<br />
*To setup multiple pwm signals on the GPT9/10/11 you should use <br />
root@beagleboard# insmod pwm.ko pwm9_enable=1 pwm10_enable=1<br />
<br />
This will work similarly for any other (pwm_9/10/11) combinations as well.<br />
<br />
* There are two ways of modifying the parameters from userland.<br />
1. Using the sysfs interface (Not advised and fully supported) :<br />
Then to issue commands you can use any program that can do file I/O cat and echo will work. <br />
<br />
root@beagleboard# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Stopped<br />
<br />
root@beagleboard# echo 50 > /dev/pwm9<br />
<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 50%<br />
<br />
root@beagleboard:~# echo 80 > /dev/pwm9<br />
<br />
root@beagleboard:~# cat /dev/pwm9<br />
PWM9 Frequency 1024 Hz Duty Cycle 80%<br />
<br />
You can put an oscope on pin 28 of the expansion board to see the signal.Use pin 15 for ground. Or you can measure the voltage on pin 28 and <br />
you'll see the duty cycle percentage of 1.8v.<br />
<br />
2. Using the ioctl() calls :<br />
A fully supported ioctl() interface is available and it is advised to prefer this over the above sysfs interface. <br />
Sample code to use the ioctl interface:<br />
#include <termios.h><br />
#include <fcntl.h><br />
#include <errno.h><br />
#include <sys/ioctl.h><br />
#include <linux/ioctl.h><br />
//#define PWM_IOC_MAGIC 0x00 <br />
/**/<br />
#define PWM_SET_DUTYCYCLE 1074003969<br />
#define PWM_GET_DUTYCYCLE 1074003970<br />
#define PWM_SET_FREQUENCY 1074003971<br />
#define PWM_GET_FREQUENCY 1074003972<br />
#define PWM_ON 1074003973<br />
#define PWM_OFF 1074003974<br />
#define PWM_SET_POLARITY 1074003975<br />
main()<br />
{<br />
int fd, status, k, f, sc;<br />
<br />
fd = open("/dev/pwm9", O_RDWR);<br />
scanf("%d", &k);<br />
scanf("%d", &f);<br />
scanf("%d", &sc);<br />
<br />
if (ioctl(fd, PWM_SET_FREQUENCY, f) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_DUTYCYCLE, k) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
<br />
if (ioctl(fd, PWM_SET_POLARITY, sc) == -1)<br />
printf("TIOCMGET failed: %s\n", strerror(errno));<br />
printf("%d",ioctl(fd, PWM_GET_FREQUENCY, sc));<br />
printf("\n%d",ioctl(fd, PWM_GET_DUTYCYCLE, sc));<br />
<br />
close(fd);<br />
}<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22777BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:04:29Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.<br />
<br />
<code><br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
</code><br />
<code>@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<br />
</code><br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22776BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:03:07Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.<br />
<br />
<code><br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<br />
</code><br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22775BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T17:01:40Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<br />
<br />
* The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled<br />
in the default beagleboard defconfigs. You'll get an oops using pwm.ko with<br />
this enabled. This is a kernel power saving feature. You'll need to disable this <br />
config option to use this driver. Below is a sample patch for linux-omap-2.6.32's<br />
defconfig. Adjust for the kernel you are using. Gumstix users already have this<br />
turned off in default kernels.<br />
<br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<i>branch</i> -b <i>branch</i><br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22774BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T16:11:23Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<i>branch</i> -b <i>branch</i><br />
<br />
* The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled<br />
in the default beagleboard defconfigs. You'll get an oops using pwm.ko with<br />
this enabled. This is a kernel power saving feature. You'll need to disable this <br />
config option to use this driver. Below is a sample patch for linux-omap-2.6.32's<br />
defconfig. Adjust for the kernel you are using. Gumstix users already have this<br />
turned off in default kernels.<br />
<br />
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
index cebe1f5..2dad30c 100644<br />
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig<br />
@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y<br />
#<br />
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set<br />
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set<br />
-CONFIG_OMAP_RESET_CLOCKS=y<br />
+# CONFIG_OMAP_RESET_CLOCKS is not set<br />
# CONFIG_OMAP_MUX is not set<br />
CONFIG_OMAP_MCBSP=y<br />
CONFIG_OMAP_MBOX_FWK=m<i>branch</i> -b <i>branch</i><br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=22773BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-08-15T16:05:36Z<p>Neo01124: /* Build and Run instructions */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver.This can be done using the following commands:<br />
git clone git://github.com/neo01124/omap3-pwm.git<br />
cd omap3-pwm/<i>branch</i> -b <i>branch</i><br />
<br />
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=21922BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-06-23T13:00:11Z<p>Neo01124: /* Links */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver from [http://github.com/neo01124/omap3-pwm].<br />
* Follow the README document [http://github.com/neo01124/omap3-pwm/blob/master/README].<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* [http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=21921BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-06-23T12:59:30Z<p>Neo01124: Abstract added and general cleanup</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Abstract ==<br />
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard.<br />
Another aim will be to push this driver upstream(the Linux-OMAP tree).<br />
Two applications will be developed to demonstrate the use of this driver:<br />
* Motor control using PWM signals generated by the BeagleBoard using the PWM driver.<br />
* Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins. <br />
<br />
== Build and Run instructions ==<br />
* Clone my git tree for the driver from [http://github.com/neo01124/omap3-pwm].<br />
* Follow the README document [http://github.com/neo01124/omap3-pwm/blob/master/README].<br />
<br />
== Links ==<br />
* [http://elinux.org/BeagleBoardPWM]<br />
* http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=56&Itemid=63</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation&diff=21865BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation2010-06-18T21:37:31Z<p>Neo01124: /* Documentation */</p>
<hr />
<div>== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Documentation ==<br />
<br />
[http://github.com/neo01124/omap3-pwm/blob/master/README]</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects&diff=21743BeagleBoard/GSoC/2010 Projects2010-06-10T11:16:12Z<p>Neo01124: /* Project: Pulse Width Modulation */</p>
<hr />
<div>This page links to the six official projects that were chosen for the BeagleBoard's Google Summer of Code 2010 mentoring session.<br />
<br />
== Project: RPC layer and POSIX wrappers for C6Run (formerly known as DSPEasy) ==<br />
<br />
Student: Yaman Umuroglu<br />
<br />
Mentors: Katie Roberts-Hoffman, Laine Walker-Avina, Frank Walzer <br />
<br />
Repository at:http://gforge.ti.com/svn/dspeasy/C6RunApp/branches/dsp-rpc-posix<br />
<br />
Blog at: http://maltanar.blogspot.com<br />
<br />
Latest blog entries: <rss>http://maltanar.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: USB Sniffer ==<br />
<br />
Student: Nicolas Boichat<br />
<br />
Mentors: Hunyue Yau, Laine Walker-Avina, Frans Meulenbroeks<br />
<br />
Repository: http://gitorious.org/beagleboard-usbsniffer<br />
<br />
Blog: http://beagleboard-usbsniffer.blogspot.com/ ([http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default RSS])<br />
<br />
Latest blog entries: <rss>http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: OpenCV DSP Acceleration ==<br />
<br />
Student: Pramod Poudel<br />
<br />
Mentors: Katie Roberts-Hoffman, Luis Gustavo Lira<br />
<br />
Repository: http://code.google.com/p/opencv-dsp-acceleration/<br />
<br />
Blog: http://pramodpoudel.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://pramodpoudel.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: XBMC ==<br />
<br />
Student: Tobias Arrskog<br />
<br />
Mentors: Mike Zucchi, Mans Rullgard, Søren Steen Christensen <br />
<br />
Repository-git: git://xbmc.git.sourceforge.net/gitroot/xbmc/xbmc and branch gsoc-2010-beagleboard<br />
<br />
Reposotory-svn: http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/gsoc-2010-beagleboard<br />
<br />
Blog: http://xbmc.org/author/topfs2/<br />
<br />
Latest blog entries:<br />
<br />
[http://xbmc.org/topfs2/2010/06/07/weekly-report-2/ Weekly report 2]<br />
<br />
[http://xbmc.org/topfs2/2010/06/01/weekly-report-1/ Weekly report 1]<br />
<br />
[http://xbmc.org/topfs2/2010/05/24/beagleboard-project-for-gsoc-2010/ Announcement]<br />
<br />
== Project: NEON Support for FFTW==<br />
<br />
Student: Christopher Friedt<br />
<br />
Mentors: Mans Rullgard, Philip Balister <br />
<br />
Repository: <br />
<br />
Blog: http://gsoc2010-fftw-neon.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://gsoc2010-fftw-neon.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/neo01124/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss></div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects&diff=21690BeagleBoard/GSoC/2010 Projects2010-06-07T19:58:23Z<p>Neo01124: /* Project: Pulse Width Modulation */</p>
<hr />
<div>This page links to the six official projects that were chosen for the BeagleBoard's Google Summer of Code 2010 mentoring session.<br />
<br />
== Project: RPC layer and POSIX wrappers for C6Run (formerly known as DSPEasy) ==<br />
<br />
Student: Yaman Umuroglu<br />
<br />
Mentors: Katie Roberts-Hoffman, Laine Walker-Avina, Frank Walzer <br />
<br />
Repository at:http://gforge.ti.com/svn/dspeasy/C6RunApp/branches/dsp-rpc-posix<br />
<br />
Blog at: http://maltanar.blogspot.com<br />
<br />
Latest blog entries: <rss>http://maltanar.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: USB Sniffer ==<br />
<br />
Student: Nicolas Boichat<br />
<br />
Mentors: Hunyue Yau, Laine Walker-Avina, Frans Meulenbroeks<br />
<br />
Repository: http://gitorious.org/beagleboard-usbsniffer<br />
<br />
Blog: http://beagleboard-usbsniffer.blogspot.com/ ([http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default RSS])<br />
<br />
Latest blog entries: <rss>http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: OpenCV DSP Acceleration ==<br />
<br />
Student: Pramod Poudel<br />
<br />
Mentors: Katie Roberts-Hoffman, Luis Gustavo Lira<br />
<br />
Repository: http://code.google.com/p/opencv-dsp-acceleration/<br />
<br />
Blog: http://pramodpoudel.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://pramodpoudel.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: XBMC ==<br />
<br />
Student: Tobias Arrskog<br />
<br />
Mentors: Mike Zucchi, Mans Rullgard, Søren Steen Christensen <br />
<br />
Repository-git: git://xbmc.git.sourceforge.net/gitroot/xbmc/xbmc and branch gsoc-2010-beagleboard<br />
<br />
Reposotory-svn: http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/gsoc-2010-beagleboard<br />
<br />
Blog: http://xbmc.org/author/topfs2/<br />
<br />
Latest blog entries:<br />
<br />
[http://xbmc.org/topfs2/2010/06/07/weekly-report-2/ Weekly report 2]<br />
<br />
[http://xbmc.org/topfs2/2010/06/01/weekly-report-1/ Weekly report 1]<br />
<br />
[http://xbmc.org/topfs2/2010/05/24/beagleboard-project-for-gsoc-2010/ Announcement]<br />
<br />
== Project: NEON Support for FFTW==<br />
<br />
Student: Christopher Friedt<br />
<br />
Mentors: Mans Rullgard, Philip Balister <br />
<br />
Repository: <br />
<br />
Blog: http://gsoc2010-fftw-neon.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://gsoc2010-fftw-neon.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss><br />
<br />
== Project: Pulse Width Modulation ==<br />
<br />
Student: Varun Jewalikar<br />
<br />
Mentors: Søren Steen Christensen, Cristina Murillo<br />
<br />
Repository: http://github.com/scottellis/omap3-pwm<br />
<br />
Blog: http://beagleboard-pwm.blogspot.com/<br />
<br />
Latest blog entries: <rss>http://beagleboard-pwm.blogspot.com/feeds/posts/default|charset=UTF-8|max=3</rss></div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/Meetings/20100524&diff=21445BeagleBoard/GSoC/Meetings/201005242010-05-24T17:44:11Z<p>Neo01124: /* Boards */</p>
<hr />
<div>==Agenda==<br />
* Links to repositories and blogs.<br />
* Weekly reports.<br />
* Reminders and Google Calendar.<br />
* Boards and equipment.<br />
* Coding style.<br />
<br />
==Attendees==<br />
===Mentors===<br />
* koen<br />
* jkridner<br />
* eFfeM<br />
* cmurillo<br />
* Jefro<br />
* Crofton<br />
* mru<br />
* av500<br />
* notzed<br />
<br />
===Students===<br />
* topfs2<br />
* maltanar<br />
* drinkcat<br />
* ppoudel<br />
<br />
==Repositories==<br />
* Students should create a wiki page for each project with the location of their blog, source repository, bug tracker, and build/test instructions.<br />
<br />
==Reports==<br />
* Issues/ideas should be blogged when encountered and discussed with the mentors, folks on #beagle, etc., rather than waiting for the weekly report.<br />
* Weekly reports should include roughly 2 or 3 of each:<br />
** Status or accomplishments<br />
** Plans or tasks<br />
** Risks or issues or blockers<br />
* Message should be "I've stepped back and looked where I'm at in my project and here is where I need to focus and where I need help."<br />
* Deadline is before the weekly all-hands meeting<br />
<br />
==Calendar==<br />
* jkridner to work with Jefro and drinkcat on making a better public calendar.<br />
** Best calendar link is now http://www.google.com/calendar/hosted/beagleboard.org/embed?src=beagleboard.org_20sa2k7jbjpc612ujl7bg3frgs%40group.calendar.google.com&ctz=UTC<br />
<br />
==Boards==<br />
* ppoudel has a board.<br />
* maltanar has a board.<br />
* topfs2 is expecting his board very soon. Needs a serial adapter and cable.<br />
* varun has a board.<br />
* drinkcat should have a board by tomorrow.<br />
* cfriedt did not attend.<br />
<br />
==Style==<br />
* Use one and be consistent. Better consistent than "right".<br />
* Discuss coding style with your mentors.<br />
<br />
==Actions==<br />
* '''jkridner''': register #beagleboard-gsoc channel<br />
* '''jkridner''': create a beagleboard-gsoc-specific feed and use it to send e-mails of the weekly reports to beagleboard-gsoc mailing list<br />
* '''Jefro''': coordinate project documentation requirements with students<br />
* '''students''': create source repo links and links to build instructions at [[BeagleBoard/GSoC/2010_Projects]] per Jefro</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/Meetings/20100517&diff=21103BeagleBoard/GSoC/Meetings/201005172010-05-17T16:24:12Z<p>Neo01124: /* Reporting */</p>
<hr />
<div>==Attendees==<br />
===Mentors===<br />
===Students===<br />
<br />
==Agenda==<br />
* boards<br />
* repositories<br />
* blogging and weekly reports - how, where and what<br />
* future meetings<br />
* shirt sizes<br />
* bonding - enough and how to improve, including best practices from other orgs<br />
* wrap-up - review any missed agenda items<br />
<br />
==Boards==<br />
* Goal was to have C4 boards and cables to all students by last week.<br />
* maltanar got a board.<br />
* Pramod got a board, but was not in attendance to confirm.<br />
* drinkcat (Nicolas) already has a 5V adapter and IDC10-DB9 cable.<br />
* varunPWM needs a 5V adapter, IDC10-DB9 cable and a XDS100v2 (if possible).<br />
* TobiasArrskog needs a 5V adapter.<br />
* cfriedt already has the needed power adapter and cables.<br />
* '''Action: jkridner''': provide e-mail of all shipping addresses summarized to cwicks<br />
* '''Action: jkridner''': see if we can get some XDS100v2's, especially for students doing kernel work<br />
<br />
==Repositories==<br />
<br />
==Reporting==<br />
* I'd like to make sure students provide blog posts that indicate where their code is currently hosted, where bugs should be filed, and what the status of the latest build is.<br />
* Maltanar: http://maltanar.blogspot.com<br />
* TobiasArrskog: http://xbmc.org/topfs2/<br />
* drinkcat: http://beagleboard-usbsniffer.blogspot.com/<br />
* cfriedt: http://gsoc2010-fftw-neon.blogspot.com/<br />
* varun: http://beagleboard-pwm.blogspot.com/<br />
<br />
==Future meetings==<br />
* '''Action: jkridner''': will provide wiki link and agenda outline ahead of every meeting.<br />
* '''Action: jkridner''': will send out reminder e-mail on beagleboard-gsoc 1 hour ahead of the meeting.<br />
* '''Action: jkridner''': will create a sharable Google Calendar entry.<br />
<br />
==Shirt sizes==<br />
* '''Action: jkridner''': log here what was reported on IRC<br />
* '''Action: ALL''': review this page in 24 hours for accuracy/completeness</div>Neo01124https://elinux.org/index.php?title=BeagleBoard/GSoC/Meetings/20100517&diff=21102BeagleBoard/GSoC/Meetings/201005172010-05-17T16:12:34Z<p>Neo01124: /* Boards */</p>
<hr />
<div>==Attendees==<br />
===Mentors===<br />
===Students===<br />
<br />
==Agenda==<br />
* boards<br />
* repositories<br />
* blogging and weekly reports - how, where and what<br />
* future meetings<br />
* shirt sizes<br />
* bonding - enough and how to improve, including best practices from other orgs<br />
* wrap-up - review any missed agenda items<br />
<br />
==Boards==<br />
* Goal was to have C4 boards and cables to all students by last week.<br />
* maltanar got a board.<br />
* Pramod got a board, but was not in attendance to confirm.<br />
* drinkcat (Nicolas) already has a 5V adapter and IDC10-DB9 cable.<br />
* varunPWM needs a 5V adapter, IDC10-DB9 cable and a XDS100v2 (if possible).<br />
* TobiasArrskog needs a 5V adapter.<br />
* cfriedt already has the needed power adapter and cables.<br />
* '''Action: jkridner''': provide e-mail of all shipping addresses summarized to cwicks<br />
* '''Action: jkridner''': see if we can get some XDS100v2's, especially for students doing kernel work<br />
<br />
==Repositories==<br />
<br />
==Reporting==<br />
* I'd like to make sure students provide blog posts that indicate where their code is currently hosted, where bugs should be filed, and what the status of the latest build is.<br />
* Maltanar: http://maltanar.blogspot.com<br />
* TobiasArrskog: http://xbmc.org/topfs2/<br />
* drinkcat: http://beagleboard-usbsniffer.blogspot.com/<br />
* cfriedt: http://gsoc2010-fftw-neon.blogspot.com/<br />
<br />
==Future meetings==<br />
* '''Action: jkridner''': will provide wiki link and agenda outline ahead of every meeting.<br />
* '''Action: jkridner''': will send out reminder e-mail on beagleboard-gsoc 1 hour ahead of the meeting.<br />
* '''Action: jkridner''': will create a sharable Google Calendar entry.<br />
<br />
==Shirt sizes==<br />
* '''Action: jkridner''': log here what was reported on IRC<br />
* '''Action: ALL''': review this page in 24 hours for accuracy/completeness</div>Neo01124