EmbeddedRelated.com
Forums

EXTMODE/EXTPOLAR & VPBDIV

Started by Kerem Or December 31, 2004

Dear Philips Apps people,

LPC2214 fails to write 0x0d to EXTMODE register even when VPBDIV=0
as advised in the device errata. The EXTMODE register prior to write
was 0x0f and gets 0x00 just after attempting to set to 0x0d.

What happens is in conflict with the workaround suggested in the
device errata.

Please advise...

Device marking
---------------
LPC2214FBD144
CD0931 05
TS0432A

Kerem Or,
SYS Inc.



An Engineer's Guide to the LPC2100 Series


Hi Kerem,

This is actually a bug which is related to the EXTINT.1 bug (present
in the Errata sheet).

Problem: Incorrect setting of EXTMODE and/or EXTPOLAR register while
trying to set them to desired value.

For instance, trying to set EXTMODE to 0x1 or 0xd would result in
EXTMODE to be set to 0x0 instead. To avoid this problem, while
writing to EXTMODE and/or EXTPOLAR the following steps have to be
carried out.

Workaround:
Since this issue is related to the EXTINT.1 Errata, the same
workaround applies with an additional step.

Before writing to the EXTMODE and EXTPOLAR registers,
1> Write 0x0 to VPBDIV
2> Then write the desired value to EXTMODE or EXTPOLAR register.
3> Then write the same value to VPBDIV ( additional step)
4> Restore the VPBDIV to the previously saved value or simply write
to the register again with the desired value.

Note:
While testing this in a debugger enviornment, please dont single-step
through these steps. A breakpoint could be placed after Step 4 and
you would see the EXTMODE and EXTPOLAR registers reflecting the
correct values.

The Errata sheet for these devices will be updated soon. This bug is
not present in the LPC213x.

Thanks
Philips_apps
--- In , "Kerem Or" <k.or@s...> wrote:
>
> Dear Philips Apps people,
>
> LPC2214 fails to write 0x0d to EXTMODE register even when VPBDIV=0
> as advised in the device errata. The EXTMODE register prior to
write
> was 0x0f and gets 0x00 just after attempting to set to 0x0d.
>
> What happens is in conflict with the workaround suggested in the
> device errata.
>
> Please advise...
>
> Device marking
> ---------------
> LPC2214FBD144
> CD0931 05
> TS0432A
>
> Kerem Or,
> SYS Inc.




Question below:

philips_apps wrote:
>
> Hi Kerem,
>
> This is actually a bug which is related to the EXTINT.1 bug (present
> in the Errata sheet).
>
> Problem: Incorrect setting of EXTMODE and/or EXTPOLAR register while
> trying to set them to desired value.
...
> Before writing to the EXTMODE and EXTPOLAR registers,
> 1> Write 0x0 to VPBDIV
> 2> Then write the desired value to EXTMODE or EXTPOLAR register.
> 3> Then write the same value to VPBDIV ( additional step)

If I want to program both EXTMODE and EXTPOLAR, do I have to do this
in two passes: old=VPBDIV, VPBDIV=0, EXTMODE=n, VPBDIV=n, VPBDIV=0,
EXTPOLAR=y, VPBDIV=y, VPCDIV=old ?
(or can fewer steps be used somehow ?)

--
Cheers,
Bruce
-------------------------------
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom
they are addressed. If you have received this email in error please
notify the system manager.

/\\\/\\\/\\\ / / Bruce Paterson
/ \\\ \\\ \\\ / / Senior Design Engineer
/ /\\\/\\\/\\\/ / 8 Anzed Court, Mulgrave, Vic, 3170
/ / \\\ \\\ \\\ / PO Box 4112, Mulgrave, Vic, 3170, Australia
/ / \\\/\\\ \\\/ Ph: +61 3 8561 4232 Fax: +61 3 9560 9055
Tele-IP Ltd. Email: Icq: #32015991
WWW: http://www.tele-ip.com VK3TJN
-------------------------------




Hi Bruce,

There is no shorter way that this could be done. Also, please note,
while reading the VPBDIV, it should be read twice. So you would want
to do the following steps.

old= VPBDIV;
old= VPBDIV;

Thanks
Philips apps --- In , Bruce Paterson <bruce@t...> wrote:
> Question below:
>
> philips_apps wrote:
> >
> > Hi Kerem,
> >
> > This is actually a bug which is related to the EXTINT.1 bug
(present
> > in the Errata sheet).
> >
> > Problem: Incorrect setting of EXTMODE and/or EXTPOLAR register
while
> > trying to set them to desired value.
> ...
> > Before writing to the EXTMODE and EXTPOLAR registers,
> > 1> Write 0x0 to VPBDIV
> > 2> Then write the desired value to EXTMODE or EXTPOLAR register.
> > 3> Then write the same value to VPBDIV ( additional step)
>
> If I want to program both EXTMODE and EXTPOLAR, do I have to do this
> in two passes: old=VPBDIV, VPBDIV=0, EXTMODE=n, VPBDIV=n, VPBDIV=0,
> EXTPOLAR=y, VPBDIV=y, VPCDIV=old ?
> (or can fewer steps be used somehow ?)
>
> --
> Cheers,
> Bruce
> -------------------------------
> This email and any files transmitted with it are confidential and
> intended solely for the use of the individual or entity to whom
> they are addressed. If you have received this email in error please
> notify the system manager.
>
> /\\\/\\\/\\\ / / Bruce Paterson
> / \\\ \\\ \\\ / / Senior Design Engineer
> / /\\\/\\\/\\\/ / 8 Anzed Court, Mulgrave, Vic, 3170
> / / \\\ \\\ \\\ / PO Box 4112, Mulgrave, Vic, 3170, Australia
> / / \\\/\\\ \\\/ Ph: +61 3 8561 4232 Fax: +61 3 9560 9055
> Tele-IP Ltd. Email: bruce@t... Icq: #32015991
> WWW: http://www.tele-ip.com VK3TJN
> -------------------------------



Dear Sir,

VPBDIV=0;
EXTMODE=0x0d;
VPBDIV=0;
VPBDIV=VPB_DIV_VAL;

I have placed a breakpoint after the last line and EXTMODE still reads 0. I
guess I am unable to make this work

Can you advise why the suggested workaround did not help?

Best regards,

Kerem ----- Original Message -----
From: "philips_apps" <>
To: <>
Sent: Wednesday, January 19, 2005 2:25 AM
Subject: [lpc2000] EXTMODE/EXTPOLAR & VPBDIV >
>
> Hi Kerem,
>
> This is actually a bug which is related to the EXTINT.1 bug (present
> in the Errata sheet).
>
> Problem: Incorrect setting of EXTMODE and/or EXTPOLAR register while
> trying to set them to desired value.
>
> For instance, trying to set EXTMODE to 0x1 or 0xd would result in
> EXTMODE to be set to 0x0 instead. To avoid this problem, while
> writing to EXTMODE and/or EXTPOLAR the following steps have to be
> carried out.
>
> Workaround:
> Since this issue is related to the EXTINT.1 Errata, the same
> workaround applies with an additional step.
>
> Before writing to the EXTMODE and EXTPOLAR registers,
> 1> Write 0x0 to VPBDIV
> 2> Then write the desired value to EXTMODE or EXTPOLAR register.
> 3> Then write the same value to VPBDIV ( additional step)
> 4> Restore the VPBDIV to the previously saved value or simply write
> to the register again with the desired value.
>
> Note:
> While testing this in a debugger enviornment, please dont single-step
> through these steps. A breakpoint could be placed after Step 4 and
> you would see the EXTMODE and EXTPOLAR registers reflecting the
> correct values.
>
> The Errata sheet for these devices will be updated soon. This bug is
> not present in the LPC213x.
>
> Thanks
> Philips_apps >
> --- In , "Kerem Or" <k.or@s...> wrote:
>>
>> Dear Philips Apps people,
>>
>> LPC2214 fails to write 0x0d to EXTMODE register even when VPBDIV=0
>> as advised in the device errata. The EXTMODE register prior to
> write
>> was 0x0f and gets 0x00 just after attempting to set to 0x0d.
>>
>> What happens is in conflict with the workaround suggested in the
>> device errata.
>>
>> Please advise...
>>
>> Device marking
>> ---------------
>> LPC2214FBD144
>> CD0931 05
>> TS0432A
>>
>> Kerem Or,
>> SYS Inc. >
> Yahoo! Groups Links