<?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: K64 Using Pin as GPIO after setup for I2C  in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-Using-Pin-as-GPIO-after-setup-for-I2C/m-p/831410#M50273</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I try to reconfigure the SDA pin as GPIO output 0, the hard faults did not happen.(i2c_edma_b2b_transfer_master example ...\SDK_2.4.0_FRDM-K64F\boards\frdmk64f\driver_examples\i2c\edma_b2b_transfer\master\iar)&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="reConfigure SDA as GPIO.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/64799iBB4FDB18F8F31587/image-size/large?v=v2&amp;amp;px=999" role="button" title="reConfigure SDA as GPIO.png" alt="reConfigure SDA as GPIO.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Please check if the base address which pass into GPIO_WritePinOutput() was correct or not.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="GPIO_PinInit.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/64800iA81ABCAFB709ED85/image-size/large?v=v2&amp;amp;px=999" role="button" title="GPIO_PinInit.png" alt="GPIO_PinInit.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Jul 2018 08:58:13 GMT</pubDate>
    <dc:creator>Robin_Shen</dc:creator>
    <dc:date>2018-07-03T08:58:13Z</dc:date>
    <item>
      <title>K64 Using Pin as GPIO after setup for I2C</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-Using-Pin-as-GPIO-after-setup-for-I2C/m-p/831409#M50272</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having a problem changing the PIN mux at run time after the PIN was already configured.&lt;/P&gt;&lt;P&gt;I currently have a PIN setup&amp;nbsp;iin&amp;nbsp;I2C mux configuration. This pin is used for the SDA signal for I2C.&lt;/P&gt;&lt;P&gt;I need to switch this pin over to GPIO mode to control it. I don't have any other option because the I2C chip I am working with has a very special wake sequence with a very specific timing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried setting up the PIN in GPIO mode after configuring but I get a hard fault after trying to write to the PCOR register. Please see the code snippet below with comments. Please let me know how to do this.&lt;/P&gt;&lt;P&gt;I am using the mcuXpresso 2.4 SDK driver. See the code snippet below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Additional information&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;The I2C peripheral is setup in DMA mode with interrupts.&lt;/LI&gt;&lt;LI&gt;I do not call&amp;nbsp;I2C_MasterDeinit() or destroy of the I2C EDMA handles&lt;OL&gt;&lt;LI&gt;I am hoping i do not need to do this as all I want to do is switch the PIN mux over to GPIO and control the line temporary for a few micro seconds.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*Reconfigure this pin as GPIO pin*/&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;PORT_SetPinMux&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;port&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pin&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kPORT_MuxAsGpio&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; 

&lt;SPAN class="comment token"&gt;/*This configuration is not required but I do it anyway to make sure all the registers are setup*/&lt;/SPAN&gt;
port_pin_config_t pin_mux1_adv_config0 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pullSelect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_PullUp&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;slewRate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_FastSlewRate&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;passiveFilterEnable&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_PassiveFilterEnable&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/*Filter Tau = 100ns */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;openDrainEnable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_OpenDrainDisable&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;driveStrength&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_HighDriveStrength&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mux&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_MuxAsGpio&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;lockRegister&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kPORT_UnlockRegister
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="token function"&gt;PORT_SetPinConfig&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;port&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pin&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;pin_mux1_adv_config0&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;const&lt;/SPAN&gt; gpio_pin_config_t gpio_output_default_low &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pinDirection&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; kGPIO_DigitalOutput&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;outputLogic&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0u&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/*The code hard faults here when this function calls GPIO_WritePinOutput() 
which write to the PCOR register*/&lt;/SPAN&gt;
&lt;SPAN class="token function"&gt;GPIO_PinInit&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;bank&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; i2c0_sda_pin&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pin&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;gpio_output_default_low&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2018 12:40:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-Using-Pin-as-GPIO-after-setup-for-I2C/m-p/831409#M50272</guid>
      <dc:creator>unknowncoder</dc:creator>
      <dc:date>2018-06-29T12:40:35Z</dc:date>
    </item>
    <item>
      <title>Re: K64 Using Pin as GPIO after setup for I2C</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-Using-Pin-as-GPIO-after-setup-for-I2C/m-p/831410#M50273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I try to reconfigure the SDA pin as GPIO output 0, the hard faults did not happen.(i2c_edma_b2b_transfer_master example ...\SDK_2.4.0_FRDM-K64F\boards\frdmk64f\driver_examples\i2c\edma_b2b_transfer\master\iar)&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="reConfigure SDA as GPIO.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/64799iBB4FDB18F8F31587/image-size/large?v=v2&amp;amp;px=999" role="button" title="reConfigure SDA as GPIO.png" alt="reConfigure SDA as GPIO.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Please check if the base address which pass into GPIO_WritePinOutput() was correct or not.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="GPIO_PinInit.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/64800iA81ABCAFB709ED85/image-size/large?v=v2&amp;amp;px=999" role="button" title="GPIO_PinInit.png" alt="GPIO_PinInit.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2018 08:58:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K64-Using-Pin-as-GPIO-after-setup-for-I2C/m-p/831410#M50273</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2018-07-03T08:58:13Z</dc:date>
    </item>
  </channel>
</rss>

