BIOS: LPT режим: ECP
Аппаратная реализация LPT <-> "мост" буфер 74HC244 <-> SPI флешка
1 pin 378h - MOSI
2 pin 379h - MISO
3 pin 37Ah - CLOCK
4 pin 37Ah - CS
Реализовал программное общение с флешкой по SPI, корректно получил: ID, type, density флешки, корректно прочитал содержимое флешки.
Вот только уже второй день не могу записать флешку Winbond W25Q80, использовал другую флешку MX25L1606E такая же проблема
Флешка Winbond W25Q80:
Код: Выделить всё
//Открываю запись
SPI_Start();
SPI_Transmit(0x06); //WREN
SPI_Stop();
//Проверяю статус
SPI_Start();
SPI_Transmit(0x05); //RDSR
Status=SPI_Receive();
SPI_Stop();
Получаю Status = DEC: 2 или BIN: 0000 0010
//Пытаюсь записать в флешку
SPI_Start();
SPI_Transmit(0x02); //WRITE
SPI_Transmit((0&0x0000ffff)>>8);
SPI_Transmit((0&0x000000ff);
SPI_Transmit(0,0);
for (i=0;i<256;i++)
{
SPI_Transmit(0x88); //Заполняю блок 256 байт, байтом 0x88
}
SPI_Stop();
Sleep(7000);
//Читаю из флешки
SPI_Start();
SPI_Transmit(0x03); //READ
SPI_Transmit(0x00);
SPI_Transmit(0x00);
SPI_Transmit(0x00);
unsigned char OutBufer[2097152];
//16777216 бит / 8 бит = 2097152 байт
for (i=0;i<2097152;i++)
{
OutBufer[i]=SPI_Receive();
}
SPI_Stop();
Далее записываю содержимое OutBufer[] в файл и просматриваю в HEX редакторе
Либо я чего то недопонимаю

