Yahoo Groups archive

Lpc2000

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

Thread

SPI1

SPI1

2005-08-16 by jensalsig

Hi,

have anyone every used the SPI 1 channel on a LPC device that has 2
channels?

I've tried without any luck and getting very frustrated! I have tried
using the IAR MakeApp and that doesn't work either. My setup is a
LPC2214 from Olimex and a MicroChip EEPROM.

Any suggestions are VERY welcome.

Regards Jens Alsig

Re: SPI1

2005-08-16 by y4krys

--- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> wrote:
> Hi,
> 
> have anyone every used the SPI 1 channel on a LPC device that has 2
> channels?
> 
> I've tried without any luck and getting very frustrated! I have tried
> using the IAR MakeApp and that doesn't work either. My setup is a
> LPC2214 from Olimex and a MicroChip EEPROM.
> 
> Any suggestions are VERY welcome.
> 
> Regards Jens Alsig

Hi Alsig,
 What do you mean by "doesn't work"?  Is SPI1 properly setup (IO pin 
selection and function, Master/Slave etc.) and enabled?  Have you 
checked the bus with a scope?  What hardware do you use?

Krys

Re: [lpc2000] Re: SPI1

2005-08-16 by Jens Alsig

Hi,
The all pins seam to float or be as input even after I configure the 
PINSEL1 register. I'm using a LPC2214 as
the master and the 25Lc640 as a slave. I've connected the SSEL to 3 volt.
Regarding the setup of the registers I've tried the IAR MakeApp code for 
the PCB module and the SPI module. And at the
moment this gives the same result.

Regards Jens Alsig


y4krys wrote:

> --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> wrote:
> > Hi,
> >
> > have anyone every used the SPI 1 channel on a LPC device that has 2
> > channels?
> >
> > I've tried without any luck and getting very frustrated! I have tried
> > using the IAR MakeApp and that doesn't work either. My setup is a
> > LPC2214 from Olimex and a MicroChip EEPROM.
> >
> > Any suggestions are VERY welcome.
> >
> > Regards Jens Alsig
>
> Hi Alsig,
> What do you mean by "doesn't work"?  Is SPI1 properly setup (IO pin
> selection and function, Master/Slave etc.) and enabled?  Have you
> checked the bus with a scope?  What hardware do you use?
>
> Krys
>
>
>
> ------------------------------------------------------------------------
> YAHOO! GROUPS LINKS
>
>     *  Visit your group "lpc2000
>       <http://groups.yahoo.com/group/lpc2000>" on the web.
>        
>     *  To unsubscribe from this group, send an email to:
>        lpc2000-unsubscribe@yahoogroups.com
>       <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>        
>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>       Service <http://docs.yahoo.com/info/terms/>.
>
>
> ------------------------------------------------------------------------
>



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

Re: SPI1

2005-08-16 by y4krys

Alsig,
 If you write a byte to the transmit register the SCK clock should be 
generated.  Make sure the SPI1 peripheral is enabled and powered 
(Check PCONP bits).  You should be able to do your initial test using 
your debugger and the direct access to the control registers.  Also, 
only the MISO pin should show as an input, MOSI and SCK should be 
outputs driven SPI.  Once you are past the clock and MOSI hurdle 
you'll need the slave select signal from your LPC to the EE and the 
right SPI mode (CPOL and CPHA) for proper data access.
I hope it helps.
Regards,
Krys
--- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> Hi,
> The all pins seam to float or be as input even after I configure 
the 
> PINSEL1 register. I'm using a LPC2214 as
> the master and the 25Lc640 as a slave. I've connected the SSEL to 3 
volt.
> Regarding the setup of the registers I've tried the IAR MakeApp 
code for 
> the PCB module and the SPI module. And at the
> moment this gives the same result.
> 
> Regards Jens Alsig
> 
> 
> y4krys wrote:
> 
> > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> wrote:
> > > Hi,
> > >
> > > have anyone every used the SPI 1 channel on a LPC device that 
has 2
> > > channels?
> > >
> > > I've tried without any luck and getting very frustrated! I have 
tried
> > > using the IAR MakeApp and that doesn't work either. My setup is 
a
> > > LPC2214 from Olimex and a MicroChip EEPROM.
> > >
> > > Any suggestions are VERY welcome.
> > >
> > > Regards Jens Alsig
> >
> > Hi Alsig,
> > What do you mean by "doesn't work"?  Is SPI1 properly setup (IO 
pin
> > selection and function, Master/Slave etc.) and enabled?  Have you
> > checked the bus with a scope?  What hardware do you use?
> >
> > Krys
> >
> >
> >
> > ------------------------------------------------------------------
------
> > YAHOO! GROUPS LINKS
> >
> >     *  Visit your group "lpc2000
> >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> >        
> >     *  To unsubscribe from this group, send an email to:
> >        lpc2000-unsubscribe@yahoogroups.com
> >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
subject=Unsubscribe>
> >        
> >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> >       Service <http://docs.yahoo.com/info/terms/>.
> >
> >
> > ------------------------------------------------------------------
------
Show quoted textHide quoted text
> >
> 
> 
> 
> [Non-text portions of this message have been removed]

Re: SPI1

2005-08-16 by y4krys

Alsig,
One more thing, for the SSEL pullup to work the pin function must be
set to SPI (PINSEL1 |= 0x2A8).  (Note: corrected the config bits ;-))
Krys

--- In lpc2000@yahoogroups.com, "y4krys" <krys.brukalo@a...> wrote:
> Alsig,
>  If you write a byte to the transmit register the SCK clock should 
be 
> generated.  Make sure the SPI1 peripheral is enabled and powered 
> (Check PCONP bits).  You should be able to do your initial test 
using 
> your debugger and the direct access to the control registers.  
Also, 
> only the MISO pin should show as an input, MOSI and SCK should be 
> outputs driven SPI.  Once you are past the clock and MOSI hurdle 
> you'll need the slave select signal from your LPC to the EE and the 
> right SPI mode (CPOL and CPHA) for proper data access.
> I hope it helps.
> Regards,
> Krys
> --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > Hi,
> > The all pins seam to float or be as input even after I configure 
> the 
> > PINSEL1 register. I'm using a LPC2214 as
> > the master and the 25Lc640 as a slave. I've connected the SSEL to 
3 
> volt.
> > Regarding the setup of the registers I've tried the IAR MakeApp 
> code for 
> > the PCB module and the SPI module. And at the
> > moment this gives the same result.
> > 
> > Regards Jens Alsig
> > 
> > 
> > y4krys wrote:
> > 
> > > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> wrote:
> > > > Hi,
> > > >
> > > > have anyone every used the SPI 1 channel on a LPC device that 
> has 2
> > > > channels?
> > > >
> > > > I've tried without any luck and getting very frustrated! I 
have 
> tried
> > > > using the IAR MakeApp and that doesn't work either. My setup 
is 
> a
> > > > LPC2214 from Olimex and a MicroChip EEPROM.
> > > >
> > > > Any suggestions are VERY welcome.
> > > >
> > > > Regards Jens Alsig
> > >
> > > Hi Alsig,
> > > What do you mean by "doesn't work"?  Is SPI1 properly setup (IO 
> pin
> > > selection and function, Master/Slave etc.) and enabled?  Have 
you
> > > checked the bus with a scope?  What hardware do you use?
> > >
> > > Krys
> > >
> > >
> > >
> > > ----------------------------------------------------------------
--
> ------
> > > YAHOO! GROUPS LINKS
> > >
> > >     *  Visit your group "lpc2000
> > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > >        
> > >     *  To unsubscribe from this group, send an email to:
> > >        lpc2000-unsubscribe@yahoogroups.com
> > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> subject=Unsubscribe>
> > >        
> > >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms 
of
> > >       Service <http://docs.yahoo.com/info/terms/>.
> > >
> > >
> > > ----------------------------------------------------------------
--
Show quoted textHide quoted text
> ------
> > >
> > 
> > 
> > 
> > [Non-text portions of this message have been removed]

Re: [lpc2000] Re: SPI1

2005-08-17 by Jens Alsig

Hi y4krys,

I've checked and double checked my source code and I can't find any 
errors but it still doesn't work.
The SPI pins seam to be set as input.
I've included my source code and if you could take a look at it... Thanks.

Does anybody own a LPC with two SPI ports that would test the code for me?

Most of the code are generated by MakeApp from IAR.

Thanks in advance

Jens Alsig

main.c


#include "lpc2114.h"

void init_spi(void);
#define MA_PINSEL0_PCB         0x00000000  /* Pin Function Select 
Register 0 */
#define MA_PINSEL0_PCB_MASK    0xFFFFFFFF  /* Used bits */
#define MA_PINSEL1_PCB         0x000002A8  /* Pin Function Select 
Register 1 */
#define MA_PINSEL1_PCB_MASK    0x3FCFFFFF  /* Used bits */
#define MA_PINSEL2_PCB         0x006000F0  /* Pin Function Select 
Register 2 */
#define MA_PINSEL2_PCB_MASK    0x0FF3E9FC  /* Used bits */


#define MA_S0SPCR_SPI          0x00000000  /* SPI0 Control Register */
#define MA_S0SPCR_SPI_MASK     0x000000F8  /* Used bits */
#define MA_S0SPDR_SPI          0x00000000  /* SPI0 Data Register */
#define MA_S0SPDR_SPI_MASK     0x000000FF  /* Used bits */
#define MA_S0SPCCR_SPI         0x00000008  /* SPI0 Clock Counter Register */
#define MA_S0SPCCR_SPI_MASK    0x000000FF  /* Used bits */
#define MA_S1SPCR_SPI          0x00000020  /* SPI1 Control Register */
#define MA_S1SPCR_SPI_MASK     0x000000F8  /* Used bits */
#define MA_S1SPDR_SPI          0x00000000  /* SPI1 Data Register */
#define MA_S1SPDR_SPI_MASK     0x000000FF  /* Used bits */
#define MA_S1SPCCR_SPI         0x00000008  /* SPI1 Clock Counter Register */
#define MA_S1SPCCR_SPI_MASK    0x000000FF  /* Used bits */


#define MA_OK        0
#define MA_ERROR    1
#define MA_EMPTY     2
#define S1SPSR_SPIF    (1 << 7)
#define S1SPSR_WCOL (1 << 6)
#define S1SPSR_ROVR (1 << 5)
#define S1SPSR_MODF (1 << 4)
#define S1SPSR_ABRT (1 << 3)

#define PSelLED 0x30000000
#define LED     0x40000000

void TurnOnLed(void)
{
    GPIO0_IOCLR  = LED;
}

void TurnOffLed(void)
{
    GPIO0_IOSET  = LED;
}

void spi1_init( void )
{
    PCB_PINSEL1  = ( PCB_PINSEL1 & ~MA_PINSEL1_PCB_MASK ) | MA_PINSEL1_PCB;
    SPI1_SPCCR  = ( SPI1_SPCCR & ~MA_S1SPCCR_SPI_MASK ) | MA_S1SPCCR_SPI;
    SPI1_SPCR   = ( SPI1_SPCR & ~MA_S1SPCR_SPI_MASK ) | MA_S1SPCR_SPI;
}

signed char spi1_putch( unsigned char Data )
{
    signed char Status;
    SPI1_SPDR = Data;
    Status = MA_OK;

   
    if( SPI1_SPSR )
    {
        Status = MA_ERROR;
    }
    return Status;

}

unsigned char spi1_getch( void )
{
    unsigned char Data;
    Data = SPI1_SPDR;
    return Data;

}

signed char spi1_get_status( void )
{
    signed char Status;
    Status = (signed char) SPI1_SPSR;

    if( Status == 0 )
    {
        Status = MA_EMPTY;
    }
    else if( Status & ( S1SPSR_WCOL | S1SPSR_ROVR | S1SPSR_MODF | 
S1SPSR_ABRT ) )
    {
        if( Status & S1SPSR_MODF )
        {
            SPI1_SPCR = MA_S1SPCR_SPI;
        }
    }
    else if( Status & S1SPSR_SPIF )
    {
        Status = MA_OK;
    }
    return Status;

}


int main(void)
{
    GPIO0_IODIR = LED;
    spi1_init();
    TurnOnLed();
    while(1)
    {
    if(spi1_get_status() == MA_OK)
        {
            if(spi1_putch(0xAA) == MA_ERROR)
                TurnOffLed();
        }
    }
}



y4krys wrote:

> Alsig,
> One more thing, for the SSEL pullup to work the pin function must be
> set to SPI (PINSEL1 |= 0x2A8).  (Note: corrected the config bits ;-))
> Krys
>
> --- In lpc2000@yahoogroups.com, "y4krys" <krys.brukalo@a...> wrote:
> > Alsig,
> >  If you write a byte to the transmit register the SCK clock should
> be
> > generated.  Make sure the SPI1 peripheral is enabled and powered
> > (Check PCONP bits).  You should be able to do your initial test
> using
> > your debugger and the direct access to the control registers. 
> Also,
> > only the MISO pin should show as an input, MOSI and SCK should be
> > outputs driven SPI.  Once you are past the clock and MOSI hurdle
> > you'll need the slave select signal from your LPC to the EE and the
> > right SPI mode (CPOL and CPHA) for proper data access.
> > I hope it helps.
> > Regards,
> > Krys
> > --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > > Hi,
> > > The all pins seam to float or be as input even after I configure
> > the
> > > PINSEL1 register. I'm using a LPC2214 as
> > > the master and the 25Lc640 as a slave. I've connected the SSEL to
> 3
> > volt.
> > > Regarding the setup of the registers I've tried the IAR MakeApp
> > code for
> > > the PCB module and the SPI module. And at the
> > > moment this gives the same result.
> > >
> > > Regards Jens Alsig
> > >
> > >
> > > y4krys wrote:
> > >
> > > > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> wrote:
> > > > > Hi,
> > > > >
> > > > > have anyone every used the SPI 1 channel on a LPC device that
> > has 2
> > > > > channels?
> > > > >
> > > > > I've tried without any luck and getting very frustrated! I
> have
> > tried
> > > > > using the IAR MakeApp and that doesn't work either. My setup
> is
> > a
> > > > > LPC2214 from Olimex and a MicroChip EEPROM.
> > > > >
> > > > > Any suggestions are VERY welcome.
> > > > >
> > > > > Regards Jens Alsig
> > > >
> > > > Hi Alsig,
> > > > What do you mean by "doesn't work"?  Is SPI1 properly setup (IO
> > pin
> > > > selection and function, Master/Slave etc.) and enabled?  Have
> you
> > > > checked the bus with a scope?  What hardware do you use?
> > > >
> > > > Krys
> > > >
> > > >
> > > >
> > > > ----------------------------------------------------------------
> --
> > ------
> > > > YAHOO! GROUPS LINKS
> > > >
> > > >     *  Visit your group "lpc2000
> > > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > > >       
> > > >     *  To unsubscribe from this group, send an email to:
> > > >        lpc2000-unsubscribe@yahoogroups.com
> > > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> > subject=Unsubscribe>
> > > >       
> > > >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms
> of
> > > >       Service <http://docs.yahoo.com/info/terms/>.
> > > >
> > > >
> > > > ----------------------------------------------------------------
> --
> > ------
> > > >
> > >
> > >
> > >
> > > [Non-text portions of this message have been removed]
>
>
>
>
>
> SPONSORED LINKS
> Microcontrollers 
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=OPqm0ilH6VyGn-geZ0nNwA> 
> 	Microprocessor 
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=e6n93hF7rArBsrPQJltQ_w> 
> 	Intel microprocessors 
> <http://groups.yahoo.com/gads?t=ms&k=Intel+microprocessors&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=EENrTtKaQUw-Vd0BgTdDmw> 
>
> Pic microcontrollers 
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=iYT6za1gT3-VT1hwIylDpw> 
> 	8085 microprocessor 
> <http://groups.yahoo.com/gads?t=ms&k=8085+microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=PhYMBsCkQptYbazQFyNujQ> 
>
>
>
> ------------------------------------------------------------------------
> YAHOO! GROUPS LINKS
>
>     *  Visit your group "lpc2000
>       <http://groups.yahoo.com/group/lpc2000>" on the web.
>        
>     *  To unsubscribe from this group, send an email to:
>        lpc2000-unsubscribe@yahoogroups.com
>       <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>        
>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>       Service <http://docs.yahoo.com/info/terms/>.
>
>
> ------------------------------------------------------------------------
>



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

Re: SPI1

2005-08-17 by y4krys

Alsig,
 I'll try to build your application and check the configuration.  
What tools do you use?  Could you send me your lpc2114.h file?
If you can, put a break on "    TurnOnLed();" and use your debugger 
to check PCONP, PINSEL1 and SPI1_xxx register data.  It looks like 
your SPI1 may be disabled.  Also your slave will need a select/enable 
line active low to operate.
Krys
--- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> Hi y4krys,
> 
> I've checked and double checked my source code and I can't find any 
> errors but it still doesn't work.
> The SPI pins seam to be set as input.
> I've included my source code and if you could take a look at it... 
Thanks.
> 
> Does anybody own a LPC with two SPI ports that would test the code 
for me?
> 
> Most of the code are generated by MakeApp from IAR.
> 
> Thanks in advance
> 
> Jens Alsig
> 
> main.c
> 
> 
> #include "lpc2114.h"
> 
> void init_spi(void);
> #define MA_PINSEL0_PCB         0x00000000  /* Pin Function Select 
> Register 0 */
> #define MA_PINSEL0_PCB_MASK    0xFFFFFFFF  /* Used bits */
> #define MA_PINSEL1_PCB         0x000002A8  /* Pin Function Select 
> Register 1 */
> #define MA_PINSEL1_PCB_MASK    0x3FCFFFFF  /* Used bits */
> #define MA_PINSEL2_PCB         0x006000F0  /* Pin Function Select 
> Register 2 */
> #define MA_PINSEL2_PCB_MASK    0x0FF3E9FC  /* Used bits */
> 
> 
> #define MA_S0SPCR_SPI          0x00000000  /* SPI0 Control Register 
*/
> #define MA_S0SPCR_SPI_MASK     0x000000F8  /* Used bits */
> #define MA_S0SPDR_SPI          0x00000000  /* SPI0 Data Register */
> #define MA_S0SPDR_SPI_MASK     0x000000FF  /* Used bits */
> #define MA_S0SPCCR_SPI         0x00000008  /* SPI0 Clock Counter 
Register */
> #define MA_S0SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> #define MA_S1SPCR_SPI          0x00000020  /* SPI1 Control Register 
*/
> #define MA_S1SPCR_SPI_MASK     0x000000F8  /* Used bits */
> #define MA_S1SPDR_SPI          0x00000000  /* SPI1 Data Register */
> #define MA_S1SPDR_SPI_MASK     0x000000FF  /* Used bits */
> #define MA_S1SPCCR_SPI         0x00000008  /* SPI1 Clock Counter 
Register */
> #define MA_S1SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> 
> 
> #define MA_OK        0
> #define MA_ERROR    1
> #define MA_EMPTY     2
> #define S1SPSR_SPIF    (1 << 7)
> #define S1SPSR_WCOL (1 << 6)
> #define S1SPSR_ROVR (1 << 5)
> #define S1SPSR_MODF (1 << 4)
> #define S1SPSR_ABRT (1 << 3)
> 
> #define PSelLED 0x30000000
> #define LED     0x40000000
> 
> void TurnOnLed(void)
> {
>     GPIO0_IOCLR  = LED;
> }
> 
> void TurnOffLed(void)
> {
>     GPIO0_IOSET  = LED;
> }
> 
> void spi1_init( void )
> {
>     PCB_PINSEL1  = ( PCB_PINSEL1 & ~MA_PINSEL1_PCB_MASK ) | 
MA_PINSEL1_PCB;
>     SPI1_SPCCR  = ( SPI1_SPCCR & ~MA_S1SPCCR_SPI_MASK ) | 
MA_S1SPCCR_SPI;
>     SPI1_SPCR   = ( SPI1_SPCR & ~MA_S1SPCR_SPI_MASK ) | 
MA_S1SPCR_SPI;
> }
> 
> signed char spi1_putch( unsigned char Data )
> {
>     signed char Status;
>     SPI1_SPDR = Data;
>     Status = MA_OK;
> 
>    
>     if( SPI1_SPSR )
>     {
>         Status = MA_ERROR;
>     }
>     return Status;
> 
> }
> 
> unsigned char spi1_getch( void )
> {
>     unsigned char Data;
>     Data = SPI1_SPDR;
>     return Data;
> 
> }
> 
> signed char spi1_get_status( void )
> {
>     signed char Status;
>     Status = (signed char) SPI1_SPSR;
> 
>     if( Status == 0 )
>     {
>         Status = MA_EMPTY;
>     }
>     else if( Status & ( S1SPSR_WCOL | S1SPSR_ROVR | S1SPSR_MODF | 
> S1SPSR_ABRT ) )
>     {
>         if( Status & S1SPSR_MODF )
>         {
>             SPI1_SPCR = MA_S1SPCR_SPI;
>         }
>     }
>     else if( Status & S1SPSR_SPIF )
>     {
>         Status = MA_OK;
>     }
>     return Status;
> 
> }
> 
> 
> int main(void)
> {
>     GPIO0_IODIR = LED;
>     spi1_init();
>     TurnOnLed();
>     while(1)
>     {
>     if(spi1_get_status() == MA_OK)
>         {
>             if(spi1_putch(0xAA) == MA_ERROR)
>                 TurnOffLed();
>         }
>     }
> }
> 
> 
> 
> y4krys wrote:
> 
> > Alsig,
> > One more thing, for the SSEL pullup to work the pin function must 
be
> > set to SPI (PINSEL1 |= 0x2A8).  (Note: corrected the config 
bits ;-))
> > Krys
> >
> > --- In lpc2000@yahoogroups.com, "y4krys" <krys.brukalo@a...> 
wrote:
> > > Alsig,
> > >  If you write a byte to the transmit register the SCK clock 
should
> > be
> > > generated.  Make sure the SPI1 peripheral is enabled and powered
> > > (Check PCONP bits).  You should be able to do your initial test
> > using
> > > your debugger and the direct access to the control registers. 
> > Also,
> > > only the MISO pin should show as an input, MOSI and SCK should 
be
> > > outputs driven SPI.  Once you are past the clock and MOSI hurdle
> > > you'll need the slave select signal from your LPC to the EE and 
the
> > > right SPI mode (CPOL and CPHA) for proper data access.
> > > I hope it helps.
> > > Regards,
> > > Krys
> > > --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > > > Hi,
> > > > The all pins seam to float or be as input even after I 
configure
> > > the
> > > > PINSEL1 register. I'm using a LPC2214 as
> > > > the master and the 25Lc640 as a slave. I've connected the 
SSEL to
> > 3
> > > volt.
> > > > Regarding the setup of the registers I've tried the IAR 
MakeApp
> > > code for
> > > > the PCB module and the SPI module. And at the
> > > > moment this gives the same result.
> > > >
> > > > Regards Jens Alsig
> > > >
> > > >
> > > > y4krys wrote:
> > > >
> > > > > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> 
wrote:
> > > > > > Hi,
> > > > > >
> > > > > > have anyone every used the SPI 1 channel on a LPC device 
that
> > > has 2
> > > > > > channels?
> > > > > >
> > > > > > I've tried without any luck and getting very frustrated! I
> > have
> > > tried
> > > > > > using the IAR MakeApp and that doesn't work either. My 
setup
> > is
> > > a
> > > > > > LPC2214 from Olimex and a MicroChip EEPROM.
> > > > > >
> > > > > > Any suggestions are VERY welcome.
> > > > > >
> > > > > > Regards Jens Alsig
> > > > >
> > > > > Hi Alsig,
> > > > > What do you mean by "doesn't work"?  Is SPI1 properly setup 
(IO
> > > pin
> > > > > selection and function, Master/Slave etc.) and enabled?  
Have
> > you
> > > > > checked the bus with a scope?  What hardware do you use?
> > > > >
> > > > > Krys
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------------------------------------
----
> > --
> > > ------
> > > > > YAHOO! GROUPS LINKS
> > > > >
> > > > >     *  Visit your group "lpc2000
> > > > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > > > >       
> > > > >     *  To unsubscribe from this group, send an email to:
> > > > >        lpc2000-unsubscribe@yahoogroups.com
> > > > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> > > subject=Unsubscribe>
> > > > >       
> > > > >     *  Your use of Yahoo! Groups is subject to the Yahoo! 
Terms
> > of
> > > > >       Service <http://docs.yahoo.com/info/terms/>.
> > > > >
> > > > >
> > > > > ------------------------------------------------------------
----
> > --
> > > ------
> > > > >
> > > >
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> >
> >
> >
> >
> >
> > SPONSORED LINKS
> > Microcontrollers 
> > <http://groups.yahoo.com/gads?
t=ms&k=Microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel
+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=
120&.sig=OPqm0ilH6VyGn-geZ0nNwA> 
> > 	Microprocessor 
> > <http://groups.yahoo.com/gads?
t=ms&k=Microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+m
icroprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=12
0&.sig=e6n93hF7rArBsrPQJltQ_w> 
> > 	Intel microprocessors 
> > <http://groups.yahoo.com/gads?
t=ms&k=Intel+microprocessors&w1=Microcontrollers&w2=Microprocessor&w3=
Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c
=5&s=120&.sig=EENrTtKaQUw-Vd0BgTdDmw> 
> >
> > Pic microcontrollers 
> > <http://groups.yahoo.com/gads?
t=ms&k=Pic+microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=I
ntel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=
5&s=120&.sig=iYT6za1gT3-VT1hwIylDpw> 
> > 	8085 microprocessor 
> > <http://groups.yahoo.com/gads?
t=ms&k=8085+microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=In
tel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5
&s=120&.sig=PhYMBsCkQptYbazQFyNujQ> 
> >
> >
> >
> > ------------------------------------------------------------------
------
> > YAHOO! GROUPS LINKS
> >
> >     *  Visit your group "lpc2000
> >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> >        
> >     *  To unsubscribe from this group, send an email to:
> >        lpc2000-unsubscribe@yahoogroups.com
> >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
subject=Unsubscribe>
> >        
> >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> >       Service <http://docs.yahoo.com/info/terms/>.
> >
> >
> > ------------------------------------------------------------------
------
Show quoted textHide quoted text
> >
> 
> 
> 
> [Non-text portions of this message have been removed]

Re: [lpc2000] Re: SPI1

2005-08-17 by Jens Alsig

Hi,


I use WinARM - gcc as my compiler.  I don't have a debugger so I can't 
debug the app :(
Regarding the chip select to my memory chip I was figuring that I 
altleast should see a SCLK signal if
I was transmitting data.

Here is the lpc2114.h file:

#ifndef lpc2114_h
#define lpc2114_h
/*******************************************************************************
lpc2114.h - Register defs for Philips LPC2114, LPC2124


THE SOFTWARE IS DELIVERED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY 
KIND,
EITHER EXPRESS, IMPLIED OR STATUTORY. THIS INCLUDES WITHOUT LIMITATION ANY
WARRANTY OR CONDITION WITH RESPECT TO MERCHANTABILITY OR FITNESS FOR ANY
PARTICULAR PURPOSE, OR AGAINST THE INFRINGEMENTS OF INTELLECTUAL 
PROPERTY RIGHTS
OF OTHERS.
          
This file may be freely used for commercial and non-commercial 
applications,
including being redistributed with any tools.

If you find a problem with the file, please report it so that it can be 
fixed.

Created by Sten Larsson (sten_larsson at yahoo com)
*******************************************************************************/

#define REG8  (volatile unsigned char*)
#define REG16 (volatile unsigned short*)
#define REG32 (volatile unsigned int*)


/*##############################################################################
## MISC
##############################################################################*/

        /* Constants for data to put in IRQ/FIQ Exception Vectors */
#define VECTDATA_IRQ  0xE51FFFF0  /* LDR PC,[PC,#-0xFF0] */
#define VECTDATA_FIQ  /* __TODO */


/*##############################################################################
## VECTORED INTERRUPT CONTROLLER
##############################################################################*/

#define VICIRQStatus    (*(REG32 (0xFFFFF000)))
#define VICFIQStatus    (*(REG32 (0xFFFFF004)))
#define VICRawIntr      (*(REG32 (0xFFFFF008)))
#define VICIntSelect    (*(REG32 (0xFFFFF00C)))
#define VICIntEnable    (*(REG32 (0xFFFFF010)))
#define VICIntEnClear   (*(REG32 (0xFFFFF014)))
#define VICSoftInt      (*(REG32 (0xFFFFF018)))
#define VICSoftIntClear (*(REG32 (0xFFFFF01C)))
#define VICProtection   (*(REG32 (0xFFFFF020)))
#define VICVectAddr     (*(REG32 (0xFFFFF030)))
#define VICDefVectAddr  (*(REG32 (0xFFFFF034)))

#define VICVectAddr0    (*(REG32 (0xFFFFF100)))
#define VICVectAddr1    (*(REG32 (0xFFFFF104)))
#define VICVectAddr2    (*(REG32 (0xFFFFF108)))
#define VICVectAddr3    (*(REG32 (0xFFFFF10C)))
#define VICVectAddr4    (*(REG32 (0xFFFFF110)))
#define VICVectAddr5    (*(REG32 (0xFFFFF114)))
#define VICVectAddr6    (*(REG32 (0xFFFFF118)))
#define VICVectAddr7    (*(REG32 (0xFFFFF11C)))
#define VICVectAddr8    (*(REG32 (0xFFFFF120)))
#define VICVectAddr9    (*(REG32 (0xFFFFF124)))
#define VICVectAddr10   (*(REG32 (0xFFFFF128)))
#define VICVectAddr11   (*(REG32 (0xFFFFF12C)))
#define VICVectAddr12   (*(REG32 (0xFFFFF130)))
#define VICVectAddr13   (*(REG32 (0xFFFFF134)))
#define VICVectAddr14   (*(REG32 (0xFFFFF138)))
#define VICVectAddr15   (*(REG32 (0xFFFFF13C)))

#define VICVectCntl0    (*(REG32 (0xFFFFF200)))
#define VICVectCntl1    (*(REG32 (0xFFFFF204)))
#define VICVectCntl2    (*(REG32 (0xFFFFF208)))
#define VICVectCntl3    (*(REG32 (0xFFFFF20C)))
#define VICVectCntl4    (*(REG32 (0xFFFFF210)))
#define VICVectCntl5    (*(REG32 (0xFFFFF214)))
#define VICVectCntl6    (*(REG32 (0xFFFFF218)))
#define VICVectCntl7    (*(REG32 (0xFFFFF21C)))
#define VICVectCntl8    (*(REG32 (0xFFFFF220)))
#define VICVectCntl9    (*(REG32 (0xFFFFF224)))
#define VICVectCntl10   (*(REG32 (0xFFFFF228)))
#define VICVectCntl11   (*(REG32 (0xFFFFF22C)))
#define VICVectCntl12   (*(REG32 (0xFFFFF230)))
#define VICVectCntl13   (*(REG32 (0xFFFFF234)))
#define VICVectCntl14   (*(REG32 (0xFFFFF238)))
#define VICVectCntl15   (*(REG32 (0xFFFFF23C)))

#define VICITCR         (*(REG32 (0xFFFFF300)))
#define VICITIP1        (*(REG32 (0xFFFFF304)))
#define VICITIP2        (*(REG32 (0xFFFFF308)))
#define VICITOP1        (*(REG32 (0xFFFFF30C)))
#define VICITOP2        (*(REG32 (0xFFFFF310)))
#define VICPeriphID0    (*(REG32 (0xFFFFFFE0)))
#define VICPeriphID1    (*(REG32 (0xFFFFFFE4)))
#define VICPeriphID2    (*(REG32 (0xFFFFFFE8)))
#define VICPeriphID3    (*(REG32 (0xFFFFFFEC)))

#define VICIntEnClr     VICIntEnClear
#define VICSoftIntClr   VICSoftIntClear


/*##############################################################################
## PCB - Pin Connect Block
##############################################################################*/

#define PCB_PINSEL0     (*(REG32 (0xE002C000)))
#define PCB_PINSEL1     (*(REG32 (0xE002C004)))
#define PCB_PINSEL2     (*(REG32 (0xE002C014)))


/*##############################################################################
## GPIO - General Purpose I/O
##############################################################################*/

#define GPIO0_IOPIN     (*(REG32 (0xE0028000)))
#define GPIO0_IOSET     (*(REG32 (0xE0028004)))
#define GPIO0_IODIR     (*(REG32 (0xE0028008)))
#define GPIO0_IOCLR     (*(REG32 (0xE002800C)))

#define GPIO1_IOPIN     (*(REG32 (0xE0028010)))
#define GPIO1_IOSET     (*(REG32 (0xE0028014)))
#define GPIO1_IODIR     (*(REG32 (0xE0028018)))
#define GPIO1_IOCLR     (*(REG32 (0xE002801C)))


/*##############################################################################
## UART0 / UART1
##############################################################################*/

/* ---- UART 0 --------------------------------------------- */
#define UART0_RBR       (*(REG32 (0xE000C000)))
#define UART0_THR       (*(REG32 (0xE000C000)))
#define UART0_IER       (*(REG32 (0xE000C004)))
#define UART0_IIR       (*(REG32 (0xE000C008)))
#define UART0_FCR       (*(REG32 (0xE000C008)))
#define UART0_LCR       (*(REG32 (0xE000C00C)))
#define UART0_LSR       (*(REG32 (0xE000C014)))
#define UART0_SCR       (*(REG32 (0xE000C01C)))
#define UART0_DLL       (*(REG32 (0xE000C000)))
#define UART0_DLM       (*(REG32 (0xE000C004)))

/* ---- UART 1 --------------------------------------------- */
#define UART1_RBR       (*(REG32 (0xE0010000)))
#define UART1_THR       (*(REG32 (0xE0010000)))
#define UART1_IER       (*(REG32 (0xE0010004)))
#define UART1_IIR       (*(REG32 (0xE0010008)))
#define UART1_FCR       (*(REG32 (0xE0010008)))
#define UART1_LCR       (*(REG32 (0xE001000C)))
#define UART1_LSR       (*(REG32 (0xE0010014)))
#define UART1_SCR       (*(REG32 (0xE001001C)))
#define UART1_DLL       (*(REG32 (0xE0010000)))
#define UART1_DLM       (*(REG32 (0xE0010004)))
#define UART1_MCR       (*(REG32 (0xE0010010)))
#define UART1_MSR       (*(REG32 (0xE0010018)))


/*##############################################################################
## I2C
##############################################################################*/

#define I2C_I2CONSET    (*(REG32 (0xE001C000)))
#define I2C_I2STAT      (*(REG32 (0xE001C004)))
#define I2C_I2DAT       (*(REG32 (0xE001C008)))
#define I2C_I2ADR       (*(REG32 (0xE001C00C)))
#define I2C_I2SCLH      (*(REG32 (0xE001C010)))
#define I2C_I2SCLL      (*(REG32 (0xE001C014)))
#define I2C_I2CONCLR    (*(REG32 (0xE001C018)))


/*##############################################################################
## SPI - Serial Peripheral Interface
##############################################################################*/

#define SPI_SPCR        (*(REG32 (0xE0020000)))  /* SPI = SPI0 */
#define SPI_SPSR        (*(REG32 (0xE0020004)))
#define SPI_SPDR        (*(REG32 (0xE0020008)))
#define SPI_SPCCR       (*(REG32 (0xE002000C)))
#define SPI_SPTCR       (*(REG32 (0xE0020010)))
#define SPI_SPTSR       (*(REG32 (0xE0020014)))
#define SPI_SPTOR       (*(REG32 (0xE0020018)))
#define SPI_SPINT       (*(REG32 (0xE002001C)))

#define SPI0_SPCR       (*(REG32 (0xE0020000)))  /* SPI = SPI0 */
#define SPI0_SPSR       (*(REG32 (0xE0020004)))
#define SPI0_SPDR       (*(REG32 (0xE0020008)))
#define SPI0_SPCCR      (*(REG32 (0xE002000C)))
#define SPI0_SPTCR      (*(REG32 (0xE0020010)))
#define SPI0_SPTSR      (*(REG32 (0xE0020014)))
#define SPI0_SPTOR      (*(REG32 (0xE0020018)))
#define SPI0_SPINT      (*(REG32 (0xE002001C)))

#define SPI1_SPCR       (*(REG32 (0xE0030000)))
#define SPI1_SPSR       (*(REG32 (0xE0030004)))
#define SPI1_SPDR       (*(REG32 (0xE0030008)))
#define SPI1_SPCCR      (*(REG32 (0xE003000C)))
#define SPI1_SPTCR      (*(REG32 (0xE0030010)))
#define SPI1_SPTSR      (*(REG32 (0xE0030014)))
#define SPI1_SPTOR      (*(REG32 (0xE0030018)))
#define SPI1_SPINT      (*(REG32 (0xE003001C)))


/*##############################################################################
## Timer 0 and Timer 1
##############################################################################*/

/* ---- Timer 0 -------------------------------------------- */
#define T0_IR           (*(REG32 (0xE0004000)))
#define T0_TCR          (*(REG32 (0xE0004004)))
#define T0_TC           (*(REG32 (0xE0004008)))
#define T0_PR           (*(REG32 (0xE000400C)))
#define T0_PC           (*(REG32 (0xE0004010)))
#define T0_MCR          (*(REG32 (0xE0004014)))
#define T0_MR0          (*(REG32 (0xE0004018)))
#define T0_MR1          (*(REG32 (0xE000401C)))
#define T0_MR2          (*(REG32 (0xE0004020)))
#define T0_MR3          (*(REG32 (0xE0004024)))
#define T0_CCR          (*(REG32 (0xE0004028)))
#define T0_CR0          (*(REG32 (0xE000402C)))
#define T0_CR1          (*(REG32 (0xE0004030)))
#define T0_CR2          (*(REG32 (0xE0004034)))
#define T0_CR3          (*(REG32 (0xE0004038)))
#define T0_EMR          (*(REG32 (0xE000403C)))

/* ---- Timer 1 -------------------------------------------- */
#define T1_IR           (*(REG32 (0xE0008000)))
#define T1_TCR          (*(REG32 (0xE0008004)))
#define T1_TC           (*(REG32 (0xE0008008)))
#define T1_PR           (*(REG32 (0xE000800C)))
#define T1_PC           (*(REG32 (0xE0008010)))
#define T1_MCR          (*(REG32 (0xE0008014)))
#define T1_MR0          (*(REG32 (0xE0008018)))
#define T1_MR1          (*(REG32 (0xE000801C)))
#define T1_MR2          (*(REG32 (0xE0008020)))
#define T1_MR3          (*(REG32 (0xE0008024)))
#define T1_CCR          (*(REG32 (0xE0008028)))
#define T1_CR0          (*(REG32 (0xE000802C)))
#define T1_CR1          (*(REG32 (0xE0008030)))
#define T1_CR2          (*(REG32 (0xE0008034)))
#define T1_CR3          (*(REG32 (0xE0008038)))
#define T1_EMR          (*(REG32 (0xE000803C)))


/*##############################################################################
## PWM
##############################################################################*/

#define PWM_IR          (*(REG32 (0xE0014000)))
#define PWM_TCR         (*(REG32 (0xE0014004)))
#define PWM_TC          (*(REG32 (0xE0014008)))
#define PWM_PR          (*(REG32 (0xE001400C)))
#define PWM_PC          (*(REG32 (0xE0014010)))
#define PWM_MCR         (*(REG32 (0xE0014014)))
#define PWM_MR0         (*(REG32 (0xE0014018)))
#define PWM_MR1         (*(REG32 (0xE001401C)))
#define PWM_MR2         (*(REG32 (0xE0014020)))
#define PWM_MR3         (*(REG32 (0xE0014024)))
#define PWM_MR4         (*(REG32 (0xE0014040)))
#define PWM_MR5         (*(REG32 (0xE0014044)))
#define PWM_MR6         (*(REG32 (0xE0014048)))
#define PWM_EMR         (*(REG32 (0xE001403C)))
#define PWM_PCR         (*(REG32 (0xE001404C)))
#define PWM_LER         (*(REG32 (0xE0014050)))
#define PWM_CCR         (*(REG32 (0xE0014028)))
#define PWM_CR0         (*(REG32 (0xE001402C)))
#define PWM_CR1         (*(REG32 (0xE0014030)))
#define PWM_CR2         (*(REG32 (0xE0014034)))
#define PWM_CR3         (*(REG32 (0xE0014038)))

/*##############################################################################
## RTC
##############################################################################*/

/* ---- RTC: Miscellaneous Register Group ------------------ */
#define RTC_ILR         (*(REG32 (0xE0024000)))
#define RTC_CTC         (*(REG32 (0xE0024004)))
#define RTC_CCR         (*(REG32 (0xE0024008))) 
#define RTC_CIIR        (*(REG32 (0xE002400C)))
#define RTC_AMR         (*(REG32 (0xE0024010)))
#define RTC_CTIME0      (*(REG32 (0xE0024014)))
#define RTC_CTIME1      (*(REG32 (0xE0024018)))
#define RTC_CTIME2      (*(REG32 (0xE002401C)))

/* ---- RTC: Timer Control Group --------------------------- */
#define RTC_SEC         (*(REG32 (0xE0024020)))
#define RTC_MIN         (*(REG32 (0xE0024024)))
#define RTC_HOUR        (*(REG32 (0xE0024028)))
#define RTC_DOM         (*(REG32 (0xE002402C)))
#define RTC_DOW         (*(REG32 (0xE0024030)))
#define RTC_DOY         (*(REG32 (0xE0024034)))
#define RTC_MONTH       (*(REG32 (0xE0024038)))
#define RTC_YEAR        (*(REG32 (0xE002403C)))

/* ---- RTC: Alarm Control Group --------------------------- */
#define RTC_ALSEC       (*(REG32 (0xE0024060)))
#define RTC_ALMIN       (*(REG32 (0xE0024064)))
#define RTC_ALHOUR      (*(REG32 (0xE0024068)))
#define RTC_ALDOM       (*(REG32 (0xE002406C)))
#define RTC_ALDOW       (*(REG32 (0xE0024070)))
#define RTC_ALDOY       (*(REG32 (0xE0024074)))
#define RTC_ALMON       (*(REG32 (0xE0024078)))
#define RTC_ALYEAR      (*(REG32 (0xE002407C)))

/* ---- RTC: Reference Clock Divider Group ----------------- */
#define RTC_PREINT      (*(REG32 (0xE0024080)))
#define RTC_PREFRAC     (*(REG32 (0xE0024084)))


/*##############################################################################
## AE - AD Converter
##############################################################################*/

#define AD_ADCR        (*(REG32 (0xE0034000)))
#define AD_ADDR        (*(REG32 (0xE0034004)))


/*##############################################################################
## WD - Watchdog
##############################################################################*/

#define WD_WDMOD        (*(REG32 (0xE0000000)))
#define WD_WDTC         (*(REG32 (0xE0000004)))
#define WD_WDFEED       (*(REG32 (0xE0000008)))
#define WD_WDTV         (*(REG32 (0xE000000C)))


/*##############################################################################
## SCB - System Control Block
##############################################################################*/

#define SCB_EXTINT      (*(REG32 (0xE01FC140)))
#define SCB_EXTWAKE     (*(REG32 (0xE01FC144)))
#define SCB_EXTMODE     (*(REG32 (0xE01FC148)))
#define SCB_EXTPOLAR    (*(REG32 (0xE01FC14C)))
#define SCB_MEMMAP      (*(REG32 (0xE01FC040)))
#define SCB_PLLCON      (*(REG32 (0xE01FC080)))
#define SCB_PLLCFG      (*(REG32 (0xE01FC084)))
#define SCB_PLLSTAT     (*(REG32 (0xE01FC088)))
#define SCB_PLLFEED     (*(REG32 (0xE01FC08C)))
#define SCB_PCON        (*(REG32 (0xE01FC0C0)))
#define SCB_PCONP       (*(REG32 (0xE01FC0C4)))
#define SCB_VPBDIV      (*(REG32 (0xE01FC100)))


/*##############################################################################
## MAM - Memory Accelerator Module
##############################################################################*/

#define MAM_MAMCR       (*(REG32 (0xE01FC000)))
#define MAM_MAMTIM      (*(REG32 (0xE01FC004)))
#define MAM_MAMMAP      (*(REG32 (0xE01FC040)))


#endif /* lpc2114_h */



y4krys wrote:

> Alsig,
> I'll try to build your application and check the configuration. 
> What tools do you use?  Could you send me your lpc2114.h file?
> If you can, put a break on "    TurnOnLed();" and use your debugger
> to check PCONP, PINSEL1 and SPI1_xxx register data.  It looks like
> your SPI1 may be disabled.  Also your slave will need a select/enable
> line active low to operate.
> Krys
> --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > Hi y4krys,
> >
> > I've checked and double checked my source code and I can't find any
> > errors but it still doesn't work.
> > The SPI pins seam to be set as input.
> > I've included my source code and if you could take a look at it...
> Thanks.
> >
> > Does anybody own a LPC with two SPI ports that would test the code
> for me?
> >
> > Most of the code are generated by MakeApp from IAR.
> >
> > Thanks in advance
> >
> > Jens Alsig
> >
> > main.c
> >
> >
> > #include "lpc2114.h"
> >
> > void init_spi(void);
> > #define MA_PINSEL0_PCB         0x00000000  /* Pin Function Select
> > Register 0 */
> > #define MA_PINSEL0_PCB_MASK    0xFFFFFFFF  /* Used bits */
> > #define MA_PINSEL1_PCB         0x000002A8  /* Pin Function Select
> > Register 1 */
> > #define MA_PINSEL1_PCB_MASK    0x3FCFFFFF  /* Used bits */
> > #define MA_PINSEL2_PCB         0x006000F0  /* Pin Function Select
> > Register 2 */
> > #define MA_PINSEL2_PCB_MASK    0x0FF3E9FC  /* Used bits */
> >
> >
> > #define MA_S0SPCR_SPI          0x00000000  /* SPI0 Control Register
> */
> > #define MA_S0SPCR_SPI_MASK     0x000000F8  /* Used bits */
> > #define MA_S0SPDR_SPI          0x00000000  /* SPI0 Data Register */
> > #define MA_S0SPDR_SPI_MASK     0x000000FF  /* Used bits */
> > #define MA_S0SPCCR_SPI         0x00000008  /* SPI0 Clock Counter
> Register */
> > #define MA_S0SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> > #define MA_S1SPCR_SPI          0x00000020  /* SPI1 Control Register
> */
> > #define MA_S1SPCR_SPI_MASK     0x000000F8  /* Used bits */
> > #define MA_S1SPDR_SPI          0x00000000  /* SPI1 Data Register */
> > #define MA_S1SPDR_SPI_MASK     0x000000FF  /* Used bits */
> > #define MA_S1SPCCR_SPI         0x00000008  /* SPI1 Clock Counter
> Register */
> > #define MA_S1SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> >
> >
> > #define MA_OK        0
> > #define MA_ERROR    1
> > #define MA_EMPTY     2
> > #define S1SPSR_SPIF    (1 << 7)
> > #define S1SPSR_WCOL (1 << 6)
> > #define S1SPSR_ROVR (1 << 5)
> > #define S1SPSR_MODF (1 << 4)
> > #define S1SPSR_ABRT (1 << 3)
> >
> > #define PSelLED 0x30000000
> > #define LED     0x40000000
> >
> > void TurnOnLed(void)
> > {
> >     GPIO0_IOCLR  = LED;
> > }
> >
> > void TurnOffLed(void)
> > {
> >     GPIO0_IOSET  = LED;
> > }
> >
> > void spi1_init( void )
> > {
> >     PCB_PINSEL1  = ( PCB_PINSEL1 & ~MA_PINSEL1_PCB_MASK ) |
> MA_PINSEL1_PCB;
> >     SPI1_SPCCR  = ( SPI1_SPCCR & ~MA_S1SPCCR_SPI_MASK ) |
> MA_S1SPCCR_SPI;
> >     SPI1_SPCR   = ( SPI1_SPCR & ~MA_S1SPCR_SPI_MASK ) |
> MA_S1SPCR_SPI;
> > }
> >
> > signed char spi1_putch( unsigned char Data )
> > {
> >     signed char Status;
> >     SPI1_SPDR = Data;
> >     Status = MA_OK;
> >
> >   
> >     if( SPI1_SPSR )
> >     {
> >         Status = MA_ERROR;
> >     }
> >     return Status;
> >
> > }
> >
> > unsigned char spi1_getch( void )
> > {
> >     unsigned char Data;
> >     Data = SPI1_SPDR;
> >     return Data;
> >
> > }
> >
> > signed char spi1_get_status( void )
> > {
> >     signed char Status;
> >     Status = (signed char) SPI1_SPSR;
> >
> >     if( Status == 0 )
> >     {
> >         Status = MA_EMPTY;
> >     }
> >     else if( Status & ( S1SPSR_WCOL | S1SPSR_ROVR | S1SPSR_MODF |
> > S1SPSR_ABRT ) )
> >     {
> >         if( Status & S1SPSR_MODF )
> >         {
> >             SPI1_SPCR = MA_S1SPCR_SPI;
> >         }
> >     }
> >     else if( Status & S1SPSR_SPIF )
> >     {
> >         Status = MA_OK;
> >     }
> >     return Status;
> >
> > }
> >
> >
> > int main(void)
> > {
> >     GPIO0_IODIR = LED;
> >     spi1_init();
> >     TurnOnLed();
> >     while(1)
> >     {
> >     if(spi1_get_status() == MA_OK)
> >         {
> >             if(spi1_putch(0xAA) == MA_ERROR)
> >                 TurnOffLed();
> >         }
> >     }
> > }
> >
> >
> >
> > y4krys wrote:
> >
> > > Alsig,
> > > One more thing, for the SSEL pullup to work the pin function must
> be
> > > set to SPI (PINSEL1 |= 0x2A8).  (Note: corrected the config
> bits ;-))
> > > Krys
> > >
> > > --- In lpc2000@yahoogroups.com, "y4krys" <krys.brukalo@a...>
> wrote:
> > > > Alsig,
> > > >  If you write a byte to the transmit register the SCK clock
> should
> > > be
> > > > generated.  Make sure the SPI1 peripheral is enabled and powered
> > > > (Check PCONP bits).  You should be able to do your initial test
> > > using
> > > > your debugger and the direct access to the control registers.
> > > Also,
> > > > only the MISO pin should show as an input, MOSI and SCK should
> be
> > > > outputs driven SPI.  Once you are past the clock and MOSI hurdle
> > > > you'll need the slave select signal from your LPC to the EE and
> the
> > > > right SPI mode (CPOL and CPHA) for proper data access.
> > > > I hope it helps.
> > > > Regards,
> > > > Krys
> > > > --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > > > > Hi,
> > > > > The all pins seam to float or be as input even after I
> configure
> > > > the
> > > > > PINSEL1 register. I'm using a LPC2214 as
> > > > > the master and the 25Lc640 as a slave. I've connected the
> SSEL to
> > > 3
> > > > volt.
> > > > > Regarding the setup of the registers I've tried the IAR
> MakeApp
> > > > code for
> > > > > the PCB module and the SPI module. And at the
> > > > > moment this gives the same result.
> > > > >
> > > > > Regards Jens Alsig
> > > > >
> > > > >
> > > > > y4krys wrote:
> > > > >
> > > > > > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...>
> wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > have anyone every used the SPI 1 channel on a LPC device
> that
> > > > has 2
> > > > > > > channels?
> > > > > > >
> > > > > > > I've tried without any luck and getting very frustrated! I
> > > have
> > > > tried
> > > > > > > using the IAR MakeApp and that doesn't work either. My
> setup
> > > is
> > > > a
> > > > > > > LPC2214 from Olimex and a MicroChip EEPROM.
> > > > > > >
> > > > > > > Any suggestions are VERY welcome.
> > > > > > >
> > > > > > > Regards Jens Alsig
> > > > > >
> > > > > > Hi Alsig,
> > > > > > What do you mean by "doesn't work"?  Is SPI1 properly setup
> (IO
> > > > pin
> > > > > > selection and function, Master/Slave etc.) and enabled? 
> Have
> > > you
> > > > > > checked the bus with a scope?  What hardware do you use?
> > > > > >
> > > > > > Krys
> > > > > >
> > > > > >
> > > > > >
> > > > > > ------------------------------------------------------------
> ----
> > > --
> > > > ------
> > > > > > YAHOO! GROUPS LINKS
> > > > > >
> > > > > >     *  Visit your group "lpc2000
> > > > > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > > > > >      
> > > > > >     *  To unsubscribe from this group, send an email to:
> > > > > >        lpc2000-unsubscribe@yahoogroups.com
> > > > > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> > > > subject=Unsubscribe>
> > > > > >      
> > > > > >     *  Your use of Yahoo! Groups is subject to the Yahoo!
> Terms
> > > of
> > > > > >       Service <http://docs.yahoo.com/info/terms/>.
> > > > > >
> > > > > >
> > > > > > ------------------------------------------------------------
> ----
> > > --
> > > > ------
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > >
> > >
> > >
> > >
> > >
> > > SPONSORED LINKS
> > > Microcontrollers
> > > <http://groups.yahoo.com/gads?
> t=ms&k=Microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel
> +microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=
> 120&.sig=OPqm0ilH6VyGn-geZ0nNwA>
> > >       Microprocessor
> > > <http://groups.yahoo.com/gads?
> t=ms&k=Microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+m
> icroprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=12
> 0&.sig=e6n93hF7rArBsrPQJltQ_w>
> > >       Intel microprocessors
> > > <http://groups.yahoo.com/gads?
> t=ms&k=Intel+microprocessors&w1=Microcontrollers&w2=Microprocessor&w3=
> Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c
> =5&s=120&.sig=EENrTtKaQUw-Vd0BgTdDmw>
> > >
> > > Pic microcontrollers
> > > <http://groups.yahoo.com/gads?
> t=ms&k=Pic+microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=I
> ntel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=
> 5&s=120&.sig=iYT6za1gT3-VT1hwIylDpw>
> > >       8085 microprocessor
> > > <http://groups.yahoo.com/gads?
> t=ms&k=8085+microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=In
> tel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5
> &s=120&.sig=PhYMBsCkQptYbazQFyNujQ>
> > >
> > >
> > >
> > > ------------------------------------------------------------------
> ------
> > > YAHOO! GROUPS LINKS
> > >
> > >     *  Visit your group "lpc2000
> > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > >       
> > >     *  To unsubscribe from this group, send an email to:
> > >        lpc2000-unsubscribe@yahoogroups.com
> > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> subject=Unsubscribe>
> > >       
> > >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> > >       Service <http://docs.yahoo.com/info/terms/>.
> > >
> > >
> > > ------------------------------------------------------------------
> ------
> > >
> >
> >
> >
> > [Non-text portions of this message have been removed]
>
>
>
>
> SPONSORED LINKS
> Microcontrollers 
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=OPqm0ilH6VyGn-geZ0nNwA> 
> 	Microprocessor 
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=e6n93hF7rArBsrPQJltQ_w> 
> 	Intel microprocessors 
> <http://groups.yahoo.com/gads?t=ms&k=Intel+microprocessors&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=EENrTtKaQUw-Vd0BgTdDmw> 
>
> Pic microcontrollers 
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=iYT6za1gT3-VT1hwIylDpw> 
> 	8085 microprocessor 
> <http://groups.yahoo.com/gads?t=ms&k=8085+microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=120&.sig=PhYMBsCkQptYbazQFyNujQ> 
>
>
>
> ------------------------------------------------------------------------
> YAHOO! GROUPS LINKS
>
>     *  Visit your group "lpc2000
>       <http://groups.yahoo.com/group/lpc2000>" on the web.
>        
>     *  To unsubscribe from this group, send an email to:
>        lpc2000-unsubscribe@yahoogroups.com
>       <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>        
>     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>       Service <http://docs.yahoo.com/info/terms/>.
>
>
> ------------------------------------------------------------------------
>



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

Re: SPI1

2005-08-17 by y4krys

Alsig,
 It looks like you have missed the fact that the two least 
significant bits of the SPSR register are not defined and MUST be 
masked before any tests of the register contents.  In your main() code
you test the status for "MA_OK" as follows:
>if(spi1_get_status() == MA_OK)
instead of:
 if((spi1_get_status()& 0xFC)== MA_OK)
On my test board SPI1 status returned was 0x02 and your _putch() 
never had a chance to run.

I guess, if you really want the thing to work you'll need some way to 
look into your micro, unless you have a looooot of time ;-).

Good luck,
Krys


--- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> Hi y4krys,
> 
> I've checked and double checked my source code and I can't find any 
> errors but it still doesn't work.
> The SPI pins seam to be set as input.
> I've included my source code and if you could take a look at it... 
Thanks.
> 
> Does anybody own a LPC with two SPI ports that would test the code 
for me?
> 
> Most of the code are generated by MakeApp from IAR.
> 
> Thanks in advance
> 
> Jens Alsig
> 
> main.c
> 
> 
> #include "lpc2114.h"
> 
> void init_spi(void);
> #define MA_PINSEL0_PCB         0x00000000  /* Pin Function Select 
> Register 0 */
> #define MA_PINSEL0_PCB_MASK    0xFFFFFFFF  /* Used bits */
> #define MA_PINSEL1_PCB         0x000002A8  /* Pin Function Select 
> Register 1 */
> #define MA_PINSEL1_PCB_MASK    0x3FCFFFFF  /* Used bits */
> #define MA_PINSEL2_PCB         0x006000F0  /* Pin Function Select 
> Register 2 */
> #define MA_PINSEL2_PCB_MASK    0x0FF3E9FC  /* Used bits */
> 
> 
> #define MA_S0SPCR_SPI          0x00000000  /* SPI0 Control Register 
*/
> #define MA_S0SPCR_SPI_MASK     0x000000F8  /* Used bits */
> #define MA_S0SPDR_SPI          0x00000000  /* SPI0 Data Register */
> #define MA_S0SPDR_SPI_MASK     0x000000FF  /* Used bits */
> #define MA_S0SPCCR_SPI         0x00000008  /* SPI0 Clock Counter 
Register */
> #define MA_S0SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> #define MA_S1SPCR_SPI          0x00000020  /* SPI1 Control Register 
*/
> #define MA_S1SPCR_SPI_MASK     0x000000F8  /* Used bits */
> #define MA_S1SPDR_SPI          0x00000000  /* SPI1 Data Register */
> #define MA_S1SPDR_SPI_MASK     0x000000FF  /* Used bits */
> #define MA_S1SPCCR_SPI         0x00000008  /* SPI1 Clock Counter 
Register */
> #define MA_S1SPCCR_SPI_MASK    0x000000FF  /* Used bits */
> 
> 
> #define MA_OK        0
> #define MA_ERROR    1
> #define MA_EMPTY     2
> #define S1SPSR_SPIF    (1 << 7)
> #define S1SPSR_WCOL (1 << 6)
> #define S1SPSR_ROVR (1 << 5)
> #define S1SPSR_MODF (1 << 4)
> #define S1SPSR_ABRT (1 << 3)
> 
> #define PSelLED 0x30000000
> #define LED     0x40000000
> 
> void TurnOnLed(void)
> {
>     GPIO0_IOCLR  = LED;
> }
> 
> void TurnOffLed(void)
> {
>     GPIO0_IOSET  = LED;
> }
> 
> void spi1_init( void )
> {
>     PCB_PINSEL1  = ( PCB_PINSEL1 & ~MA_PINSEL1_PCB_MASK ) | 
MA_PINSEL1_PCB;
>     SPI1_SPCCR  = ( SPI1_SPCCR & ~MA_S1SPCCR_SPI_MASK ) | 
MA_S1SPCCR_SPI;
>     SPI1_SPCR   = ( SPI1_SPCR & ~MA_S1SPCR_SPI_MASK ) | 
MA_S1SPCR_SPI;
> }
> 
> signed char spi1_putch( unsigned char Data )
> {
>     signed char Status;
>     SPI1_SPDR = Data;
>     Status = MA_OK;
> 
>    
>     if( SPI1_SPSR )
>     {
>         Status = MA_ERROR;
>     }
>     return Status;
> 
> }
> 
> unsigned char spi1_getch( void )
> {
>     unsigned char Data;
>     Data = SPI1_SPDR;
>     return Data;
> 
> }
> 
> signed char spi1_get_status( void )
> {
>     signed char Status;
>     Status = (signed char) SPI1_SPSR;
> 
>     if( Status == 0 )
>     {
>         Status = MA_EMPTY;
>     }
>     else if( Status & ( S1SPSR_WCOL | S1SPSR_ROVR | S1SPSR_MODF | 
> S1SPSR_ABRT ) )
>     {
>         if( Status & S1SPSR_MODF )
>         {
>             SPI1_SPCR = MA_S1SPCR_SPI;
>         }
>     }
>     else if( Status & S1SPSR_SPIF )
>     {
>         Status = MA_OK;
>     }
>     return Status;
> 
> }
> 
> 
> int main(void)
> {
>     GPIO0_IODIR = LED;
>     spi1_init();
>     TurnOnLed();
>     while(1)
>     {
>     if(spi1_get_status() == MA_OK)
>         {
>             if(spi1_putch(0xAA) == MA_ERROR)
>                 TurnOffLed();
>         }
>     }
> }
> 
> 
> 
> y4krys wrote:
> 
> > Alsig,
> > One more thing, for the SSEL pullup to work the pin function must 
be
> > set to SPI (PINSEL1 |= 0x2A8).  (Note: corrected the config 
bits ;-))
> > Krys
> >
> > --- In lpc2000@yahoogroups.com, "y4krys" <krys.brukalo@a...> 
wrote:
> > > Alsig,
> > >  If you write a byte to the transmit register the SCK clock 
should
> > be
> > > generated.  Make sure the SPI1 peripheral is enabled and powered
> > > (Check PCONP bits).  You should be able to do your initial test
> > using
> > > your debugger and the direct access to the control registers. 
> > Also,
> > > only the MISO pin should show as an input, MOSI and SCK should 
be
> > > outputs driven SPI.  Once you are past the clock and MOSI hurdle
> > > you'll need the slave select signal from your LPC to the EE and 
the
> > > right SPI mode (CPOL and CPHA) for proper data access.
> > > I hope it helps.
> > > Regards,
> > > Krys
> > > --- In lpc2000@yahoogroups.com, Jens Alsig <alsig@g...> wrote:
> > > > Hi,
> > > > The all pins seam to float or be as input even after I 
configure
> > > the
> > > > PINSEL1 register. I'm using a LPC2214 as
> > > > the master and the 25Lc640 as a slave. I've connected the 
SSEL to
> > 3
> > > volt.
> > > > Regarding the setup of the registers I've tried the IAR 
MakeApp
> > > code for
> > > > the PCB module and the SPI module. And at the
> > > > moment this gives the same result.
> > > >
> > > > Regards Jens Alsig
> > > >
> > > >
> > > > y4krys wrote:
> > > >
> > > > > --- In lpc2000@yahoogroups.com, "jensalsig" <alsig@g...> 
wrote:
> > > > > > Hi,
> > > > > >
> > > > > > have anyone every used the SPI 1 channel on a LPC device 
that
> > > has 2
> > > > > > channels?
> > > > > >
> > > > > > I've tried without any luck and getting very frustrated! I
> > have
> > > tried
> > > > > > using the IAR MakeApp and that doesn't work either. My 
setup
> > is
> > > a
> > > > > > LPC2214 from Olimex and a MicroChip EEPROM.
> > > > > >
> > > > > > Any suggestions are VERY welcome.
> > > > > >
> > > > > > Regards Jens Alsig
> > > > >
> > > > > Hi Alsig,
> > > > > What do you mean by "doesn't work"?  Is SPI1 properly setup 
(IO
> > > pin
> > > > > selection and function, Master/Slave etc.) and enabled?  
Have
> > you
> > > > > checked the bus with a scope?  What hardware do you use?
> > > > >
> > > > > Krys
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------------------------------------
----
> > --
> > > ------
> > > > > YAHOO! GROUPS LINKS
> > > > >
> > > > >     *  Visit your group "lpc2000
> > > > >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> > > > >       
> > > > >     *  To unsubscribe from this group, send an email to:
> > > > >        lpc2000-unsubscribe@yahoogroups.com
> > > > >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
> > > subject=Unsubscribe>
> > > > >       
> > > > >     *  Your use of Yahoo! Groups is subject to the Yahoo! 
Terms
> > of
> > > > >       Service <http://docs.yahoo.com/info/terms/>.
> > > > >
> > > > >
> > > > > ------------------------------------------------------------
----
> > --
> > > ------
> > > > >
> > > >
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> >
> >
> >
> >
> >
> > SPONSORED LINKS
> > Microcontrollers 
> > <http://groups.yahoo.com/gads?
t=ms&k=Microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=Intel
+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=
120&.sig=OPqm0ilH6VyGn-geZ0nNwA> 
> > 	Microprocessor 
> > <http://groups.yahoo.com/gads?
t=ms&k=Microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=Intel+m
icroprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5&s=12
0&.sig=e6n93hF7rArBsrPQJltQ_w> 
> > 	Intel microprocessors 
> > <http://groups.yahoo.com/gads?
t=ms&k=Intel+microprocessors&w1=Microcontrollers&w2=Microprocessor&w3=
Intel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c
=5&s=120&.sig=EENrTtKaQUw-Vd0BgTdDmw> 
> >
> > Pic microcontrollers 
> > <http://groups.yahoo.com/gads?
t=ms&k=Pic+microcontrollers&w1=Microcontrollers&w2=Microprocessor&w3=I
ntel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=
5&s=120&.sig=iYT6za1gT3-VT1hwIylDpw> 
> > 	8085 microprocessor 
> > <http://groups.yahoo.com/gads?
t=ms&k=8085+microprocessor&w1=Microcontrollers&w2=Microprocessor&w3=In
tel+microprocessors&w4=Pic+microcontrollers&w5=8085+microprocessor&c=5
&s=120&.sig=PhYMBsCkQptYbazQFyNujQ> 
> >
> >
> >
> > ------------------------------------------------------------------
------
> > YAHOO! GROUPS LINKS
> >
> >     *  Visit your group "lpc2000
> >       <http://groups.yahoo.com/group/lpc2000>" on the web.
> >        
> >     *  To unsubscribe from this group, send an email to:
> >        lpc2000-unsubscribe@yahoogroups.com
> >       <mailto:lpc2000-unsubscribe@yahoogroups.com?
subject=Unsubscribe>
> >        
> >     *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> >       Service <http://docs.yahoo.com/info/terms/>.
> >
> >
> > ------------------------------------------------------------------
------
Show quoted textHide quoted text
> >
> 
> 
> 
> [Non-text portions of this message have been removed]

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.