<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>Recent changes to Home</description><language>en</language><lastBuildDate>Tue, 29 Jun 2021 06:43:30 -0000</lastBuildDate><atom:link href="https://forge.codesys.com/drv/gpio-mod/home/Home/feed" rel="self" type="application/rss+xml"></atom:link><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -9,6 +9,13 @@

 [[img src=PWM.png]]

+A common mistake that's made is, that one uses the same FB instance in multiple tasks to generate the PWM signals. That can't work, because it would mess up the timing calculations in the FB. So best you instantiate the FB in a PRG, which you are used in exactly one task.
+
+## Known issues
+The I/O driver of the **Raspberry Pi** seems to have a problem when it is called from multiple tasks.
+In this case, the PWM signal in software is generated correctly, but the output is updated in the wrong sequence.
+But, as it was the first target, which I personally used, its proven, that one task works pretty well :wink:
+
 # GPIO AIN
 The function block "SoftAIN" is implementing the sampling of a so called "Poor man's ADC". It just uses a small variation from the widely documented "Poor man's ADC", by using two GPIOs, instead of just one. The advantage of this approach is, that we are more flexible in the selection of I/O drivers, which can be used with that. Virtually every combination of a digital input and output can be used to sample an analog input.
 We are using the digital output as the VRef. This way, it is easy to safely pull down the capacitors current, as the output is pulling down only the current, which itself loaded before.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Tue, 29 Jun 2021 06:43:30 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com7c600a6a17b923c638eab7245c06624b5145575c</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -1,4 +1,5 @@
 [[download url=https://forge.codesys.com/svn/drv,gpio-mod,code/trunk/gpiomod.package]]
+[[drone]]

 # Preface
 This is a collection of soft mods for the generic I/Os of a Linux based PLC. It can be used for example with Raspberry Pi, Beagle Bone Black. The Linux Scheduler and some specific circuits are used to implement different things, which would require more complicated hardware, otherwhise.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Sat, 05 Oct 2019 17:20:13 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comca3967dd7be1607bd3413cff5521a56548b87cca</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -1,3 +1,5 @@
+[[download url=https://forge.codesys.com/svn/drv,gpio-mod,code/trunk/gpiomod.package]]
+
 # Preface
 This is a collection of soft mods for the generic I/Os of a Linux based PLC. It can be used for example with Raspberry Pi, Beagle Bone Black. The Linux Scheduler and some specific circuits are used to implement different things, which would require more complicated hardware, otherwhise.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Wed, 22 Aug 2018 20:17:54 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com78e35c769c47f9ce69cbc1c3edc29c80027cbe79</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -7,5 +7,5 @@
 [[img src=PWM.png]]

 # GPIO AIN
-The function block "SoftAIN" is implementing the sampling of a so called "Poor man's ADC". It just uses a small variation from the widely documented "Poor man's ADC", by using two GPIOs, instead of just one. The advantage of this abroach is, that we are more flexible in the selection of I/O drivers, which can be used with that. Virtually every combination of a digital input and output can be used to sample an analog input.
+The function block "SoftAIN" is implementing the sampling of a so called "Poor man's ADC". It just uses a small variation from the widely documented "Poor man's ADC", by using two GPIOs, instead of just one. The advantage of this approach is, that we are more flexible in the selection of I/O drivers, which can be used with that. Virtually every combination of a digital input and output can be used to sample an analog input.
 We are using the digital output as the VRef. This way, it is easy to safely pull down the capacitors current, as the output is pulling down only the current, which itself loaded before.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Tue, 05 Jun 2018 06:33:36 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com3d8098b9dc59c89e606b740df512feeca39b4658</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -2,6 +2,10 @@
 This is a collection of soft mods for the generic I/Os of a Linux based PLC. It can be used for example with Raspberry Pi, Beagle Bone Black. The Linux Scheduler and some specific circuits are used to implement different things, which would require more complicated hardware, otherwhise.

 # GPIO PWM
-This is a soft PWM driver, which makes use of a standard digital Output Pin. The Interval is constantly changed, to achieve the precise timing which is necessary to fulfill the requirements of the specified duty cycle. It has to be used from a separate, high priority task, which drives the output. But as the interval of this task constantly changes, you should best not add anything else to this task.
+The function block, called "SoftPWM" is a soft PWM driver that makes use of a standard digital Output Pin. The Interval is constantly changed, to achieve the precise timing which is necessary to fulfill the requirements of the specified duty cycle. It has to be used from a separate, high priority task, which drives the output. But as the interval of this task constantly changes, you should best not add anything else to this task.

 [[img src=PWM.png]]
+
+# GPIO AIN
+The function block "SoftAIN" is implementing the sampling of a so called "Poor man's ADC". It just uses a small variation from the widely documented "Poor man's ADC", by using two GPIOs, instead of just one. The advantage of this abroach is, that we are more flexible in the selection of I/O drivers, which can be used with that. Virtually every combination of a digital input and output can be used to sample an analog input.
+We are using the digital output as the VRef. This way, it is easy to safely pull down the capacitors current, as the output is pulling down only the current, which itself loaded before.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Wed, 14 Mar 2018 17:12:12 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com2608859a8759ebdd81825fc90866ca25f8a97ef1</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,7 +1,7 @@
-Welcome to your wiki!
+# Preface
+This is a collection of soft mods for the generic I/Os of a Linux based PLC. It can be used for example with Raspberry Pi, Beagle Bone Black. The Linux Scheduler and some specific circuits are used to implement different things, which would require more complicated hardware, otherwhise.

-This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
+# GPIO PWM
+This is a soft PWM driver, which makes use of a standard digital Output Pin. The Interval is constantly changed, to achieve the precise timing which is necessary to fulfill the requirements of the specified duty cycle. It has to be used from a separate, high priority task, which drives the output. But as the interval of this task constantly changes, you should best not add anything else to this task.

-The wiki uses [Markdown](/drv/gpio-mod/home/markdown_syntax/) syntax.
-
-[[members limit=20]]
+[[img src=PWM.png]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Tue, 13 Mar 2018 21:12:18 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com4ec7040466a38b52c7d2822ce46e191dc6f02d22</guid></item><item><title>Home modified by Ingo</title><link>https://forge.codesys.com/drv/gpio-mod/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/drv/gpio-mod/home/markdown_syntax/"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;h6&gt;Project Members:&lt;/h6&gt;
	&lt;ul class="md-users-list"&gt;
		&lt;li&gt;&lt;a href="/u/ingo/"&gt;Ingo&lt;/a&gt; (admin)&lt;/li&gt;&lt;li&gt;&lt;a href="/u/codesys-com/"&gt;codesys.com&lt;/a&gt; (admin)&lt;/li&gt;
		
	&lt;/ul&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Tue, 13 Mar 2018 20:32:04 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com21ee6ca7928fea2ce3b889a6106930cdc67c53f3</guid></item></channel></rss>