<?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 Re: [SOLVED] Accessing CLK_USB0_CFG crashes core in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594357#M22619</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Thu Jan 08 04:35:03 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;In order to the access the CLK_USB0_xxx and CLK_USB1_xxx peripheral registers, I think that you need to have the PLL0_USB clock active. In PLL0USB_CTRL, check it is powered up (PD=0), and the output is enabled (CLKEN=1).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso Support&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:21:26 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:21:26Z</dc:date>
    <item>
      <title>[SOLVED] Accessing CLK_USB0_CFG crashes core</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594356#M22618</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by chris_bayley_trimble on Wed Jan 07 17:50:22 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm having a very frustrating time with the USB_CLK registers. Any access to any of the 4 USB CLK registers (CLK_USB0_CFG:0x40051800, CLK_USB0_STAT:0x40051804, CLK_USB1_CFG:0x40051900, &amp;amp; CLK_USB1_STAT:0x40051904) causes my 4357 (I've also tried a 4330) to become unresponsive and loose comms with the debugger. I can access the adjacent CLK control registers at 0x40051700 and 0x40051a00 without issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the code below demonstrates the problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile uint32_t* ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile uint32_t val;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // This works
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051700; //CLK_PERIPH_BUS config
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This works
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051704; //CLK_PERIPH_BUS status
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This works
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051A00; //CLK_SPI_CFG
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // This crashes the debugger/core
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051800; //CLK_USB0 config
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This crashes the debugger/core
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051804; //CLK_USB0 status
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This crashes the debugger/core
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051900; //CLK_USB1 config
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This crashes the debugger/core
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051904; //CLK_USB1 status
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It is also true that I cannot access that memory via the debugger, if I add the expression&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;*0x40051800&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt; to expressions windows I will loose connection to the target immediately.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried the access first thing before board init and later on after USB is already running, the result is always the same.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have scanned the errata for the 43xx but can find nothing relevant.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Help !&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:21:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594356#M22618</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:21:26Z</dc:date>
    </item>
    <item>
      <title>Re: [SOLVED] Accessing CLK_USB0_CFG crashes core</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594357#M22619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Thu Jan 08 04:35:03 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;In order to the access the CLK_USB0_xxx and CLK_USB1_xxx peripheral registers, I think that you need to have the PLL0_USB clock active. In PLL0USB_CTRL, check it is powered up (PD=0), and the output is enabled (CLKEN=1).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso Support&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:21:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594357#M22619</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:21:26Z</dc:date>
    </item>
    <item>
      <title>Re: [SOLVED] Accessing CLK_USB0_CFG crashes core</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594358#M22620</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by chris_bayley_trimble on Thu Jan 08 14:05:29 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your advice sounded promising and we had been thinking along those lines, but unfortunately it does not yet resolve the issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Even after enabling the PLL0_USB accessing CLK_USB0/1 still crashes the core.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40050020; //PLL0USB_CTRL
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;&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; // val = 0x01000003
&amp;nbsp;&amp;nbsp;&amp;nbsp; val &amp;amp;= ~0x01;&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; // PD = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; val |= 0x10;&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; // CLKEN = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; *ptr = val;&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; // val = 0x01000012

&amp;nbsp;&amp;nbsp;&amp;nbsp; // This STILL crashes the debugger/core
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t*)0x40051800; //CLK_USB0 config
&amp;nbsp;&amp;nbsp;&amp;nbsp; val = *ptr;
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What other conditions do we need to ensure ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:21:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594358#M22620</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:21:27Z</dc:date>
    </item>
    <item>
      <title>Re: [SOLVED] Accessing CLK_USB0_CFG crashes core</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594359#M22621</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by DF9DQ on Thu Jan 08 15:48:07 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;0x01000012 is the very value that got it working for me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is what I did:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[list]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [*]SYSRESET the device, and let it run through the boot code up to the reset vector of the application in flash. That is, no instruction of my application code has been run yet, and the device is supposed to be in a pristine state with no side effect of any debugger script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [*]Use the debugger to power up the PLL0_USB, and enable its output (PD=0, CLKEN=1).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [*]It's only now that I open a memory view containing the registers CLK_USB0_CFG etc.&amp;nbsp; If I had opened that memory view before enabling the PLL, it would indeed have crashed the debugger just as you described.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/list]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have not double-checked that the CPU now also has access to the registers in question, but I have no good reason to doubt that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:21:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594359#M22621</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: [SOLVED] Accessing CLK_USB0_CFG crashes core</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594360#M22622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by chris_bayley_trimble on Sun Jan 11 15:01:22 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have found that the key to my troubles was that in addition to needing to follow the advice above, BASE_USB0_CLK and/or BASE_USB1_CLK must be enabled before any other USB clock config registers are accessible without locking up the core.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks all for the help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:21:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SOLVED-Accessing-CLK-USB0-CFG-crashes-core/m-p/594360#M22622</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:21:28Z</dc:date>
    </item>
  </channel>
</rss>

