Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: AD0 not working properly - help

2006-03-07 by 3gpabko

I think that you miss some details in your question.
 Can you verify  that at the moment of starting of the AD conversion the AINx pins are  configured as analog inputs. If you write to the PINSEL register at the  beginning of the program and after that you have another write to the  same PINSEL register which changes the configuration...
 Sure you  have to write to AD0CR in a separate write for setting the START bit.  First you can write to the register a configuration word and then with  a separate write to set the START bit. Be careful when  read-modify-write the AD0CR. If you have START bit already set it will  accidentally start a conversion. Then when you attempt to start the  conversion in the next line you may have the DONE bit set. Read the  manual and errata for details. In this case ensure that your  configuration word for AD0CR clears the START bitfield.
 Can you  verify that your hardware is setup properly. How you source the input  voltage to the AIN0 pin? Are the voltages on the other analog inputs  below 3.3V?
  

Sutton Mehaffey <sutton@...> wrote:          It is IODIR0 in the Keil compiler.  I think it is IO0DIR in IAR and
  others.
  
  Sutton
  
  
  
  --- In lpc2000@yahoogroups.com, "K B Shah-lascaux" <kbshah@...> wrote:
  >
  > Is it not suppose to be IO0DIR  &= 0x8FFFFFFF;...???  (You have
  IODIR0 )   ???
  >   ----- Original Message ----- 
  >   From: Sutton Mehaffey 
  >   To: lpc2000@yahoogroups.com 
  >   Sent: Friday, March 03, 2006 4:56 PM
  >   Subject: [lpc2000] Re: AD0 not working properly - help
  > 
  > 
  >   Richard,
  > 
  >   I had these set up in an init file that I didn't include with the
  code.
  > 
  >   Also, it didn't matter if I did the write to AD0CR all at once or
  >   separate.  No change in the data.
  > 
  >   I couldn't find anything in the errata sheet.  I printed out Errata
  >   1.2 released on 2/27.  Where is the errata you were referring to?
  > 
  >   Sutton
  > 
  > 
  >   IODIR0 &= 0x8FFFFFFF;   // AD0 (P0.28, P0.29, P0.30) defined as inputs
  >   PCONP |= 0x00001000;    // Enable AD0
  >   PINSEL1 |= 0x15000000;  // AD0.1, AD0.2, AD0.3 all defined
  > 
  >   AD0CR = 0x01200404;
  > 
  >   // AD0CR |= 0x00200000;  // turn on AD0
  >   // AD0CR |= 0x00000400;  // divide 12Mhz clock by 3 (max 4.5Mhz
  ADC clk)
  >   // AD0CR |= 0x00000004;  // select channel AD0.2
  >   // AD0CR |= 0x01000000;  // start conversion now
  > 
  >   while ((AD0STAT & 0x00000004) == 0);  // DONE2 status bit in AD0STAT
  >   result = (AD0DR2 & 0x0000FFC0) >> 6;  // bits 6-15 are result (0-2055)
  > 
  > 
  > 
  > 
  >   --- In lpc2000@yahoogroups.com, Richard Duits <yahoo@> wrote:
  >   >
  >   > You should start the AD conversion with a single write and not a
  series 
  >   > of read-modify-write operations.
  >   > 
  >   > Also make sure that none of the ADC capable pins stay below 3.3
  Volt 
  >   > even if they are not used as ADC inputs (see errata for more info).
  >   > 
  >   > Make sure you configure the pin as ADC input with the pin
  configuration 
  >   > registers.
  >   > 
  >   > Regards,
  >   > Richard.
  >   > 
  >   > 
  >   > 
  >   > 
  >   > Sutton Mehaffey wrote:
  >   > > Please help us to improve Yahoo! Groups. Take the survey now! 
  >   > > <http://v2.decipherinc.com/survey/yahoo/yah05014?list=18>
  >   > > I am trying to read a battery voltage (~12V) on AD0 channel 2.
   I have
  >   > > a breadboard circuit with a voltage divider that is working
  properly
  >   > > that gives a reading between 1.8V and 2.3V more or less.  I am
  using a
  >   > > variable power supply to generate these voltages.
  >   > >
  >   > > When I connect the 1.8-2.3V to P0.29 (AD0.2), I read CFF (all
  10 bits
  >   > > high) no matter what.  Can someone tell by the code below if I
  have a
  >   > > setting wrong?  My PCLK is 12Mhz.
  >   > >
  >   > >
  >   > > AD0CR |= 0x00200000;  // turn on AD0
  >   > > AD0CR |= 0x00000400;  // divide 12Mhz clock by 3 (max 4.5Mhz
  ADC clk)
  >   > > AD0CR |= 0x00000004;  // select channel AD0.2
  >   > > AD0CR |= 0x01000000;  // start conversion now
  >   > >
  >   > > while ((AD0STAT & 0x00000004) == 0);   // DONE2 status bit in
  AD0STAT
  >   > > result = (AD0DR2 & 0x0000FFC0) >> 6;   // bits 6-15 are result
  >   (0-2055)
  >   > >
  >   > > DONE2 is set, and result is always CFF.
  >   > >
  >   > > Sutton - dodge1955
  >   >
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  >   SPONSORED LINKS Microcontrollers  Microprocessor  Intel
  microprocessors  
  >         Pic microcontrollers  
  > 
  > 
  >
  ------------------------------------------------------------------------------
  >   YAHOO! GROUPS LINKS 
  > 
  >     a..  Visit your group "lpc2000" on the web.
  >       
  >     b..  To unsubscribe from this group, send an email to:
  >      lpc2000-unsubscribe@yahoogroups.com
  >       
  >     c..  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
  Service. 
  > 
  > 
  >
  ------------------------------------------------------------------------------
  > 
  > 
  > 
  > 
  >
  ------------------------------------------------------------------------------
  > 
  > 
  >   No virus found in this incoming message.
  >   Checked by AVG Free Edition.
  >   Version: 7.1.375 / Virus Database: 268.1.1/273 - Release Date:
  02/03/2006
  > 
  > 
  > [Non-text portions of this message have been removed]
  >
  
  
  
  
                    

          SPONSORED LINKS    
                                                        Microcontrollers                                          Microprocessor                                          Intel microprocessors                                                                          Pic microcontrollers                                                             
        
---------------------------------
    YAHOO! GROUPS LINKS  
  
      
    Visit your group "lpc2000" on the web.
     
    To unsubscribe from this group, send an email to:
 lpc2000-unsubscribe@yahoogroups.com
     
    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.  
  
      
---------------------------------
  
  
          

		
---------------------------------
Yahoo! Mail
Bring photos to life! New PhotoMail  makes sharing a breeze. 

[Non-text portions of this message have been removed]

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.