Возникла вторая проблема. Память не стирается и не записывается. Программная защита от записи отключена, проверил программатором. Читаться , читается память нормально.
Стирание и запись:
Код
soft_spi_init();
SPI_CS_CLR;
soft_spi_write_instruct(SPI_FLASH_INS_BLOCK_ERASE_4K);
SPI_CS_SET;
delay(100000);
delay(100000);
delay(100000);
delay(100000);
delay(100000);
delay(100000);
delay(100000);
SPI_CS_CLR;
soft_spi_write_instruct(SPI_FLASH_INS_PAGE_PROGRAM);
soft_spi_write_addr(0x000000);
for(x=0; x<255; x++)
{
soft_spi_write_instruct(x);
}
SPI_CS_SET;
сама функция записи:
Код
void soft_spi_write_instruct(unsigned char instruct)
{
char x;
delay(DLY);
for(x=0;x<8;x++) // instruction
{
SCK_SPI_CLR;
if (0x80 & instruct)
{
SPI_DATA1;
}
else
{
SPI_DATA0;
}
delay(DLY);
SCK_SPI_SET;
delay(DLY);
SCK_SPI_CLR;
instruct = instruct<<1;
}
}
Код
void soft_spi_write_addr(long addr_dev)
{
char x;
delay(DLY);
for(x=0;x<24;x++) // instruction
{
SCK_SPI_CLR;
if (0x800000 & addr_dev)
{
SPI_DATA1;
}
else
{
SPI_DATA0;
}
delay(DLY);
SCK_SPI_SET;
delay(DLY);
SCK_SPI_CLR;
addr_dev = addr_dev<<1;
}
}
Сообщение отредактировал Artos5 - Aug 11 2014, 17:56