Цитата(Altemir @ Mar 27 2015, 16:32)

CS после записи отпускали? Бит EPE смотрели в статусном регистре? Пока на E-серию не переходили, сидим на D, но весьма заинтересовался таким багом.
Да, конечно. CS опускаю перед записью и поднимаю после окончания. Я привел пример кода записи в первом посте. Привожу код функции status() ниже. Если впаять 081D, то глюки пропадают принципиально. Что только не делал, не могу добиться 100% нормальной записи. Если запись была совершена некорректно, бит EPE взводится и бывает, что я эту же страницу не могу перезаписать, при попытки использовать 82-ю команду, данные не записываются корректно и взводится этот бит. Что делать, если он взводится, в мануале не написано ...
Цитата(Altemir @ Mar 27 2015, 16:32)

Документ этот видел. Эти команды (0x82 и 0xD2) у них не отличаются. Должно все работать одинаково, но не работает.
P.S.: У меня напряжение питания флешки 3,3В, но не думаю, что это причина.
Код
/**************************************************************
* чтение регистра статуса
*************************************************************/
BYTE at45db081d::status()
{
// Status Register Read
SET_AT45D_CS(); // set CS to LOW
reg[0] = 0xD7;
reg[1] = 0x00;
pSpi->transfer(reg, 2);
CLR_AT45D_CS(); // set CS to HIGH
return reg[1];
}
P.S.2: Сейчас есть более дешевая альтернатива этой флешки:
http://www.spansion.com/Support/Applicatio..._S25FL-K_AN.pdf , но тут другая распиновка.
Устройства уже выпущены и радикально переделывать что-то не особо хочется.
Умные речи подобны строкам, напечатанным курсивом. К. Прутков