<?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 Usbcdc in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Usbcdc/m-p/577440#M23219</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Andre Schoeman on Tue Mar 29 20:56:03 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Hi[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have modified the USBCDC example eliminating the serial port and buffer data internally.[/SIZE][/FONT][/COLOR][COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have created simple Read and Write functionality for use by my application. This works fine.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]The way that the USBCDC example is written is to wait for a USB connection before entering main. My device is not USB by default. I only want a USB connection when the device is plugged into a USB socket.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have enabled the USB_POWER_EVENT in usbcfg.h. [/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have modified the USB_Power_Event function as follows,[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]void[/B] [B]USB_Power_Event[/B] (uint32_t power)[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[LEFT][COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]{[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] (!USB_Configuration); // wait until USB is configured[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]}[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]At first I removed this code prior main.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] (!USB_Configuration); // wait until USB is configured[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]No USB connection is made when I insert the device.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I then added only[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]prior to main.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]This froze the device until first insertion at this while loop in,[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]void[/B] [B]WrCmd[/B] (uint32_t cmd) {[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]LPC_USB-&amp;gt;DevIntClr = CCEMTY_INT;[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]LPC_USB-&amp;gt;CmdCode = cmd;[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] ((LPC_USB-&amp;gt;DevIntSt &amp;amp; (CCEMTY_INT | DEV_STAT_INT)) == 0);[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]}[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]After that I can plug and unplug the device and it works as I would expect.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]However if I don't run the code using the RED PORBE+ then it simply freezes.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Has anybody done this successfully? Am I using the USB_POWER_EVENT correctly?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]How do I know if this power event is a insert or remove event?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Do I need to do something different, like an internal USB reset, for a remove event?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Thanks[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Andre [/SIZE][/FONT][/COLOR][/LEFT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:36:17 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:36:17Z</dc:date>
    <item>
      <title>Usbcdc</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Usbcdc/m-p/577440#M23219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Andre Schoeman on Tue Mar 29 20:56:03 MST 2011&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Hi[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have modified the USBCDC example eliminating the serial port and buffer data internally.[/SIZE][/FONT][/COLOR][COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have created simple Read and Write functionality for use by my application. This works fine.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]The way that the USBCDC example is written is to wait for a USB connection before entering main. My device is not USB by default. I only want a USB connection when the device is plugged into a USB socket.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have enabled the USB_POWER_EVENT in usbcfg.h. [/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I have modified the USB_Power_Event function as follows,[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]void[/B] [B]USB_Power_Event[/B] (uint32_t power)[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[LEFT][COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]{[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] (!USB_Configuration); // wait until USB is configured[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]}[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]At first I removed this code prior main.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] (!USB_Configuration); // wait until USB is configured[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]No USB connection is made when I insert the device.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]I then added only[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]USB_Connect(TRUE); // USB Connect[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]prior to main.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]This froze the device until first insertion at this while loop in,[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]void[/B] [B]WrCmd[/B] (uint32_t cmd) {[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]LPC_USB-&amp;gt;DevIntClr = CCEMTY_INT;[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]LPC_USB-&amp;gt;CmdCode = cmd;[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2][B]while[/B] ((LPC_USB-&amp;gt;DevIntSt &amp;amp; (CCEMTY_INT | DEV_STAT_INT)) == 0);[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]}[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]After that I can plug and unplug the device and it works as I would expect.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]However if I don't run the code using the RED PORBE+ then it simply freezes.[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Has anybody done this successfully? Am I using the USB_POWER_EVENT correctly?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]How do I know if this power event is a insert or remove event?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Do I need to do something different, like an internal USB reset, for a remove event?[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Thanks[/SIZE][/FONT][/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#000000][FONT=Arial, sans-serif][SIZE=2]Andre [/SIZE][/FONT][/COLOR][/LEFT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:36:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Usbcdc/m-p/577440#M23219</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:36:17Z</dc:date>
    </item>
  </channel>
</rss>

