Gast
#1975210
Hallo!
Ich versuche zur Zeit zweifelhaft einen EEPROM über SPI zu beschreiben
(93LC86 von Microchip).Hat jemand zufälliger Weise Erfahrung mit der
Thematik? Das senden der Daten vom Pic auf den EEPROM funktioniert. Ich
weiss nur nicht ob ich die Freigabe für das beschreiben richtig mache,
oder ob es vielleicht timing Probleme gibt. An der clk Freuenz liegt es
nicht diese ist unter der maximal erlaubten. Anbei auch noch ein kurzer
Auszug aus meinem Programmcode.Hoffe jemand kann mir helfen.Danke!
void SPI_init_memory(char chn)
{
unsigned int config=
SPI_CONFIG_MSTEN| //set the Master mode
SPI_CONFIG_MODE32; //set 32 bits/char
SpiChnOpen(chn, config, 40);//clk 1MHz
}
void enable_memory()
{
LATFbits.LATF5=1;//chip select ein
LATEbits.LATE0=1;//program enable ein
delay_ns(100);//chip select setup time
SPI1ACONbits.ON=1;//spi einschalten
spi_send_data(0b10011000000000000000000000000000);//Steuerzeichen EN an
LATFbits.LATF5=0;//chip select aus
SPI1ACONbits.ON=0;//Spi aus
delay_ns(400);//Chip select low time
LATEbits.LATE0=0;//programm enable aus
}
void write_memory()
{
LATFbits.LATF5=1;//chip select ein
LATEbits.LATE0=1;//programm enable ein
delay_ns(100);//chip select setup time
SPI1ACONbits.ON=1;//SPI einschalten
spi_send_data(0b10100000000001010101010101010000);//daten schreiben auf
0x0
LATFbits.LATF5=0;//chip select aus
SPI1ACONbits.ON=0;//spi aus
delay_ns(300);Chip select low time
LATEbits.LATE0=0;//programm enable aus
}
void main(void)
{
SPI_init_memory(3);
enable_memory();
write_memory();
}