<?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 Token Done Interrupt in MCF52223 USB OTG Controller in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172066#M6416</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Tech's,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Presently&amp;nbsp;we are&amp;nbsp;working on MCF52223 USB Device controller.After RESET we configure the Endpoint 0 for receieving the Setup packet, for that we set&amp;nbsp; Endpoint Control Register 0 = 0x0D.&lt;/DIV&gt;&lt;DIV&gt;After that in BD Byte format we set BC(bit 16:25) as 64 as Max. Packet Size and Enable the DTS bit for synchronization purpose , both Even and ODD bank. For&amp;nbsp;Sending DATA &amp;nbsp;we set as all BD Byte format as 0. In Initialization part we set the BDT Base address in PAGE0,1,2 registers.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After that we&amp;nbsp; enable the TOKEN_DONE bit in INT_ENB register to get the interrupt. But we are nit getting the TOKEN_DONE interrupt, when we see the INT_STAT register.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Our main problem is why we are not getting the TOKEN DONE interrupt.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 11 Dec 2007 16:15:23 GMT</pubDate>
    <dc:creator>SetAlias</dc:creator>
    <dc:date>2007-12-11T16:15:23Z</dc:date>
    <item>
      <title>Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172066#M6416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Tech's,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Presently&amp;nbsp;we are&amp;nbsp;working on MCF52223 USB Device controller.After RESET we configure the Endpoint 0 for receieving the Setup packet, for that we set&amp;nbsp; Endpoint Control Register 0 = 0x0D.&lt;/DIV&gt;&lt;DIV&gt;After that in BD Byte format we set BC(bit 16:25) as 64 as Max. Packet Size and Enable the DTS bit for synchronization purpose , both Even and ODD bank. For&amp;nbsp;Sending DATA &amp;nbsp;we set as all BD Byte format as 0. In Initialization part we set the BDT Base address in PAGE0,1,2 registers.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After that we&amp;nbsp; enable the TOKEN_DONE bit in INT_ENB register to get the interrupt. But we are nit getting the TOKEN_DONE interrupt, when we see the INT_STAT register.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Our main problem is why we are not getting the TOKEN DONE interrupt.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Dec 2007 16:15:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172066#M6416</guid>
      <dc:creator>SetAlias</dc:creator>
      <dc:date>2007-12-11T16:15:23Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172067#M6417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; Our main problem is why we are not getting the TOKEN DONE interrupt.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Did you enable the interrupt at the interrupt controller, as well as the usb INT_STAT?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I do:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable usb interrupt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM[117] = (uint32)usbisr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_ICR53 = MCF_INTC_ICR_IL(SPL_USB)|MCF_INTC_ICR_IP(SPL_USB);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRH &amp;amp;= ~MCF_INTC_IMRH_INT_MASK53;&amp;nbsp; // usb&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_INTC0_IMRL &amp;amp;= ~MCF_INTC_IMRL_MASKALL;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;And then, of course, you need to enable CPU interrupts if you have not yet:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I call splx(0), below:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; // set the current interrupt mask level and return the old one&lt;BR /&gt;&amp;nbsp; static&lt;BR /&gt;&amp;nbsp; int&lt;BR /&gt;&amp;nbsp; splx(int level)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; short oldlevel = 0;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; level = (level &amp;amp; 7) &amp;lt;&amp;lt; 8;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // enable cpu interrupts&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; asm {&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w sr,d1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w d1,oldlevel&amp;nbsp; // get the old level from the sr&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and #0xf8ff,d1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or level,d1&amp;nbsp; // insert the new level into the sr&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move.w d1,sr&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return (oldlevel &amp;gt;&amp;gt; 8) &amp;amp; 7;&lt;BR /&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have a simple host mode driver working with interrupts just for device attach at:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &lt;A href="http://www.testardi.com/rich/coldfire/" rel="nofollow" target="_blank"&gt;http://www.testardi.com/rich/coldfire/&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;if you want to see it...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I also had one issue with interrupts working in the INTERNAL_FLASH and CONSOLE_RAM configuration, but not RAM, which I traced to a difference in the Linker Entry Point settings...&amp;nbsp; I now use _asm_startmeup from the coldfire stationery (rather than start) exclusively, so I can see what is going on and change it...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich T&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Dec 2007 12:22:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172067#M6417</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2007-12-21T12:22:49Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172068#M6418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Rich,&lt;/DIV&gt;&lt;DIV&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; Thanks for your reply.&lt;/DIV&gt;&lt;DIV&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; Our mistake is we haven't configured the PLL clock divider for the USB.Initilally we created the project with Console debug mode. When we enter into the debug mode ,the debug cursor was placed at main(), before that "mcf5222x_init ( )" &amp;nbsp;hardware initlization was completed.But it was not that what we think.Now i changed the linker entry point as you said.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Now Iam getting the TOKEN_DONE interrupt, but when i read the BDT attributes with Endpoint number from STAT register, we got " 0x00400088"&amp;nbsp;which was configured for the Even bank. We configured the BDT buffer address with 8 bytes of global array for the setup packet.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;for the first time only we have to see the &amp;nbsp;BDT attributes with "0x0080034" value.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have so many doubts regarding the Code warrior IDE after creating the project.What is the use of&amp;nbsp; "mcf5222x_vectors.s" file in which USB Interrupt Service Routine(ISR) was already configured, but when the interrupts are enabled for USB, we haven't seen the printf statements in the function.Once again we have to configure from the main function.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;We are attaching our code for our unknown mistakes, in which "MCF52223_BusNotify()" for RESET, if we&amp;nbsp;uncomment the &amp;nbsp;line MCF_USB_INT_ENB =&amp;nbsp;MCF_USB_INT_ENB_TOK_DNE; we are getting the attributes for Setup packet&amp;nbsp;, but if &amp;nbsp;we comment we are getting the attributes what we set.Insted of uncomenting if we OR the TOKEN_DONE interrupt then for INT_ENB register , we are not getting the attributes for setup packet.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for your reading.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Dec 2007 22:12:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172068#M6418</guid>
      <dc:creator>SetAlias</dc:creator>
      <dc:date>2007-12-27T22:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172069#M6419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; Now i changed the linker entry point as you said.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I also had to change the cw project wizard's PLL initialization code, which was running my 66 MHz part at 80 MHz! :-)&amp;nbsp; So I decided to eliminate everything that was unnecessary from my initialization sequence created by the cw project wizard, and am left with just the attached files if you want to see them&amp;nbsp;-- the linker entry point is still&amp;nbsp;_asm_startmeup.&amp;nbsp; This reduces code bloat (printf(3) is huge and makes RAM debugging almost impossible for all but the smallest program!) and makes it a lot easier for me to follow what is actually going on!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; What is the use of&amp;nbsp; "mcf5222x_vectors.s" file ...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From what I can tell, the only purpose of this is to set the initial startup vectors and flash configuration information.&amp;nbsp; Once these are used, everything else is copied to and used from RAM.&amp;nbsp; You can see from my code that all vectors except 0 and 1 (initial sp and pc) simply "halt", so they are simply unneeded.&amp;nbsp; I then patch the RAM values in my boot sequence, so I have a consistent model for when running from either FLASH or RAM (which has the quicker debug cycle, though you can typically only debug a subset of your code because of the 16k/32k limitation).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;As for your code, just looking at MCF52223_EnableEndpoint(), it seems you might be confusing the two separate "toggles"...&amp;nbsp; One "toggle" is the even/odd selector&amp;nbsp;for the BDT to allow concurrent outstanding commands, and the other is specified by USB for data0/data1 phase sequencing.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In your code, when you reset the BDT data toggles:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; void&amp;nbsp; MCF52223_ResetBDT (void)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CPU_INT08U&amp;nbsp; idx;&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;&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; /* RESET All BDT ODD bits to zero&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;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;MCF_USB_CTL |= MCF_USB_CTL_ODD_RST;&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MCF_USB_CTL &amp;amp;= ~MCF_USB_CTL_ODD_RST;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (idx = 0; idx &amp;lt; MCF52223_MAX_EPS; idx++) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;EpInf[idx] = 0;&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;You reset EpInf[] to 0.&amp;nbsp; This would lead me to believe EpInf is the even/odd BDT&amp;nbsp;toggle (not the data0/data1 toggle).&amp;nbsp; But then later you use EpInf as the data0/data1 toggle (*not* as the even/odd toggle):&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; void MCF52223_EnableEndpoint (CPU_INT08U&amp;nbsp; ep_addr, CPU_INT08U&amp;nbsp; odd_bnk)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; CPU_INT08U&amp;nbsp; data_tgl_bit;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; CPU_INT32U&amp;nbsp; bdt_attr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;data_tgl_bit = GET_DATA_TOGGLE(EpInf[EP(ep_addr)]);&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; bdt_attr = BDT_Read(BDT_BASE_ATTR_CORE(ep_addr, odd_bnk));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (EP_DIR(ep_addr)) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bdt_attr &amp;amp;= ~(0xFF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;FONT color="#ff0000"&gt;bdt_attr |= (MCF_BDT_CTL_OWN | data_tgl_bit | MCF_BDT_CTL_DTS);&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; BDT_Write(BDT_BASE_ATTR_CORE(ep_addr, odd_bnk), bdt_attr);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;To my understanding, these two toggles should be managed completely independently...&amp;nbsp; Setting MCF_USB_CTL_ODD_RST should *not* change the data0/data1 toggle state, and a new setup transaction should not change the BDT even/odd toggle state.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The even/odd toggle is used *only* as a parameter to what you call "bnk" in BDT_BASE_ATTR_CORE() and BDT_BASE_ADDR_CORE().&amp;nbsp; For a host USB driver, there is only one of these since you only use endpoint 0.&amp;nbsp; It is reset when you set MCF_USB_CTL_ODD_RST.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The data0/data1 toggle, on the other hand,&amp;nbsp;is used as a parameter to what you call "val" in BDT_Write() and BDT_Read().&amp;nbsp; There is one of these per logical endpoint.&amp;nbsp; It is set to data0 for a setup transaction and data1 for a status transaction.&amp;nbsp; It is reset at various times called out in the spec, most notably on a configuration event on a bulk endpoint.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If you want to check out when I toggle, you can see my code (&lt;A href="http://www.testardi.com/rich/coldfire/" rel="nofollow" target="_blank"&gt;http://www.testardi.com/rich/coldfire/&lt;/A&gt;) and search for "toggle" to see the USB-specified data0/data1 toggle, and "bdtodd" to see the coldfire USB module hardware BDT odd/even toggle.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2008 07:59:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172069#M6419</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-01-03T07:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172070#M6420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Hi Rich, Thanks for your reply.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&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; The problem why we are&amp;nbsp;not&amp;nbsp;getting the correct BDT attributes&amp;nbsp;when setup packet is received because of more "printf" statements.Now we reduced the unnecessary code and modified according to your notes.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Let me explain what we understood about BDT banks&amp;nbsp;, Data toggle bits and How EpInf[ ] is using in our code.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;For Each endpoint in one direction it has two banks one is Even and other is Odd bank. For Each bank we have two Toggle bits Data0 and Data1. Is it correct? Let me know.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;EpInf[ ] has the following bits:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;/*&lt;BR /&gt;&amp;nbsp; EpInf:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;----------------------------------&lt;BR /&gt;|&amp;nbsp;&amp;nbsp; | DT|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; |E/O|&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; bit 3: Even and ODD bank. bit6: Data0/1 toggle bit&lt;BR /&gt;----------------------------------&lt;BR /&gt;*/&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;In MCF52223_EnableEndpoint (CPU_INT08U&amp;nbsp; ep_addr, CPU_INT08U&amp;nbsp; odd_bnk) , we are reading the data toggle bits, from a particular bank with argument "odd_bnk = EVEN or ODD Bank".&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;The parameter 'bnk 'in BDT_BASE_ATTR_CORE() and BDT_BASE_ADDR_CORE() is for EVEN and ODD bank only.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;The parameter 'val 'in BDT_Write() is for Bdt&amp;nbsp; attributes only.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Now the EpInf[ ] is used for both banks and toggle bits.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Now we are added some code for enumeration purpose, in which host asking for 18 bytes for device desriptor and we are sending the 18 bytes and waiting for Status out, but we are getting the RESET event.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;we are attaching the code.In the code "SetupFlag " is modifed in&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;MCF52223_WriteEndpoint( ),MCF52223_EndPoint0IN( ),MCF52223_EndPoint0OUT( ) and in MCF52223_EpOpen( ).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Even and Odd Banks are changed in MCF52223_EndPoint0IN( ),MCF52223_EndPoint0OUT( ) .&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Data toggle bits are chnaged in MCF52223_EndPoint0IN( ),MCF52223_EndPoint0OUT( ) with SetupFlag value.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;FONT size="2"&gt;Thnaks for reading.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 18:16:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172070#M6420</guid>
      <dc:creator>SetAlias</dc:creator>
      <dc:date>2008-01-04T18:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172071#M6421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Oh, sorry, I totally missed you were storing two different things in EpInf[]! :smileyhappy:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;So, in MCF52223_ResetBDT(),&amp;nbsp;I don't believe you should&amp;nbsp;be clearing bit 6 (only bit 3), since bit 6 is&amp;nbsp;USB protocol state unaffected by MCF_USB_CTL_ODD_RST, though I doubt that is the source of your problem since you probably only call that on boot...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Jan 2008 21:41:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172071#M6421</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-01-04T21:41:55Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172072#M6422</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV align="left"&gt;&lt;FONT face="Comic Sans MS" size="2"&gt;Hay Rich,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;FONT face="Comic Sans MS"&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; Our USB Device stack is working&lt;/FONT&gt;.&lt;/FONT&gt;&lt;FONT face="Comic Sans MS"&gt;The problem&amp;nbsp; with the "MCF52223_GetBnk( )" function logic, where every time we are writing the data on&amp;nbsp;same bank,so we changed the logic and it's working now.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&amp;nbsp; Can&amp;nbsp;we get&amp;nbsp;any&amp;nbsp; RTOS&amp;nbsp;for&amp;nbsp;Code Warrior&amp;nbsp;IDE 6.7&amp;nbsp;?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&amp;nbsp; Now we are getting one more problem, where we removed the unneccssary code which&amp;nbsp;we get&amp;nbsp;when project was created ,and added our stack. When we running the program in Debug mode&amp;nbsp;we are getting unexpected exception mostly BUS Errors in our code.The BUS Error was not&amp;nbsp;at same code,that we can't say where it will be happen.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;we have "M52223EVB_SRAM.lcf", in this file we added the below lines:&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MEMORY {&lt;BR /&gt;&amp;nbsp;vector_ram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00000500&lt;BR /&gt;&amp;nbsp;usb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW)&amp;nbsp;&amp;nbsp;&amp;nbsp; : ORIGIN = 0x20000600, LENGTH = 0x00000200&lt;BR /&gt;&amp;nbsp;user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RWX)&amp;nbsp; &amp;nbsp;: ORIGIN = 0x20000800, LENGTH = 0x00007B00&lt;BR /&gt;&amp;nbsp;ipsbar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RWX) :&amp;nbsp; &amp;nbsp;ORIGIN = 0x40000000, LENGTH = 0x0&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;.usb_bdt:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN (0x200);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; usb&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;__USB_BDT_BASE&amp;nbsp; = ADDR(.usb_bdt);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;After this we modified as you noticed like program entry point and in"mcf5222x_vectors.s", all the vectors are replaced by "asm exception handler", and in initialization "mcf5222x_init( )"&amp;nbsp;part we didn't modified but kept as it is.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;Why we are getting so many BUS Errors?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;Many many thanks for your input....&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Comic Sans MS"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Jan 2008 18:58:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172072#M6422</guid>
      <dc:creator>SetAlias</dc:creator>
      <dc:date>2008-01-08T18:58:05Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172073#M6423</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;It's hard to say where a random bus error comes from -- my guess is you are corrupting memory somewhere, or playing with memory while hardware (or isr)&amp;nbsp;is looking at it, or something...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Can you try disabling different pieces of your software and seeing when the problem goes away?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Jan 2008 22:53:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172073#M6423</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-01-09T22:53:38Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172074#M6424</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Rich,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ok we will test the code in pieces .Can you tell me how to program the flash memory in MCF52223 EVB,&amp;nbsp;(Flash Memory = 256KBytes&amp;nbsp;)What are the settings we have to change in *.LCF files and settings in the IDE.&lt;/DIV&gt;&lt;DIV&gt;How can I know that my program is flashed to RAM or FLASH memory.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jan 2008 17:20:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172074#M6424</guid>
      <dc:creator>SetAlias</dc:creator>
      <dc:date>2008-01-10T17:20:13Z</dc:date>
    </item>
    <item>
      <title>Re: Token Done Interrupt in MCF52223 USB OTG Controller</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172075#M6425</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; Can you tell me how to program the flash memory in MCF52223 EVB,&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; (Flash Memory = 256KBytes&amp;nbsp;)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I just use "Tools-&amp;gt;Flash Programmer" and then click "Load Settings" and&lt;/DIV&gt;&lt;DIV&gt;select "CFM_MCF52221.xml" -- I assume you'd select "CFM_MCF52223.xml"&lt;/DIV&gt;&lt;DIV&gt;instead.&amp;nbsp; Then just click "Erase / Blank Check" and then "Erase" and it&lt;/DIV&gt;&lt;DIV&gt;should do the work for you...&amp;nbsp; And then "Program / Verify" and "Program".&lt;/DIV&gt;&lt;DIV&gt;(Of course, that is after selecting the INTERNAL_FLASH target and doing&lt;/DIV&gt;&lt;DIV&gt;a build...)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; How can I know that my program is flashed to RAM or FLASH memory.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have two targets in my project, INTERNAL_FLASH and RAM -- if I select&lt;/DIV&gt;&lt;DIV&gt;INTERNAL_FLASH, I can use the flash programmer and then debug from&lt;/DIV&gt;&lt;DIV&gt;flash; otherwise, if I select RAM, I run directly from RAM.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Hopefully that will work for you -- I didn't need to edit any linker config files.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;-- Rich&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jan 2008 22:46:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Token-Done-Interrupt-in-MCF52223-USB-OTG-Controller/m-p/172075#M6425</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-01-10T22:46:20Z</dc:date>
    </item>
  </channel>
</rss>

