This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem using the SPI HW of TSC80251G2D on MCBx51

Hi,

I have followed the guidelines from Designers Guide for the Atmel TSC80251G2D controller to implement an SPI master with polling policy.
When testing on the MCBx51 eval. board I do get the 8 clock cycles on the SCK line(P1.6).

However on the MOSI line I get some data which are incorrect and also not synchronized with the clock.

I append the initialization code and the function trying to read the status register from a serial eeprom (SPI Slave).

Any ideas where the problem might be?



void spi_initialize (void){
SSMOD = 1;
SSIE = 0;
SSMSTR = 1;
SSBRS = 0;
SSCR1 = 1;
SSCR0 = 0; SSCPOL = 1;
SSCPHA = 1;
SSBSY = 0;
SSI = 0;
SSPE = 1;
}

unsigned char
read_rdsr (unsigned char slaveSelect){

unsigned char data_in;
unsigned char slaveMask = (1 << slaveSelect);

P1 = P1 ^ slaveMask; // chipselect
SSDAT = RDSR; //0x05
SSBSY = 1;
while(SSBSY);
SSI = 0;
SSDAT = dummyByte;
SSBSY = 1;
while(SSBSY);
SSI = 0;
P1 = P1 ^ slaveMask;
data_in = SSDAT;
return data_in;
}

0