<?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>Kinetis MicrocontrollersのトピックRe: USB driver for MK66 MCU (USB-HS device mode)</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604796#M35622</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;A _jive_internal="true" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; text-decoration: underline; font-size: 14px;"&gt;isaacavila&lt;/A&gt;.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you so much for the help, Now I got clear picture on code flow. I will get back to you for any further issues.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Edwin.,&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Oct 2016 04:22:24 GMT</pubDate>
    <dc:creator>edwinkaus</dc:creator>
    <dc:date>2016-10-18T04:22:24Z</dc:date>
    <item>
      <title>USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604787#M35613</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am working on MK66FN2M0VLQ18 MCU in customized board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to enumerate the MCU&amp;nbsp;in USB device mode, I am using SDK_2.0_MK66FNM0xxx18 stack , in that if I use USB_DEVICE_CDC_VCOM the device is enumerated as virtual com port device.&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; Can I achieve 480Mbps(USB-HS) as com Port device.&lt;/P&gt;&lt;P&gt;Or Is there any example to enumerate device as normal Bulk&amp;nbsp;USB device in that I need only control end point, Bulk IN and Bulk OUT endpoint.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2016 09:35:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604787#M35613</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-04T09:35:37Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604788#M35614</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;There is no a generic USB example that uses Bulk IN/OUT endpoints. (There is only a generic USB_HID_example for interrupt endpoints) You can use this VCOM example that uses one Interrupt endpoint (for configuring settings as line coding for the virtual com), one bulk out and one bulk in for receiving/sending data from/to USB host instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Also, as you already noticed, K66 includes an USB HS module and USB protocol defines its maximum transfer speed as 480 Mbps. Just remember that VCOM uses BULK endpoints that do not reserve guaranteed bandwith (as for Isochronous endpoints for example)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2016 20:46:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604788#M35614</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-06T20:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604789#M35615</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai&amp;nbsp;&lt;A _jive_internal="true" class="" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; font-size: 14px;"&gt;isaacavila&lt;/A&gt;.,&lt;/P&gt;&lt;P&gt;Thank you for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I use VCOM example as per your suggestion USB speed will restricted to USB port bandwidth (which is not upto 480MBps), I want customize this example so that I can send &amp;amp; receive data through available Bulk end points and need to get USB-HS speed. and it should get enumerate as USB port device.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 04:47:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604789#M35615</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-13T04:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604790#M35616</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;correction in last reply:-&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt; it shouldn't get enumerate as USB port device&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 09:44:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604790#M35616</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-13T09:44:34Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604791#M35617</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VCOM example in FRDM-K66F is configured to use High Speed mode so this can be detected as High-Speed Virtual COM (obviously, USB Host must support HS mode).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you look at USB's initialization function, you will find this call:&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;kStatus_USB_Success &lt;SPAN class="operator token"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;USB_DeviceClassInit&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;CONTROLLER_ID&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;s_cdcAcmConfigList&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;s_cdcVcom&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;deviceHandle&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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONTROLLER_ID is a macro that&amp;nbsp; defines the USB controller (KHCI, EHCI) used to configure the module. In this case, EHCI is used (Enhanced Host Controller Interface, which is the specification for USB 2.0 that defines USB High Speed):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;#define CONTROLLER_ID kUSB_ControllerEhci0&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So K66 is using its USB HS module and it can be detected as High speed device (HS VCOM device).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 16:28:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604791#M35617</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-13T16:28:50Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604792#M35618</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai.,&lt;/P&gt;&lt;P&gt;Thank you reply.,&lt;/P&gt;&lt;P&gt;Here in APPTASK &amp;nbsp;s_recvSize is monitoring to know about data arriving, If some data sent from PC , does receive function automatically called??, or else Is there any receive status flag available. &amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Oct 2016 04:47:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604792#M35618</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-14T04:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604793#M35619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is managed by callbacks. You can refer to this post where it explains a little bit about how the VCOM example is built: &lt;A href="https://community.nxp.com/thread/359149"&gt;https://community.nxp.com/thread/359149&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Oct 2016 16:13:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604793#M35619</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-14T16:13:09Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604794#M35620</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&amp;nbsp;&lt;A _jive_internal="true" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; text-decoration: underline; font-size: 14px;"&gt;isaacavila&lt;/A&gt;&amp;nbsp;..,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not using APPTASK function and also not required to implement VCOM call back functions, After enumeration has been done , I want schedule USB device to receive data from PC and need to process that message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please tell me how do receive some data from PC and sending data to PC. I need to use use simple receive &amp;amp; send function in main function. While sending data I can use send function directly that is not the issue, But if some data has sent from PC which event will occur first and how do I monitor that receiving status, and how to receive the data from endpoint to our buffer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope you got my problem and help me soon.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Karthik&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 Oct 2016 05:35:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604794#M35620</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-15T05:35:57Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604795#M35621</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB callbacks are needed to handle USB communication correctly. After enumeration has been done and setConfiguration command is received from Host, an USB event is received (USB_DEV_EVENT_CONFIG_CHANGED), after this event is received, USB VCOM example calls the USB_Class_CDC_Recv_Data API to receive data from Host:&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;event_type &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; USB_DEV_EVENT_CONFIG_CHANGED&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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="comment token"&gt;/* Schedule buffer for receive */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;USB_Class_CDC_Recv_Data&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;handle&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; DIC_BULK_OUT_ENDPOINT&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; g_curr_recv_buf&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; g_bulk_out_max_packet_size&lt;SPAN class="punctuation 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; start_app &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; TRUE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then, program can do other thing and when data is finally received, another event is got: USB_DEV_EVENT_DATA_RECEIVED (it is handled on USB_App_Class_Callback)&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;case USB_DEV_EVENT_DATA_RECEIVED:
&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; if ((start_app == TRUE) &amp;amp;&amp;amp; (start_transactions == TRUE))
&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;&amp;nbsp; g_recv_size = *size;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!g_recv_size)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Schedule buffer for next receive event */
&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; USB_Class_CDC_Recv_Data(handle, DIC_BULK_OUT_ENDPOINT, g_curr_recv_buf, g_bulk_out_max_packet_size);
&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;&amp;nbsp; }&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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here you can get data from Host and process it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the other hand, for sending data, you can call USB_Class_CDC_Send_Data function in your main application and once data has been sent correctly, a new event is called (USB_DEV_EVENT_SEND_COMPLETE).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to be sure to complete any event (receive or send data) before calling a new receive/send API. In case that these procedures are not completed an you trigger a new request, these requests will be enqueued and, if more than 12 requests are enqueued, USB application will crash (there is only 12 spaces for these requests). So, be sure to complete every request before triggering a new one (reception needs to be completed before a new receive API is called, same for transmission, it needs to be completed before a new Send API is used).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Oct 2016 16:13:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604795#M35621</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-17T16:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604796#M35622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;A _jive_internal="true" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; text-decoration: underline; font-size: 14px;"&gt;isaacavila&lt;/A&gt;.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you so much for the help, Now I got clear picture on code flow. I will get back to you for any further issues.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Edwin.,&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Oct 2016 04:22:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604796#M35622</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-18T04:22:24Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604797#M35623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hello&lt;/SPAN&gt;&lt;A _jive_internal="true" data-containerid="-1" data-containertype="-1" data-objectid="224577" data-objecttype="3" href="https://community.nxp.com/people/isaacavila" style="color: #5e89c1; background-color: #ffffff; border: 0px; font-size: 14px; padding: 1px 0px 1px calc(12px + 0.35ex);"&gt;isaacavila&lt;/A&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;..,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I used USB_VCOM example to analyze the code flow.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Now I have customized the USB_moss storage (usb_device_msc_ramdisk) example as per our requirement.(It has two Bulk endpoints)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;gt; configuration descriptors modified as&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;#define USB_DEVICE_CLASS (0x00U)&lt;BR /&gt;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;#define USB_DEVICE_SUBCLASS (0x00U)&lt;BR /&gt;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;#define USB_DEVICE_PROTOCOL (0x00U)&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;The device is has enumerated successfully with our customized PC side driver.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;once&amp;nbsp;&lt;SPAN style="background-color: #edf8ca;"&gt;enumeration has been done and setConfiguration command is received from Host, there I am calling receive function, &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;&amp;nbsp;case kUSB_DeviceEventSetConfiguration:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (param)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g_msc.attach = 1;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g_msc.currentConfiguration = *temp8;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (USB_MSC_CONFIGURE_INDEX == (*temp8))&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;BR /&gt;&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; /* Schedule buffer for receive */&amp;nbsp;&lt;BR /&gt;&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; error = USB_DeviceRecvRequest(handle,USB_MSC_BULK_OUT_ENDPOINT,s_currRecvBuf,HS_MSC_BULK_IN_PACKET_SIZE);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kStatus_USB_Success != error)&lt;BR /&gt;&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;BR /&gt;&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;usb_echo("kUSB_Device receive error!");&lt;BR /&gt;&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;BR /&gt;&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;BR /&gt;&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&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;The receive request also placed successfully.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;If I send some data from PC , its not receiving. I think once data has received kUSB_DeviceMscEventWriteResponse event should come, but not getting that event also.&lt;/P&gt;&lt;P&gt;suggest If any other modification has to be done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;Edwin&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Oct 2016 14:09:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604797#M35623</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-18T14:09:46Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604798#M35624</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How are your device being detected? How do you send data to device? are you able to use any USB analyzer to see if data is being sent correctly?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Oct 2016 16:34:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604798#M35624</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-18T16:34:31Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604799#M35625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;SPAN style="color: #5e89c1; background-color: #ffffff;"&gt; &lt;/SPAN&gt;&lt;A _jive_internal="true" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; font-size: 14px;"&gt;isaacavila&lt;/A&gt;.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry I got mistake that&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;USB_DeviceRecvRequest has been placed successfully , but this function returns error.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It detecting as USB bulk device, I am using USB analyzer(USBLYZER) to check device details, As per analyzer one control end point &amp;amp; two Bulk(IN &amp;amp; OUT) are available of size 512kb, also device got enumerated.&lt;/P&gt;&lt;P&gt;Now the issue is &amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;USB_DeviceRecvRequest function returns error, This function i am calling from set configuration event.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;Is there any functions available to send/receive data from PC.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;As per my studies&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;usb_status_t USB_DeviceMscSend(usb_device_msc_struct_t *mscHandle)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;usb_status_t USB_DeviceMscRecv(usb_device_msc_struct_t *mscHandle)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;If I call this function , receive&amp;nbsp;&lt;SPAN&gt;Request would placed with end point 0(control endpoint).&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;Give me some&amp;nbsp;clarity&amp;nbsp;whether can I use this function with some modification, if so What what are things to modify.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;Thank you..,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;Regards .,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #edf8ca; color: #51626f;"&gt;Edwin&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Oct 2016 13:33:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604799#M35625</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-19T13:33:09Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604800#M35626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I refered about how is your device being detected in your PC, as a Mass Storage disk or did you modify device descriptor?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When USB stack is initialized, it also intialize the device's class. This device class defines different protocols for every subclass (for MSD, there are different protocols that support different commands to communicate with device). Among these functions, a send/receive request is performed depending on the command (please check the usb_device_msc_ufi.c, USB_DeviceMscUfiThirteenCasesCheck function). After that, callback will receive the events:&amp;nbsp;&amp;nbsp;&amp;nbsp;kUSB_DeviceMscEventReadResponse, kUSB_DeviceMscEventWriteResponse, kUSB_DeviceMscEventWriteRequest, kUSB_DeviceMscEventReadRequest, etc. In summary,&amp;nbsp; MSD class calls the usb_status_t USB_DeviceMscRecv(usb_device_msc_struct_t *mscHandle);&lt;BR /&gt;usb_status_t USB_DeviceMscSend(usb_device_msc_struct_t *mscHandle);&lt;/P&gt;&lt;P&gt;functions to request/send data to host.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are receiving an error when you request for sending/receiving data, then probably you are trying to send/receive "raw" data and you are not properly following what MSD class specifies. what error are you receving from the &lt;SPAN style="color: #51626f; background-color: #edf8ca;"&gt;USB_DeviceRecvRequest&lt;/SPAN&gt;?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you look at VCOM example (that also uses Bulk endpoints) you will see the&amp;nbsp; USB_DeviceCdcAcmRecv function that is used to request data from host.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Oct 2016 17:18:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604800#M35626</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-19T17:18:29Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604801#M35627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;isaac.,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Yes I have modified device descriptors, its was not detecting as Mass storage disk.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Is there any modification has to be done in device class initialization, I got stuck here&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="background-color: #ffffff; color: #51626f;"&gt;I am getting&amp;nbsp;kStatus_USB_Error error.&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Oct 2016 03:43:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604801#M35627</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-20T03:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604802#M35628</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When USB is initialized, the USB_DeviceClassInit receives an strucute that makes reference to class being used:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_USB_Success != USB_DeviceClassInit(CONTROLLER_ID, &amp;amp;msc_config_list, &amp;amp;g_msc.deviceHandle))&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;msc_config_list includes a g_UsbDeviceMscConfig structure:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;/* USB device class information */
usb_device_class_config_struct_t msc_config[1] = {{
&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DeviceMscCallback, 0, &amp;amp;g_UsbDeviceMscConfig,
}};
/* USB device class configuraion information */
usb_device_class_config_list_struct_t msc_config_list = {
&amp;nbsp;&amp;nbsp;&amp;nbsp; msc_config, USB_DeviceCallback, 1,
};&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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And this structure has reference to MSD class:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_device_class_struct_t g_UsbDeviceMscConfig = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_UsbDeviceMscInterfaceList, /* The interface list of the msc */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp; kUSB_DeviceClassTypeMsc,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The msc class type */&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_CONFIGURE_COUNT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The configuration count */&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Error that you are seeing comes from USB_DeviceEhciTransfer function and this error can be caused by two conditions:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (0U == ehciState-&amp;gt;qh[index].endpointStatusUnion.endpointStatusBitmap.isOpened)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_USB_Error;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Return error when ehci is doing reset */
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ehciState-&amp;gt;isResetting)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return kStatus_USB_Error;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you tried to use an USB analyzer and check USB transactions?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would expect that USB VCOM example could be easier to modify rather than USB MSD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Oct 2016 20:10:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604802#M35628</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-20T20:10:48Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604803#M35629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Haii Isaac&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yea I tried to send some data , but it showing transaction failed.&lt;/P&gt;&lt;P&gt;Yes I can use USB VCOM example it has two bulk end points &amp;amp; one interrupt endpoint, but in my application its only needed two bulk endpoint.&lt;/P&gt;&lt;P&gt;Anyhow that is not problem I can proceed with USB VCOM example only, But before that I have to clarify somethings&lt;/P&gt;&lt;P&gt;In USB VCOM example&lt;/P&gt;&lt;P&gt;#define HS_CDC_VCOM_BULK_IN_PACKET_SIZE (64)&lt;BR /&gt;#define FS_CDC_VCOM_BULK_IN_PACKET_SIZE (64)&lt;BR /&gt;#define HS_CDC_VCOM_BULK_OUT_PACKET_SIZE (64)&lt;BR /&gt;#define FS_CDC_VCOM_BULK_OUT_PACKET_SIZE (64)&lt;/P&gt;&lt;P&gt;they have defined both FS &amp;amp; HS parameters as same size, Why they have taken same value, Can't we expect high speed with USB COM port device. What is maximum data rate we can get in USB VCOM example.&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; And Is there any data rate difference in USB moss storage &amp;amp; USB VCOM examples.&lt;/P&gt;&lt;P&gt;One more thing I have observed is Bulk end point size is 512Kb when I used USB moss storage example, but for USB VCOM example Bulk end point size is 64Kb which is same as USB full speed device. That is why I am in confusion.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could You please track me how to proceed with. Either I can use USB moss storage example or else USB VCOM example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.,&lt;/P&gt;&lt;P&gt;Edwin&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Oct 2016 17:17:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604803#M35629</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-21T17:17:11Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604804#M35630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;VCOM uses bulk endpoints (as well as MSD) for sending/receiving data. For FS, bulk has a maximum packet size of 64 bytes, on HS, it can be up to 512 bytes. In this example, it is set to 64 but you can be set to 512 as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Oct 2016 21:35:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604804#M35630</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-21T21:35:51Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604805#M35631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt; &lt;/SPAN&gt;&lt;A _jive_internal="true" data-avatarid="26852" data-externalid="" data-online="false" data-presence="null" data-userid="224577" data-username="isaacavila" href="https://community.nxp.com/people/isaacavila" style="color: inherit; background-color: #ffffff; border: 0px; font-weight: bold; font-size: 14px;"&gt;isaacavila&lt;/A&gt;.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As per discussion with&amp;nbsp;our superior , they are not agreeing to use USB VCOM example.&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;Anyhow I have to use USB Mass storage example only, or otherwise Can please provide If any Custom class device example with only two bulk end point.&amp;nbsp;&lt;/P&gt;&lt;P&gt;In USB Mass storage example other then Descriptor changes nothing else to be change, because enumeration process is same for all the class device(except descriptor we have to pass),Also getting enumerated successfully.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; usb_status_t USB_DeviceMscRecv(usb_device_msc_struct_t *mscHandle);&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; What parameter I need pass while calling this function(*mscHandle?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am calling this function as : USB_DeviceMscRecv((usb_device_msc_struct_t*)(g_msc.mscHandle));&lt;/P&gt;&lt;P&gt;Is this the Correct way of calling this function.&lt;/P&gt;&lt;P&gt;Once I have Call this function , Receive request has successfully placed and return value is also "kStatus_USB_Success". But internally It calls the receive request on Endpoint 0(control endpoint), If I change this into Endpoint 3(Bulk out endpoint) its returning "kStatus_USB_Error".&lt;/P&gt;&lt;P&gt;How do I modify&amp;nbsp;&lt;SPAN&gt;USB_DeviceMscRecv function so that I can call this&amp;nbsp;function with Bulk out endpoint parameter.?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Edwin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Oct 2016 09:13:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604805#M35631</guid>
      <dc:creator>edwinkaus</dc:creator>
      <dc:date>2016-10-22T09:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: USB driver for MK66 MCU (USB-HS device mode)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604806#M35632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB_DeviceMscRecv function needs to receive an usb_device_msc_struct_t pointer which has information about the disk, such as Lba number, Lba length, logical unit number and other MSC-specific information, you you need to pass this information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edwin, it is important to understand that MSC does not work as if "disk can request/send data to host whenever it wants". The mass storage device's only task is to STORE BLOCKS OF DATA RECEIVED FROM HOST and SEND BLOCKS OF DATA REQUESTED BY HOST. In this case, there is no a "request receive" API for MSD, there is a function (callback) that is called everytime a request is received from host:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;usb_status_t USB_DeviceMscCallback(class_handle_t handle, uint32_t event, void *param)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_status_t error = kStatus_USB_Error;
&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_device_lba_information_struct_t *lbaInformationStructure;
&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_device_lba_app_struct_t *lbaData;

&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (event)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventReadResponse:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData = (usb_device_lba_app_struct_t *)param;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventWriteResponse:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData = (usb_device_lba_app_struct_t *)param;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventWriteRequest:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData = (usb_device_lba_app_struct_t *)param;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*offset is the write start address get from write command, refer to class driver*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData-&amp;gt;buffer = g_msc.storageDisk + lbaData-&amp;gt;offset;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventReadRequest:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData = (usb_device_lba_app_struct_t *)param;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*offset is the read start address get from read command, refer to class driver*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaData-&amp;gt;buffer = g_msc.storageDisk + lbaData-&amp;gt;offset;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventGetLbaInformation:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure = (usb_device_lba_information_struct_t *)param;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure-&amp;gt;lengthOfEachLba = LENGTH_OF_EACH_LBA;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure-&amp;gt;totalLbaNumberSupports = TOTAL_LOGICAL_ADDRESS_BLOCKS_NORMAL;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure-&amp;gt;logicalUnitNumberSupported = LOGICAL_UNIT_SUPPORTED;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure-&amp;gt;bulkInBufferSize = DISK_SIZE_NORMAL;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lbaInformationStructure-&amp;gt;bulkOutBufferSize = DISK_SIZE_NORMAL;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventFormatComplete:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kUSB_DeviceMscEventRemovalRequest:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;
}&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;/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;P&gt;&lt;/P&gt;&lt;P&gt;And internally, in the MSC class's firmware, everything is already designed to attend this requests and exchange information as defined in MSC specifications:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="MSC transactions.jpg"&gt;&lt;IMG alt="MSC transactions.jpg" src="https://community.nxp.com/t5/image/serverpage/image-id/5616i352DAE64475A2D7D/image-size/large?v=v2&amp;amp;px=999" title="MSC transactions.jpg" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, that is why you cannot find an API to request data being a MSD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I recommended you to use VCOM example which has APIs to send/received data to/from Host. If you do not want to use this class VCOM (although VCOM uses 3 endpoints, INT endpoint is used to detect some changes on device's configuration, but you can exchange data using both IN and OUT bulk endpoints), you will need to create your vendor specific class and also create a driver from Host's point of view in order to implement the logic to exchange data between host and device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:51:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/USB-driver-for-MK66-MCU-USB-HS-device-mode/m-p/604806#M35632</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2020-11-02T13:51:06Z</dc:date>
    </item>
  </channel>
</rss>

