안녕하세요. 아래 SPI EEPROM 관련해서 질문올린 사람입니다.

답변이 없어서 다른 방식으로 다시 글 올려봅니다.

PXA에서 SSP를 사용하기 위해 kernel2.6/spi/pxa2xx_spi.c , spi.c 드라이버를 사용하고 있습니다.

이 드라이버에서 제공하는 함수중에 spi_write 함수가 있습니다.

제가 사용하는 at25f4096 칩은 8비트 짜리 read 명령을 받으면 8bit 짜리 데이터를 출력해줍니다.

그래서 spi_write 함수를 이용하여 8비트 read명령과 8bit 더미 비트를 합친 16 비트를 write하도록 명령을 주었습니다.

스코프로 보았을때 8bit read 명령이 write(SI) 된 후에 8bit 데이터가 SO 신호를 타고 나오는 것을 확인하였습니다.

하지만 SSSR 레지스터를 읽어보면 f004 에서 f024로 설정만 됩니다.

즉 Rx 된  데이터(RNE = 0 )가 없는것처럼 나옵니다.

왜그런가요? 연속 write 하기 위한 조건이 따로 있는것인가요? 연속 write가 아닌 8비트를 write 해주며 안되는건가요?

제 생각엔 두번의 write가 나가면서 FRM(CS)가 중간에 뜨면 안되는데 8bit 와 8bit 사이에 떠서 그런것 같습니다.

해결방법은 무엇인가요?