<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Implementing critical GPIO timing within MQX in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210607#M5186</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I also wanted to have a full control on the GPIOs and bypass the heavy code/management of the standard gpio driver, so I wrote a "gpiolite" driver as a replacement.&lt;/P&gt;&lt;P&gt;It works on MCF52259 but can easily be adapted to other processirs.&lt;/P&gt;&lt;P&gt;With this driver you have a minimum overhead and can do everything you want at any time with the GPIOs. Interrupts are also supported.&lt;/P&gt;&lt;P&gt;See the &lt;A href="https://community.freescale.com/message/79912#79912" title="https://community.freescale.com/message/79912#79912"&gt;https://community.freescale.com/message/79912#79912&lt;/A&gt; post on this forum&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 02 Sep 2011 04:14:41 GMT</pubDate>
    <dc:creator>trailman</dc:creator>
    <dc:date>2011-09-02T04:14:41Z</dc:date>
    <item>
      <title>Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210603#M5182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am developing firmware for an MCF51EM256 microcontroller and using MQX as the basis for my solution.&amp;nbsp; One of the requirements is that I need to communicate with a digital thermometer device that uses a 1-wire interface.&amp;nbsp; This device is a Maxim DS18S20+ and after reading the &lt;A href="http://datasheets.maxim-ic.com/en/ds/DS18S20.pdf" rel="nofollow" target="_blank" title="DS18S20+ Datasheet"&gt;datasheet&lt;/A&gt; I can see that to implement the interface I am going to need much finer (and deterministic) control over the microcontroller I/O pin than can be achieved using the GPIO drivers provided with MQX.&amp;nbsp; I am also going to need to be able to flip the pin direction between an output and an input pin, something that I don't think is even possible through the GPIO driver (please feel free to either challenge or confirm that last statement).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know if there is a "recommended" way to use a GPIO pin on the microcontroller without going through the GPIO drivers?&amp;nbsp; I was wondering if there is anything that I need to be aware of so that I don't end up in conflict with either the GPIO driver or MQX.&amp;nbsp; For example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;How can I be sure that if I configure the port pin that the GPIO driver isn't going to re-configure it (during initializing the ports for example)?&lt;/LI&gt;&lt;LI&gt;If the GPIO driver is being used to control another pin on the same port, how will this affect the pin I am trying to use?&lt;/LI&gt;&lt;LI&gt;If I change the direction of a port pin such that it is different from that that maintained by the GPIO driver is that going to cause problems, or would that only occur if I had opened a GPIO device and included that particular pin in the set of pins to be used?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 May 2011 02:55:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210603#M5182</guid>
      <dc:creator>ArtyCF</dc:creator>
      <dc:date>2011-05-29T02:55:18Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210604#M5183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would suggest&amp;nbsp;directly&amp;nbsp;controlling the GPIO.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This should get you started:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is how you get access to the GPIO control registers:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;VMCF5225_STRUCT_PTR reg_ptr = (VMCF5225_STRUCT_PTR)BSP_IPSBAR;﻿&lt;/P&gt;&lt;P&gt;//This is the MQX struct that holds all the GPIO configuration&lt;/P&gt;&lt;P&gt;MCF5225_GPIO_STRUCT_PTR MQX_52259_GPIO = _bsp_get_gpio_base_address();﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;reg_ptr-&amp;gt;GPIO.DDRTC = &amp;nbsp;0b00000010; &amp;nbsp;//&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;reg_ptr-&amp;gt;GPIO.PORTTC = 0b00001101; //&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can work out how to control the GPIO by reading the data sheet. I have actually modified _mcf5225_init﻿(); to&amp;nbsp;my_mcf5225_init﻿(); and configured the hardware my own way. Doing this I have had no problem controlling GPIO (as long as it doesnt overlap with other FSLMQX drivers or configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As for timing, this is pretty standard, after all, it is an RToS.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 May 2011 05:20:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210604#M5183</guid>
      <dc:creator>CarlFST60L</dc:creator>
      <dc:date>2011-05-29T05:20:46Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210605#M5184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's reassuring to know someone else has been able to do this.&amp;nbsp; Obviously you were using a different ColdFire device than I currently am but the principal remains the same.&amp;nbsp; In my case I will look into customizing mcf51EMxx_init﻿() in the BSP that I have created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the advice, hopefully this will all go smoothly.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 May 2011 00:02:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210605#M5184</guid>
      <dc:creator>ArtyCF</dc:creator>
      <dc:date>2011-05-31T00:02:18Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210606#M5185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please exuse my ignorance on this issue.&lt;/P&gt;&lt;P&gt;What is the purpose of "MCF5225_GPIO_STRUCT_PTR MQX_52259_GPIO = _bsp_get_gpio_base_address();" ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jun 2011 21:09:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210606#M5185</guid>
      <dc:creator>boogy</dc:creator>
      <dc:date>2011-06-06T21:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210607#M5186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I also wanted to have a full control on the GPIOs and bypass the heavy code/management of the standard gpio driver, so I wrote a "gpiolite" driver as a replacement.&lt;/P&gt;&lt;P&gt;It works on MCF52259 but can easily be adapted to other processirs.&lt;/P&gt;&lt;P&gt;With this driver you have a minimum overhead and can do everything you want at any time with the GPIOs. Interrupts are also supported.&lt;/P&gt;&lt;P&gt;See the &lt;A href="https://community.freescale.com/message/79912#79912" title="https://community.freescale.com/message/79912#79912"&gt;https://community.freescale.com/message/79912#79912&lt;/A&gt; post on this forum&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Sep 2011 04:14:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210607#M5186</guid>
      <dc:creator>trailman</dc:creator>
      <dc:date>2011-09-02T04:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing critical GPIO timing within MQX</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210608#M5187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;using &lt;STRONG&gt;lwgpio&lt;/STRONG&gt; would help in this case.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jun 2012 08:23:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Implementing-critical-GPIO-timing-within-MQX/m-p/210608#M5187</guid>
      <dc:creator>amleng</dc:creator>
      <dc:date>2012-06-14T08:23:44Z</dc:date>
    </item>
  </channel>
</rss>

