<?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>T-SeriesのトピックRe: Scheduling problem with T1040's USB host controller</title>
    <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477114#M593</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also, just to demonstrate that S-mask is unused, look at pic2. EP7's S-mask = 0x04, so EP7 transaction should not start before the third micro-frame. Yet we can see at pic2 that EP7 transaction starts during the &lt;STRONG&gt;second&lt;/STRONG&gt; micro-frame!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Apr 2016 12:54:15 GMT</pubDate>
    <dc:creator>christophebeaus</dc:creator>
    <dc:date>2016-04-18T12:54:15Z</dc:date>
    <item>
      <title>Scheduling problem with T1040's USB host controller</title>
      <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477110#M589</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'm using T1040’s USB host controller to access a Full Speed (USB 1.1) device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is (very) basically how our periodic transfer descriptors are built:&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;TD&amp;nbsp;&amp;nbsp;&amp;nbsp; EP#&amp;nbsp;&amp;nbsp; EP Type&amp;nbsp;&amp;nbsp; MaxLen S-mask C-mask&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD1 EP3&amp;nbsp;&amp;nbsp; ISO OUT&amp;nbsp;&amp;nbsp;&amp;nbsp; 184&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01&amp;nbsp;&amp;nbsp; 0x04&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD2 EP2&amp;nbsp;&amp;nbsp; ISO OUT&amp;nbsp;&amp;nbsp;&amp;nbsp; 112&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02&amp;nbsp;&amp;nbsp; 0x08&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD3 EP6&amp;nbsp;&amp;nbsp; ISO IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&amp;nbsp;&amp;nbsp; 0x10&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD4 EP7&amp;nbsp;&amp;nbsp; INT OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&amp;nbsp;&amp;nbsp; 0x10&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD5 EP8&amp;nbsp;&amp;nbsp; INT IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&amp;nbsp;&amp;nbsp; 0x30&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD6 EP4&amp;nbsp;&amp;nbsp; INT IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&amp;nbsp;&amp;nbsp; 0x20&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;stTD7 EP5&amp;nbsp;&amp;nbsp; ISO IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 392&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&amp;nbsp;&amp;nbsp; 0xC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and how they are chained together :&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD1-&amp;gt;next_link_ptr&amp;nbsp; = siTD2 | UEH_CT_TYPE_siTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD2-&amp;gt;next_link_ptr&amp;nbsp; = siTD3 | UEH_CT_TYPE_siTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD3-&amp;gt;next_link_ptr&amp;nbsp; = qhTD4 | UEH_CT_TYPE_qhTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD4-&amp;gt;horiz_link_ptr = qhTD5 | UEH_CT_TYPE_qhTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD5-&amp;gt;horiz_link_ptr = qhTD6 | UEH_CT_TYPE_qhTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD6-&amp;gt;horiz_link_ptr = siTD7 | UEH_CT_TYPE_siTD;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The USB device is a custom card for which I expect 7 transactions in one frame (see pic1.jpg in attachment. Time slots 0/1000/2000 are where we observe the SOF)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But what I observe if different (see pic2.jpg in attachment). It appears that:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;S-mask and C-mask are not respected (same result is obtained with all S-mask=0x01 and all C-mask=0x04)&lt;/LI&gt;&lt;LI&gt;EP6 and EP5 (both isochronous input data) are delayed in next frame&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What does explain this behavior?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can we force USB host controller to respect the specified scheduling?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it could help, pic3.jpg is an overview of how we configured USB HC (without connected device here).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll be very grateful for any help !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Apr 2016 07:16:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477110#M589</guid>
      <dc:creator>christophebeaus</dc:creator>
      <dc:date>2016-04-04T07:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: Scheduling problem with T1040's USB host controller</title>
      <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477111#M590</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10.0pt;"&gt;Your pictures show that the T1040 USB controller does not have possibilites for sending three &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-size: 10.0pt;"&gt;start-split transactions and one complete-split transaction at microframe 2. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10.0pt;"&gt;Change S-mask for EP6 and EP5 to 0x20 or 0x40.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10.0pt;"&gt;Change also C-mask for these endpoints.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Pavel Chubakov&lt;/P&gt;&lt;P&gt;&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>Fri, 08 Apr 2016 04:11:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477111#M590</guid>
      <dc:creator>Pavel</dc:creator>
      <dc:date>2016-04-08T04:11:50Z</dc:date>
    </item>
    <item>
      <title>Re: Scheduling problem with T1040's USB host controller</title>
      <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477112#M591</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Pavel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot for your interest!&lt;/P&gt;&lt;P&gt;I've just tried what you suggested. So here is my new configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;TD&amp;nbsp;&amp;nbsp;&amp;nbsp; EP#&amp;nbsp;&amp;nbsp; EP Type&amp;nbsp;&amp;nbsp; MaxLen S-mask C-mask&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD1 EP3&amp;nbsp;&amp;nbsp; ISO OUT&amp;nbsp;&amp;nbsp;&amp;nbsp; 184&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01&amp;nbsp;&amp;nbsp; 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD2 EP2&amp;nbsp;&amp;nbsp; ISO OUT&amp;nbsp;&amp;nbsp;&amp;nbsp; 112&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02&amp;nbsp;&amp;nbsp; 0x00&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;siTD3 EP6&amp;nbsp;&amp;nbsp; ISO IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&amp;nbsp;&amp;nbsp; 0x10&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD4 EP7&amp;nbsp;&amp;nbsp; INT OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&amp;nbsp;&amp;nbsp; 0x10&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD5 EP8&amp;nbsp;&amp;nbsp; INT IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&amp;nbsp;&amp;nbsp; 0x20&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;qhTD6 EP4&amp;nbsp;&amp;nbsp; INT IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&amp;nbsp;&amp;nbsp; 0x20&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: courier new,courier;"&gt;stTD7 EP5&amp;nbsp;&amp;nbsp; ISO IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 392&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&amp;nbsp;&amp;nbsp; 0xC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, as explained above, changing S-mask and C-mask has absolutely no impact. I obtain exactly the same result!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've also tried to change the way my TDs are chained.&lt;/P&gt;&lt;P&gt;With:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP5 -&amp;gt; EP6 -&amp;gt; EP3 -&amp;gt; EP2 -&amp;gt; EP7 -&amp;gt; EP8 -&amp;gt; EP4&lt;/P&gt;&lt;P&gt;I obtain:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP5 -&amp;gt; EP6 -&amp;gt; EP7 -&amp;gt; EP8 -&amp;gt; EP4 for the first frame&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP3 -&amp;gt; EP2 for the second frame&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP3 -&amp;gt; EP6 -&amp;gt; EP5 -&amp;gt; EP2 -&amp;gt; EP7 -&amp;gt; EP8 -&amp;gt; EP4&lt;/P&gt;&lt;P&gt;I obtain:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP3 -&amp;gt; EP6 -&amp;gt; EP5 -&amp;gt; EP7 -&amp;gt; EP8 -&amp;gt; EP4 for the first frame&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EP2 for the second frame&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess that:&lt;/P&gt;&lt;P&gt;- because I use the USB HC's internal Transactions Translator (TT), the HC does not care about S-mask and C-mask (it directly deals with full speed and it doesn't need to send split packets)&lt;/P&gt;&lt;P&gt;- the USB HC decides by itself to postpone some transactions. I guess that it manages priority thus it only accepts ISO transactions that are set first, up to a maximum size or number (or another resource), then it deals with INT transactions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;May I be wrong?&lt;/P&gt;&lt;P&gt;How to learn about these limitations?&lt;/P&gt;&lt;P&gt;How to change or control this behavior?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Christophe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Apr 2016 14:34:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477112#M591</guid>
      <dc:creator>christophebeaus</dc:creator>
      <dc:date>2016-04-15T14:34:14Z</dc:date>
    </item>
    <item>
      <title>Re: Scheduling problem with T1040's USB host controller</title>
      <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477113#M592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is also in attachment the USB HC registers view once my device is connected.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Apr 2016 15:16:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477113#M592</guid>
      <dc:creator>christophebeaus</dc:creator>
      <dc:date>2016-04-15T15:16:46Z</dc:date>
    </item>
    <item>
      <title>Re: Scheduling problem with T1040's USB host controller</title>
      <link>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477114#M593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also, just to demonstrate that S-mask is unused, look at pic2. EP7's S-mask = 0x04, so EP7 transaction should not start before the third micro-frame. Yet we can see at pic2 that EP7 transaction starts during the &lt;STRONG&gt;second&lt;/STRONG&gt; micro-frame!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2016 12:54:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/Scheduling-problem-with-T1040-s-USB-host-controller/m-p/477114#M593</guid>
      <dc:creator>christophebeaus</dc:creator>
      <dc:date>2016-04-18T12:54:15Z</dc:date>
    </item>
  </channel>
</rss>

