<?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>Wireless MCUのトピックRe: Driving MKW22D512 transceiver GPIOs</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473322#M842</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Augusto,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are sending raw data packets from Test Tool, I'm guessing that you are using the "AspTelecSendRawData.Request" command.&lt;/P&gt;&lt;P&gt;The ASP module is intended to be used for XCVR testing, and is indeed part of the MAC library.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this case you have to search for the call to the "void ASP_TelecSendRawData(uint8_t* dataPtr)" function, and enable the PA before this call.&lt;/P&gt;&lt;P&gt;Then, you have to wait for the Tx sequence to finish and then disable the PA. Here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the External PA */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_SetGpioPin(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Most probably the ASP_TelecSendRawData function is called from the ZtcSAPHandlerInfo.c file */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASP_TelecSendRawData((uint8_t*)&amp;amp;pMsg-&amp;gt;msgData.req.aspTelecSendRawData);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for the Sequence to end */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( !(MC1324xDrv_DirectAccessSPIRead(IRQSTS1) &amp;amp; cIRQSTS1_SEQIRQ)) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable the External PA */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_ClearGpioPin(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;George&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 05 Feb 2016 06:21:28 GMT</pubDate>
    <dc:creator>georgecapraru</dc:creator>
    <dc:date>2016-02-05T06:21:28Z</dc:date>
    <item>
      <title>Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473317#M837</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the MKW22D512 there are some GPIOs connected to the transceiver (modem gpios) like GPIO2, instead of being mcu controlled, but I couldn't find any information on the reference manual, as well as the source code generated with beekit, on how to drive these gpios. Is there some code, example or documentation I could have a look? At the moment I need to set gpio2 as output and drive it high and low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jan 2016 01:19:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473317#M837</guid>
      <dc:creator>augustosala</dc:creator>
      <dc:date>2016-01-29T01:19:44Z</dc:date>
    </item>
    <item>
      <title>Re: Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473318#M838</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached updated MC1324xDrv files which contains API for controlling XCVR GPIO pins:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_SetGpioPinAsOutput(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_SetGpioPinAsInput(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_SetGpioPin(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_ClearGpioPin(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t MC1324xDrv_GetGpioPinValue(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_EnableGpioPullUp(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_EnableGpioPullDown(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_DisableGpioPullUpDown(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_EnableGpioHiDriveStrength(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MC1324xDrv_DisableGpioHiDriveStrength(uint8_t GpioMask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Output pin */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_SetGpioPinAsOutput(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_EnableGpioHiDriveStrength(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_SetGpioPin(gMC1324x_GPIO2_d); //set to logic 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_ClearGpioPin(gMC1324x_GPIO2_d); // set to logic 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Input pin */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_SetGpioPinAsInput(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_EnableGpioPullUp(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t value = MC1324xDrv_GetGpioPinValue(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;George&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Feb 2016 12:15:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473318#M838</guid>
      <dc:creator>georgecapraru</dc:creator>
      <dc:date>2016-02-02T12:15:58Z</dc:date>
    </item>
    <item>
      <title>Re: Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473319#M839</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you George,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the routines provided work properly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A second question I have now is if one can configure these GPIO to reflect TX/RX operation or other internal states of the modem.&lt;/P&gt;&lt;P&gt;I have a power amplifier connected to GPIO2 and would like to turn it on only during transmission.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could also set GPIO2 manually in the code before and after each tramission but I'm wondering where could I do this as it seems to me that the internal functions dealing with transmission are closed source in the library.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Augusto&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 14:26:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473319#M839</guid>
      <dc:creator>augustosala</dc:creator>
      <dc:date>2016-02-04T14:26:59Z</dc:date>
    </item>
    <item>
      <title>Re: Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473320#M840</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Augusto,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The functions dealing with the transmission are not closed. See the files from Phy\Source\:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PhyPlmeData.c: PhyPdDataRequest() - start a new Tx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PhyISR.c: PHY_InterruptHandler() - see the "gCCA_c", "gTX_c" and "gTR_c" switch cases for the end of a Tx&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can set/clear the GPIO2 (MCU pin #3) inside these functions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, if you check the KW2x documentation (&lt;A href="http://www.nxp.com/files/rf_if/doc/ref_manual/MKW2xDxxxRM.pdf?fpsp=1&amp;amp;WT_TYPE=Reference%20Manuals&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf"&gt;http://www.nxp.com/files/rf_if/doc/ref_manual/MKW2xDxxxRM.pdf?fpsp=1&amp;amp;WT_TYPE=Reference%20Manuals&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;fileExt=.pdf&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;you will find a "TX_SWITCH" (MCU pin #47) which is intended to be used with a Power Amplifier.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To enable the TX_SWITCH you have to configure the XCVR as shown below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t reg = 1; /* Enable RX/TX_SWITCH */&lt;/P&gt;&lt;P&gt;//reg |= (4 &amp;lt;&amp;lt; cANT_PAD_CTRL_ANTX_POL_Shift_c); /* Invert the TX_SWITCH output if needed */&lt;/P&gt;&lt;P&gt;MC1324xDrv_IndirectAccessSPIWrite(ANT_PAD_CTRL, reg);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;George&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 15:39:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473320#M840</guid>
      <dc:creator>georgecapraru</dc:creator>
      <dc:date>2016-02-04T15:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473321#M841</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi George,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unluckyly the hardware design is completed with the PA connected to GPIO2 so I should adapt the firmware now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I checked the 2 functions you mentioned and inserted the GPIO handling there but I can't see the application accessing any of the two.&lt;/P&gt;&lt;P&gt;I'm sending raw data packats with Test Tool on a MAC 2003 project and I've set breakpoints at the beginning of each function without being stopped there even after multiple TX and RX. Also I checked with an oscilloscope if the gpio moves to exclude problems with the debugger but no, no reaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Augusto&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Feb 2016 17:16:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473321#M841</guid>
      <dc:creator>augustosala</dc:creator>
      <dc:date>2016-02-04T17:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: Driving MKW22D512 transceiver GPIOs</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473322#M842</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Augusto,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are sending raw data packets from Test Tool, I'm guessing that you are using the "AspTelecSendRawData.Request" command.&lt;/P&gt;&lt;P&gt;The ASP module is intended to be used for XCVR testing, and is indeed part of the MAC library.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this case you have to search for the call to the "void ASP_TelecSendRawData(uint8_t* dataPtr)" function, and enable the PA before this call.&lt;/P&gt;&lt;P&gt;Then, you have to wait for the Tx sequence to finish and then disable the PA. Here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the External PA */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_SetGpioPin(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Most probably the ASP_TelecSendRawData function is called from the ZtcSAPHandlerInfo.c file */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASP_TelecSendRawData((uint8_t*)&amp;amp;pMsg-&amp;gt;msgData.req.aspTelecSendRawData);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for the Sequence to end */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( !(MC1324xDrv_DirectAccessSPIRead(IRQSTS1) &amp;amp; cIRQSTS1_SEQIRQ)) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable the External PA */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MC1324xDrv_ClearGpioPin(gMC1324x_GPIO2_d);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;George&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Feb 2016 06:21:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Driving-MKW22D512-transceiver-GPIOs/m-p/473322#M842</guid>
      <dc:creator>georgecapraru</dc:creator>
      <dc:date>2016-02-05T06:21:28Z</dc:date>
    </item>
  </channel>
</rss>

