<?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>LPC MicrocontrollersのトピックLPC435X USBD_HW_API::ReadReqEP</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1442308#M48464</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Is it safe to call "USBD_HW_API::ReadReqEP" , that is function in LPC4357 USB API, at a different timing than sample code？&lt;BR /&gt;For example, we want to use this function in the below sequence.&lt;BR /&gt;(1)call "USBD_HW_API::ReqdReqEP" when recieved "NOTIFY_TRANSFER_DATA_SIZE" the vendor request&lt;BR /&gt;(2)start to transfer bulk out&lt;/P&gt;&lt;P&gt;The reference materials are as follows.&lt;BR /&gt;sample1:TN00041\usbdlib_for_LPC43xx.Release\usbdlib_for_LPC43xx.Release\usbd_lib_lpc43xx\examples_43xx_18xx\usbd_lib_cdc_uart\src\cdc_uart.c&lt;BR /&gt;sample2:TN00041\usbdlib_for_LPC43xx.Release\usbdlib_for_LPC43xx.Release\usbd_lib_lpc43xx\examples_43xx_18xx\usbd_lib_libusb\src&lt;BR /&gt;&lt;BR /&gt;In the sample code, call "USBD_HW_API::ReqdReqEP" timing is&lt;BR /&gt;sample1:USB_EVT_OUT_NAK (Bulk Out NAK Interrupt)&lt;BR /&gt;sample2:USB_EVT_OUT (Bulk Out RecieveEnd Interrupt)&lt;BR /&gt;&lt;BR /&gt;We checked the specification documents, but the information of call function timing is nothing.&lt;BR /&gt;・UM10503.pdf/27.5.34 USBD_HW_API/Table 595. USBD_HW_API class structure(P813)&lt;BR /&gt;・TN00041/usbdlib_for_LPC43xx.Release/usbdlib_for_LPC43xx.Release/usbd_lib_lpc43xx/LPC_USBD_Lib/docs/html/struct_u_s_b_d___h_w___a_p_i___t.html&lt;/P&gt;</description>
    <pubDate>Tue, 12 Apr 2022 01:51:16 GMT</pubDate>
    <dc:creator>contributor_20220412_1102</dc:creator>
    <dc:date>2022-04-12T01:51:16Z</dc:date>
    <item>
      <title>LPC435X USBD_HW_API::ReadReqEP</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1442308#M48464</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Is it safe to call "USBD_HW_API::ReadReqEP" , that is function in LPC4357 USB API, at a different timing than sample code？&lt;BR /&gt;For example, we want to use this function in the below sequence.&lt;BR /&gt;(1)call "USBD_HW_API::ReqdReqEP" when recieved "NOTIFY_TRANSFER_DATA_SIZE" the vendor request&lt;BR /&gt;(2)start to transfer bulk out&lt;/P&gt;&lt;P&gt;The reference materials are as follows.&lt;BR /&gt;sample1:TN00041\usbdlib_for_LPC43xx.Release\usbdlib_for_LPC43xx.Release\usbd_lib_lpc43xx\examples_43xx_18xx\usbd_lib_cdc_uart\src\cdc_uart.c&lt;BR /&gt;sample2:TN00041\usbdlib_for_LPC43xx.Release\usbdlib_for_LPC43xx.Release\usbd_lib_lpc43xx\examples_43xx_18xx\usbd_lib_libusb\src&lt;BR /&gt;&lt;BR /&gt;In the sample code, call "USBD_HW_API::ReqdReqEP" timing is&lt;BR /&gt;sample1:USB_EVT_OUT_NAK (Bulk Out NAK Interrupt)&lt;BR /&gt;sample2:USB_EVT_OUT (Bulk Out RecieveEnd Interrupt)&lt;BR /&gt;&lt;BR /&gt;We checked the specification documents, but the information of call function timing is nothing.&lt;BR /&gt;・UM10503.pdf/27.5.34 USBD_HW_API/Table 595. USBD_HW_API class structure(P813)&lt;BR /&gt;・TN00041/usbdlib_for_LPC43xx.Release/usbdlib_for_LPC43xx.Release/usbd_lib_lpc43xx/LPC_USBD_Lib/docs/html/struct_u_s_b_d___h_w___a_p_i___t.html&lt;/P&gt;</description>
      <pubDate>Tue, 12 Apr 2022 01:51:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1442308#M48464</guid>
      <dc:creator>contributor_20220412_1102</dc:creator>
      <dc:date>2022-04-12T01:51:16Z</dc:date>
    </item>
    <item>
      <title>Re: LPC435X USBD_HW_API::ReadReqEP</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1444047#M48485</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;
&lt;P&gt;ReadReqEP() sets up the DMA descriptors in preparation for transferring data from memory to the USB controller. Then it primes the endpoint.&lt;/P&gt;
&lt;P&gt;ReadEP() only returns the total bytes transferred once the DMA operation is complete. It does nothing with the data buffer pointer passed in.&lt;/P&gt;
&lt;P&gt;NAKs are the throttling mechanism on a USB bus. If the CPU is slower at generating data that the USB is at shipping it out then NAKs provide a convenient and legal way to tell the host to wait for more data to arrive.&lt;/P&gt;
&lt;P&gt;The best way to call these functions is:&lt;/P&gt;
&lt;P&gt;Call ReadReqEP() once to get the stream started&lt;/P&gt;
&lt;P&gt;Call ReadEP() following the receipt of an IN completion, then call ReadReqEP() to get the next transfer started.&lt;/P&gt;
&lt;P&gt;Call ReadReqEP() any time a NAK is received.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Jun Zhang&lt;/P&gt;</description>
      <pubDate>Thu, 14 Apr 2022 09:28:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1444047#M48485</guid>
      <dc:creator>ZhangJennie</dc:creator>
      <dc:date>2022-04-14T09:28:40Z</dc:date>
    </item>
    <item>
      <title>Re: LPC435X USBD_HW_API::ReadReqEP</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1445340#M48502</link>
      <description>&lt;P&gt;Thanks for the support. I understand it.&lt;/P&gt;</description>
      <pubDate>Tue, 19 Apr 2022 02:43:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC435X-USBD-HW-API-ReadReqEP/m-p/1445340#M48502</guid>
      <dc:creator>contributor_20220412_1102</dc:creator>
      <dc:date>2022-04-19T02:43:43Z</dc:date>
    </item>
  </channel>
</rss>

