|
//**************** из буфера 1 в ПЗУ ****************
void AT45DB081::Buf1ToMain(unsigned int page)
{
while(!FlashReady); // ждем конец операции
SS = 0;
spi = 0x83; // код операции
spi = (page>>7)&0x1f; // старш. часть адреса страницы
spi = (page<<1)&0xfe; // младш. часть адреса страницы
spi = 0; // don’t care bits
SS = 1; // начали пересылку
}
//**************** из ПЗУ в буфер 1 *****************
void AT45DB081::MainToBuf1(unsigned int page)
{
while(!FlashReady); // ждем конец операции
SS = 0;
spi = 0x53; // код операции
spi = (page>>7)&0x1f; // старш. часть адреса страницы
spi = (page<<1)&0xfe; // младш. часть адреса страницы
spi = 0; // don’t care bits
SS = 1; // начали пересылку
}
//***************************************************
char AT45DB081::LoadDir() // загрузка Dir из ПЗУ
{
char *ptr;
char i;
MainToBuf1(0); // читаем 0 страницу
while(!FlashReady); // ждем конец операции
SS = 0; // выбрать устройство
ptr = (char*)&Dir; // указатель на оглавление
spi = 0xd4; // код операции чтение буфера 1
for(i=0;i<4;i++) spi = 0; // чтение с 0 адреса
for(i=0;i<sizeof(Dir);i++)
{ spi = 0; *ptr++ = spi; } // читаем оглавление
SS = 1; // конец чтения
if(CRC16((char*)&Dir,sizeof(Dir)-2)==Dir.crc) return 1; // прочитана правильно
return 0; // оглавления нет
}
E-mail: info@telesys.ru