<?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: USB HID Joystick &amp; Problem in ADC4 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/USB-HID-Joystick-Problem-in-ADC4/m-p/521433#M4189</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rocketfuel on Wed Jul 23 18:11:42 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi again. After several hours without figuring out what the problem was, I finally solved it by changing the order of two functions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;USBInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ConfigADC();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;instead of:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ConfigADC();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;USBInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Seems like USBInit configures that pin as input to check power supply and causes device reset when I plug in the pot. If somebody can confirm this would be much appreciated. I took USB HID from exaples folder to start this project, then I added ADC functionality.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:50:29 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:50:29Z</dc:date>
    <item>
      <title>USB HID Joystick &amp; Problem in ADC4</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/USB-HID-Joystick-Problem-in-ADC4/m-p/521432#M4188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rocketfuel on Wed Jul 23 09:10:59 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello everyone, I am new working with LPC1769 and Xpresso board Rev C. I succesfully developed an USB HID Joystick with 8 axis &amp;amp; 32 buttons working fine but I have a problem only with ADC4. I test every single ADC using a Pot and im reading correct values from 0 to 4095 but when I touch ADC4 with the wire the device disconnects. This is my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int AdcData[8];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define ADC_POWERON (1&amp;lt;&amp;lt;12)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define PCLK_ADC 24&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define PCLK_ADC_MASK (3&amp;lt;&amp;lt;24)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC0 (1&amp;lt;&amp;lt;14)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC1 (1&amp;lt;&amp;lt;16)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC2 (1&amp;lt;&amp;lt;18)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC3 (1&amp;lt;&amp;lt;20)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC4 (3&amp;lt;&amp;lt;28)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC5 (3&amp;lt;&amp;lt;30)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC6 (2&amp;lt;&amp;lt;6)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SELECT_ADC7 (2&amp;lt;&amp;lt;4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// ADOCR constants&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define START_ADC (1&amp;lt;&amp;lt;24)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define OPERATIONAL_ADC (1&amp;lt;&amp;lt;21)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD0 (1&amp;lt;&amp;lt;0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD1 (1&amp;lt;&amp;lt;1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD2 (1&amp;lt;&amp;lt;2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD3 (1&amp;lt;&amp;lt;3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD4 (1&amp;lt;&amp;lt;4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD5 (1&amp;lt;&amp;lt;5)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD6 (1&amp;lt;&amp;lt;6)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SEL_AD7 (1&amp;lt;&amp;lt;7)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define ADC_DONE_BIT (1&amp;lt;&amp;lt;31)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//=======================================================================================&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ConfigADC(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP |=&amp;nbsp; ADC_POWERON;// Turn on power to ADC block&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCLKSEL0 &amp;amp;= ~(PCLK_ADC_MASK);// Turn on ADC peripheral clock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCLKSEL0 |=&amp;nbsp; (3 &amp;lt;&amp;lt; PCLK_ADC);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1|= SELECT_ADC0;// Set P0.23 to AD0.0 in PINSEL1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1|= SELECT_ADC1;// Set P0.24 to AD0.1 in PINSEL1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1|= SELECT_ADC2;// Set P0.25 to AD0.2 in PINSEL1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1|= SELECT_ADC3;// Set P0.26 to AD0.3 in PINSEL1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL3|= SELECT_ADC4;// Set P1.30 to AD0.4 in PINSEL3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL3|= SELECT_ADC5;// Set P1.31 to AD0.5 in PINSEL3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL0|= SELECT_ADC6;// Set P0.3&amp;nbsp; to AD0.6 in PINSEL0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL0|= SELECT_ADC7;// Set P0.2&amp;nbsp; to AD0.7 in PINSEL0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//=======================================================================================&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ADC(unsigned int SelectADC, unsigned int Channel)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_ADC-&amp;gt;ADCR = START_ADC | OPERATIONAL_ADC | SelectADC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdcData[Channel] = LPC_ADC-&amp;gt;ADGDR;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read A/D Data Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((AdcData[Channel] &amp;amp; ADC_DONE_BIT) == 0); // Wait for end of A/D Conversion&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_ADC-&amp;gt;ADCR &amp;amp;= ~(START_ADC | OPERATIONAL_ADC | SelectADC);&amp;nbsp; // Stop A/D Conversion&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdcData[Channel] = (AdcData[Channel] &amp;gt;&amp;gt; 4) &amp;amp; 0x0FFF ;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Extract value - 12 bit result in bits [15:4]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//=======================================================================================&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In main loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD0,0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD1,1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD2,2);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD3,3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD4,4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD5,5);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD6,6);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADC(SEL_AD7,7);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know my code isnt the best way to do things, im working on it...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cant figure out the where the problem is.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be much appreciated. Thanks in advance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/USB-HID-Joystick-Problem-in-ADC4/m-p/521432#M4188</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:28Z</dc:date>
    </item>
    <item>
      <title>Re: USB HID Joystick &amp; Problem in ADC4</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/USB-HID-Joystick-Problem-in-ADC4/m-p/521433#M4189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rocketfuel on Wed Jul 23 18:11:42 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi again. After several hours without figuring out what the problem was, I finally solved it by changing the order of two functions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;USBInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ConfigADC();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;instead of:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ConfigADC();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;USBInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Seems like USBInit configures that pin as input to check power supply and causes device reset when I plug in the pot. If somebody can confirm this would be much appreciated. I took USB HID from exaples folder to start this project, then I added ADC functionality.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/USB-HID-Joystick-Problem-in-ADC4/m-p/521433#M4189</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:29Z</dc:date>
    </item>
  </channel>
</rss>

