Forums

lpc2103 user's manual

Started by Langosta39 January 23, 2006
Is anyone else out there using the 2103? I've got the prelim user's
manual and previously I've found a number of minor errors, but now I
can't seem to get Timer2 and Timer3 working, and I think its due to
the documentation. Writing to the indicated addresses does nothing,
and reading back is always zero. Does anyone have register
information that is new than Dec 2, 2005?

Andy


An Engineer's Guide to the LPC2100 Series


>Is anyone else out there using the 2103? I've got the
>prelim user's manual and previously I've found a number
>of minor errors, but now I can't seem to get Timer2 and
>Timer3 working, and I think its due to the documentation. Writing to
>the indicated addresses does nothing, and reading back is always> zero.
>Does anyone have register information that is new than Dec 2, 2005?

I'm using the 2103 and currently have all 4 timers running. Timers 2 and 3
do not work with Keil's simulator but they run just fine on the Keil dev
board.

I created my own register definitions since the LPC210x.h
file supplied by Keil was missing timers 2 and 3 along with
a lot of other things.

Here's what I'm using:

/* Timer 2 */
#define T2IR (*((volatile unsigned long *) 0xE0070000))
#define T2TCR (*((volatile unsigned long *) 0xE0070004))
#define T2TC (*((volatile unsigned long *) 0xE0070008))
#define T2PR (*((volatile unsigned long *) 0xE007000C))
#define T2PC (*((volatile unsigned long *) 0xE0070010))
#define T2MCR (*((volatile unsigned long *) 0xE0070014))
#define T2MR0 (*((volatile unsigned long *) 0xE0070018))
#define T2MR1 (*((volatile unsigned long *) 0xE007001C))
#define T2MR2 (*((volatile unsigned long *) 0xE0070020))
#define T2MR3 (*((volatile unsigned long *) 0xE0070024))
#define T2CCR (*((volatile unsigned long *) 0xE0070028))
#define T2CR0 (*((volatile unsigned long *) 0xE007002C))
#define T2CR1 (*((volatile unsigned long *) 0xE0070030))
#define T2CR2 (*((volatile unsigned long *) 0xE0070034))
#define T2CR3 (*((volatile unsigned long *) 0xE0070038))
#define T2EMR (*((volatile unsigned long *) 0xE007003C))
#define T2CTCR (*((volatile unsigned long *) 0xE0070070))
#define PWM2CON (*((volatile unsigned long *) 0xE0070074)) /* Timer 3 */
#define T3IR (*((volatile unsigned long *) 0xE0074000))
#define T3TCR (*((volatile unsigned long *) 0xE0074004))
#define T3TC (*((volatile unsigned long *) 0xE0074008))
#define T3PR (*((volatile unsigned long *) 0xE007400C))
#define T3PC (*((volatile unsigned long *) 0xE0074010))
#define T3MCR (*((volatile unsigned long *) 0xE0074014))
#define T3MR0 (*((volatile unsigned long *) 0xE0074018))
#define T3MR1 (*((volatile unsigned long *) 0xE007401C))
#define T3MR2 (*((volatile unsigned long *) 0xE0074020))
#define T3MR3 (*((volatile unsigned long *) 0xE0074024))
#define T3CCR (*((volatile unsigned long *) 0xE0074028))
#define T3CR0 (*((volatile unsigned long *) 0xE007402C))
#define T3CR1 (*((volatile unsigned long *) 0xE0074030))
#define T3CR2 (*((volatile unsigned long *) 0xE0074034))
#define T3CR3 (*((volatile unsigned long *) 0xE0074038))
#define T3EMR (*((volatile unsigned long *) 0xE007403C))
#define T3CTCR (*((volatile unsigned long *) 0xE0074070))
#define PWM3CON (*((volatile unsigned long *) 0xE0074074)) Doug Collins Doug



I discovered the problem. I was setting the power control register
so only the timers were enabled, but there is a major error in the
prelim user's manual. After some sleep and further investigation I
think the problem is simply that Table 24 and Table 26 in the prelim
User's Manual dated Dec 2, 2005 are wrong. The power-on/reset
default for PCONP is 0x00c8179e (not as shown in Table 24) and the
Timer 2 and Timer 3 PCONP bits are 22 and 23 respectively (not as
shown in Table 26). So, I was setting and clearing the wrong bits
in in the PCONP register and shutting down T2 and T3. I've got
everything running correctly now though. I am using IAR, but I
checked my memory map against yours, so thanks for sending it to me.

Andy

--- In lpc2000@lpc2..., "Doug Collins" <dougc@h...> wrote:
>
>
> >Is anyone else out there using the 2103? I've got the
> >prelim user's manual and previously I've found a number
> >of minor errors, but now I can't seem to get Timer2 and
> >Timer3 working, and I think its due to the documentation. Writing
to
> >the indicated addresses does nothing, and reading back is always>
zero.
> >Does anyone have register information that is new than Dec 2,
2005?
>
> I'm using the 2103 and currently have all 4 timers running. Timers
2 and 3
> do not work with Keil's simulator but they run just fine on the
Keil dev
> board.
>
> I created my own register definitions since the LPC210x.h
> file supplied by Keil was missing timers 2 and 3 along with
> a lot of other things.
>
> Here's what I'm using:
>
> /* Timer 2 */
> #define T2IR (*((volatile unsigned long *) 0xE0070000))
> #define T2TCR (*((volatile unsigned long *) 0xE0070004))
> #define T2TC (*((volatile unsigned long *) 0xE0070008))
> #define T2PR (*((volatile unsigned long *) 0xE007000C))
> #define T2PC (*((volatile unsigned long *) 0xE0070010))
> #define T2MCR (*((volatile unsigned long *) 0xE0070014))
> #define T2MR0 (*((volatile unsigned long *) 0xE0070018))
> #define T2MR1 (*((volatile unsigned long *) 0xE007001C))
> #define T2MR2 (*((volatile unsigned long *) 0xE0070020))
> #define T2MR3 (*((volatile unsigned long *) 0xE0070024))
> #define T2CCR (*((volatile unsigned long *) 0xE0070028))
> #define T2CR0 (*((volatile unsigned long *) 0xE007002C))
> #define T2CR1 (*((volatile unsigned long *) 0xE0070030))
> #define T2CR2 (*((volatile unsigned long *) 0xE0070034))
> #define T2CR3 (*((volatile unsigned long *) 0xE0070038))
> #define T2EMR (*((volatile unsigned long *) 0xE007003C))
> #define T2CTCR (*((volatile unsigned long *) 0xE0070070))
> #define PWM2CON (*((volatile unsigned long *) 0xE0070074)) > /* Timer 3 */
> #define T3IR (*((volatile unsigned long *) 0xE0074000))
> #define T3TCR (*((volatile unsigned long *) 0xE0074004))
> #define T3TC (*((volatile unsigned long *) 0xE0074008))
> #define T3PR (*((volatile unsigned long *) 0xE007400C))
> #define T3PC (*((volatile unsigned long *) 0xE0074010))
> #define T3MCR (*((volatile unsigned long *) 0xE0074014))
> #define T3MR0 (*((volatile unsigned long *) 0xE0074018))
> #define T3MR1 (*((volatile unsigned long *) 0xE007401C))
> #define T3MR2 (*((volatile unsigned long *) 0xE0074020))
> #define T3MR3 (*((volatile unsigned long *) 0xE0074024))
> #define T3CCR (*((volatile unsigned long *) 0xE0074028))
> #define T3CR0 (*((volatile unsigned long *) 0xE007402C))
> #define T3CR1 (*((volatile unsigned long *) 0xE0074030))
> #define T3CR2 (*((volatile unsigned long *) 0xE0074034))
> #define T3CR3 (*((volatile unsigned long *) 0xE0074038))
> #define T3EMR (*((volatile unsigned long *) 0xE007403C))
> #define T3CTCR (*((volatile unsigned long *) 0xE0074070))
> #define PWM3CON (*((volatile unsigned long *) 0xE0074074)) > Doug Collins > Doug
>




A final User's Manual is available on the Philips website for the
new 2101, 2, and 3. It still has this error in it, though. Thanks
to apex_olsen for telling me about the new doc.

Andy

--- In lpc2000@lpc2..., "Langosta39" <ahuska@a...> wrote:
>
> I discovered the problem. I was setting the power control
register
> so only the timers were enabled, but there is a major error in the
> prelim user's manual. After some sleep and further investigation
I
> think the problem is simply that Table 24 and Table 26 in the
prelim
> User's Manual dated Dec 2, 2005 are wrong. The power-on/reset
> default for PCONP is 0x00c8179e (not as shown in Table 24) and the
> Timer 2 and Timer 3 PCONP bits are 22 and 23 respectively (not as
> shown in Table 26). So, I was setting and clearing the wrong bits
> in in the PCONP register and shutting down T2 and T3. I've got
> everything running correctly now though. I am using IAR, but I
> checked my memory map against yours, so thanks for sending it to
me.
>
> Andy
>
> --- In lpc2000@lpc2..., "Doug Collins" <dougc@h...> wrote:
> >
> >
> > >Is anyone else out there using the 2103? I've got the
> > >prelim user's manual and previously I've found a number
> > >of minor errors, but now I can't seem to get Timer2 and
> > >Timer3 working, and I think its due to the documentation.
Writing
> to
> > >the indicated addresses does nothing, and reading back is
always>
> zero.
> > >Does anyone have register information that is new than Dec 2,
> 2005?
> >
> > I'm using the 2103 and currently have all 4 timers running.
Timers
> 2 and 3
> > do not work with Keil's simulator but they run just fine on the
> Keil dev
> > board.
> >
> > I created my own register definitions since the LPC210x.h
> > file supplied by Keil was missing timers 2 and 3 along with
> > a lot of other things.
> >
> > Here's what I'm using:
> >
> > /* Timer 2 */
> > #define T2IR (*((volatile unsigned long *) 0xE0070000))
> > #define T2TCR (*((volatile unsigned long *) 0xE0070004))
> > #define T2TC (*((volatile unsigned long *) 0xE0070008))
> > #define T2PR (*((volatile unsigned long *) 0xE007000C))
> > #define T2PC (*((volatile unsigned long *) 0xE0070010))
> > #define T2MCR (*((volatile unsigned long *) 0xE0070014))
> > #define T2MR0 (*((volatile unsigned long *) 0xE0070018))
> > #define T2MR1 (*((volatile unsigned long *) 0xE007001C))
> > #define T2MR2 (*((volatile unsigned long *) 0xE0070020))
> > #define T2MR3 (*((volatile unsigned long *) 0xE0070024))
> > #define T2CCR (*((volatile unsigned long *) 0xE0070028))
> > #define T2CR0 (*((volatile unsigned long *) 0xE007002C))
> > #define T2CR1 (*((volatile unsigned long *) 0xE0070030))
> > #define T2CR2 (*((volatile unsigned long *) 0xE0070034))
> > #define T2CR3 (*((volatile unsigned long *) 0xE0070038))
> > #define T2EMR (*((volatile unsigned long *) 0xE007003C))
> > #define T2CTCR (*((volatile unsigned long *) 0xE0070070))
> > #define PWM2CON (*((volatile unsigned long *) 0xE0070074))
> >
> >
> > /* Timer 3 */
> > #define T3IR (*((volatile unsigned long *) 0xE0074000))
> > #define T3TCR (*((volatile unsigned long *) 0xE0074004))
> > #define T3TC (*((volatile unsigned long *) 0xE0074008))
> > #define T3PR (*((volatile unsigned long *) 0xE007400C))
> > #define T3PC (*((volatile unsigned long *) 0xE0074010))
> > #define T3MCR (*((volatile unsigned long *) 0xE0074014))
> > #define T3MR0 (*((volatile unsigned long *) 0xE0074018))
> > #define T3MR1 (*((volatile unsigned long *) 0xE007401C))
> > #define T3MR2 (*((volatile unsigned long *) 0xE0074020))
> > #define T3MR3 (*((volatile unsigned long *) 0xE0074024))
> > #define T3CCR (*((volatile unsigned long *) 0xE0074028))
> > #define T3CR0 (*((volatile unsigned long *) 0xE007402C))
> > #define T3CR1 (*((volatile unsigned long *) 0xE0074030))
> > #define T3CR2 (*((volatile unsigned long *) 0xE0074034))
> > #define T3CR3 (*((volatile unsigned long *) 0xE0074038))
> > #define T3EMR (*((volatile unsigned long *) 0xE007403C))
> > #define T3CTCR (*((volatile unsigned long *) 0xE0074070))
> > #define PWM3CON (*((volatile unsigned long *) 0xE0074074))
> >
> >
> > Doug Collins
> >
> >
> >
> >
> >
> > Doug
> >
>




Hello Andy,

can you post a link to the user manual ?

Regards and thanks,

Martin

----- Original Message -----
From: "Langosta39" <ahuska@ahus...>
To: <lpc2000@lpc2...>
Sent: Tuesday, January 24, 2006 10:09 PM
Subject: [lpc2000] Re: lpc2103 user's manual >A final User's Manual is available on the Philips website for the
> new 2101, 2, and 3. It still has this error in it, though. Thanks
> to apex_olsen for telling me about the new doc.
>
> Andy




Hi Martin,

try this for starting all the time, seems to have much more up to date
information than other links I have been using:
http://www.standardics.philips.com/products/lpc2000/all/

Now you click on the "plus sign" next to the device you need
information for, it will expand into details about the device.

From there it should be easy.

Bob

--- In lpc2000@lpc2..., "Martin Maurer" <mailingliste@c...> wrote:
>
> Hello Andy,
>
> can you post a link to the user manual ?
>
> Regards and thanks,
>
> Martin
>
> ----- Original Message -----
> From: "Langosta39" <ahuska@a...>
> To: <lpc2000@lpc2...>
> Sent: Tuesday, January 24, 2006 10:09 PM
> Subject: [lpc2000] Re: lpc2103 user's manual > >A final User's Manual is available on the Philips website for the
> > new 2101, 2, and 3. It still has this error in it, though. Thanks
> > to apex_olsen for telling me about the new doc.
> >
> > Andy
>


Hello Bob,

many thanks, i found it with your link !

BTW: Flash Ids for LPC2101 and LPC2102 are still missing in table 222 on
page 240, even when the title of this table is:
"LPC2101/02/03 part identification numbers"

Regards,

Martin