안녕하십니까?

플래쉬 메모리 28F160C3를 가지고 작업하고 있는데

도저히 이해할 수 없는 문제가 있어 도움을 구하고자 문의 드립니다.

해결할 수 있도록 조언을 바랍니다.


지금 CPU는 ARM7 S3C44BOX이고, wiggler 호환 jtag케이블에 물려서

플래쉬에 억세스하고 있습니다.

다른 모든것, 예를 들어 manufature ID, Device CODE, 블럭 lock status,

protect register 억세스(factory, user)등은 모두 정상적으로 잘 동작합니다.


28F160c3B는 전원리셋후 모든 블럭이 기본적으로 locked상태에 있습니다.

따라서 program이나 erase를 할려면 반드시 블럭을 먼저unlock을  해주어야

함을 잘 알고 계실 것입니다.



그런데, 문제는 28F160c3B의 블럭 unlocking을 실행하면

자꾸 command sequence error가 나온다는 것입니다.

즉, unlocking 명령인 60H쓰기하고 이후 D0H를 정상적으로 쓰기해도

status register를 읽어보면 B0H가 읽힙니다.

정상적인 경우는 80H가 되어야 하는데, 결과가 B0H(10110000)라는 것은

SR.4와 SSR.5가 비트 1이므로 comman sequence error가 발생했다는 것입니다



또 똑같은  command sequence errorr가 erase명령이후에도 발생합니다.

erase명령은 20H 쓰기후에 D0H쓰기인데, 공통적으로 D0H쓰기가 제대로 안되는 것일까요???



도저히 그 이유를 알 수 없습니다. 모든 게 정상적으로 동작하는 것 같은데

왜 유독 unlocking에서   command sequence error가 나오는지....

Vpp레벨과 WP#레벨도 확인 했습니다만 정상이었습니다.(둘다 3.3V)



혹시 여기에 대해서 알고 계신다면 답장을 부탁드립니다.

감사합니다.