Witam
posiadam bardzo ciekawe Pamięci SRAM SPI - 23k256
chce do niej zapisać jakąś wartość a potem ją odczytać.
Czytałem katalog pamięci i niestety cały czas odczytuje wartość 255
Jak zaprogramować Atmege8 aby ta pamięć zadziałała?
http://fribotte.free.fr/bdtech/Terminal/23A256.pdf
napisałem coś takiego:
mam połączone SI z MOSI
SO - MISO
SCL - SCL
CC w pamięci od masy
HOLD do plusa
posiadam bardzo ciekawe Pamięci SRAM SPI - 23k256
chce do niej zapisać jakąś wartość a potem ją odczytać.
Czytałem katalog pamięci i niestety cały czas odczytuje wartość 255
Jak zaprogramować Atmege8 aby ta pamięć zadziałała?
http://fribotte.free.fr/bdtech/Terminal/23A256.pdf
napisałem coś takiego:
void SPIInit(void)
{
/* Set MOSI and SCK output, all others input */
DDRB |= (1<<PB3)|(1<<PB5);
// włącz SPI, MASTER, zegar podziel przez 128
SPCR |= (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);
}
void SPIWyslij(void)
{
SPDR = 0b00000010; // wysyłaj dane komenda
while(!(SPSR & (1<<SPIF))) //czekaj
;
SPDR = 0b00000000; //adres pierwsza polowa
while(!(SPSR & (1<<SPIF))) //czekaj
;
SPDR = 0b00000000; //adres druga polowa
while(!(SPSR & (1<<SPIF))) //czekaj
;
SPDR = 209; //wyslij przykladaowa liczbe
while(!(SPSR & (1<<SPIF)))
;
}
uint8_t SPICzytaj(void)
{
SPDR = 0b00000011; // czytaj dane komenda
while(!(SPSR & (1<<SPIF))) //czekaj
;
SPDR = 0b00000000; //adres pierwsza czesc
while(!(SPSR & (1<<SPIF))) //czekaj
;
SPDR = 0b00000000; //adres druga czesc
while(!(SPSR & (1<<SPIF))) //czekaj
;
return SPDR; // odczytaj wartosc !!
}
mam połączone SI z MOSI
SO - MISO
SCL - SCL
CC w pamięci od masy
HOLD do plusa