--- In lpc2000@yahoogroups.com, "johnsonnenberg99"
<johnsonnenberg99@y...> wrote:
>
> You are both right. One MUST enable the Slave Select pin for the
> SPI to work as a Master. This is how the 210x processors work, but
> it was supposed to be changed in the 2132. Per the 2132 manual,
> page 157: "One the LPC2132 (unlike earlier versions), the SSEL0 pin
> can be used for different functions with the SPI0 is is in Maser
> Mode." WRONG!
> Thank you all for your help. I've enjoyed lurking in the background
> on this group.
> John Sonnenberg
>
> --- In lpc2000@yahoogroups.com, "haack0815" <lpc_arm@s...> wrote:
> >
> > --- In lpc2000@yahoogroups.com, "johnsonnenberg99"
> > <johnsonnenberg99@y...> wrote:
> > >
> > > I just can't get the SPI port on the 2132 to work (master
> mode).
> > > Any help would be MUCH appreciated!
> > > I've setup the pin connect block per the manual, enable the SPI
> port
> > > in the PCONP register, programmed the SPI registers, and then
> try to
> > > send a byte. It appears to send in software, and the SPIF bit
> get
> > > set, but nothing comes out the MOSI pin or the SCK pin (both
> stuck
> > > low). I don't think I have a short on the PCB.
> > >
> > > Here's the main sections of code
> > >
> > >
> > > //********************************************
> > > //********************************************
> > > void OpenMasterSPI0(void)
> > > {
> > > PCONP_bit.PCSPI0 = 1; // enable the SPI hardware
> > > PINSEL0 = PINSEL0 & 0xFFFF00FF; // set the pin-select
> > > regisgters to enable the SPI pins
> > > PINSEL0 = PINSEL0 | 0x00001500; // Enable SPI pins, but do
> not
> > > use the Slave Select Pin. It is GPIO.
> > > // set the pins to SPI
> > > SPCCR0 = 128; // clk for the SPI clock.
> > > SPCR0 = 0x20 ; // master mode, active
> high
> > > clock, no IRQ
> > > }
> > >
> > >
> > > //*****************************************************
> > > // Write a byte to the SPI, and also read one in.
> > > //*****************************************************
> > > char WriteReadSPI0(char b)
> > > {
> > > int i=0;
> > > SPDR0 = b; // this write starts the spi
> transmission
> > > i=0;
> > > while( i == 0 )
> > > i = (SPSR0 & 0xff); // wait till we are done.
> > > return SPDR0;
> > > }
> > >
> > > Thanks in advance for any ideas.
> >
> > Hi,
> > you must use the SSEL0 input an apply a high to this pin to enable
> > the SPI0 controller.
> >
> > ANdreas
Sorry for the wrong info, but the older UM of the 2132/38 has an error
and tell that you must pull high the SSEL0 pin and the new UM tells
that you can use this pin as gpio.
AndreasMessage
Re: LPC2132 SPI problem
2005-03-02 by haack0815
Attachments
- No local attachments were found for this message.