По-моему я некоторое противоречие обнаружил в даташите.
В разделе Chip Erase говорится
Цитата
In addition, if any sector of the memory array is in the
protected state, then the Chip Erase command will not be executed, and the device will return to
the idle state once the CS pin has been deasserted. The WEL bit in the Status Register will be
reset back to the logical “0” state if a sector is in the protected state.
и
Цитата
The device also incorporates an intelligent erasing algorithm that can detect when a byte location
fails to erase properly. If an erase error arises, it will be indicated by the EPE bit in the
Status Register.
В то же время в разделе Read Status Register
Цитата
The EPE bit will not be set if an erase or program
operation aborts for any reason such as an attempt to erase or program a protected region
or if the WEL bit is not set prior to an erase or program operation.
P.S. хотя нет, это я туплю. Все логично. Если есть защищенные сектора, то запись и не начнется. А раз не начнется, то и не закончится

А раз не закончится, то и верификации на чистоту не будет. А раз верификации не будет, то и ошибки возникнуть не может. А раз ошибки возникнуть не может, то и бит EPE не установится. Вот такая логика получается
P.P.S. а вы не пробовали после записи при возникновении ошибки "вручную" сделать верификацию на "чистоту"?