0
내가 spi_gpio 드라이버를 구성하고이 링크 Spidev do not write/read simultaneously using ioctl 같이 잘 작동이

, 나는 지금은 AT45DB321D 4 백만 무척 플래시와 통신하는 데 그 SPI 프로토콜을 사용하려면, SPI는 프로토콜이 잘 작동하는지 알게되었습니다. mtd_dataflash.c가 AT45DB321D의 데이터 시트를보고 내 장치와 동일하다는 것을 알았습니다. spi protocal과 mtd_dataflash.c하는 방법 ..?

내가 징하고있는 방법이 올바른지인가 ...?

어떻게 AT45DB321D 시리얼 플래시와 통신 할 수 SPI는이 드라이버를 매핑 할 수 있습니다 그렇다면 ...? 유용한 문서를 제공함으로써이 문제를 해결하도록 안내합니다. 나는 다음과 같은 코드에 의해 디바이스 ID를 읽을 수 있어요 및 /dev/spidev0.1

int ret = 0; 
int fd; 
unsigned char buff[10],buf[]={ 0x9F }, str[4]; 
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); 
if (ret == -1) 
    pabort("can't set bits per word"); 

ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); 
if (ret == -1) 
    pabort("can't get bits per word"); 

/* 
* max speed hz 
*/ 
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); 
if (ret == -1) 
    pabort("can't set max speed hz"); 

ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); 
if (ret == -1) 
    pabort("can't get max speed hz"); 
write(fd,buf,1); 
read(fd, buff,10); 
LPC178X_CS_HIGH; 
sprintf(str,"%02X%02X%02X\n",buff[0],buff[1],buff[2]); 
printf("Devce ID: "); 
puts(str); 
를 사용하여 :

편집을 할

(I는 uClinux는와 피질 - m3 LPC1788 개발 시인을 사용하고 있습니다) 내가 어떤 도움을 주시기 바랍니다 플래시 AT45DB321D 메모리에 데이터를 기록 할 수있는 방법을

제 질문은 ...?

답변

0

유용한 문서 및 제안은 항상 커널 소스에서 온다. SPI 프레임 워크의 작동 방식을 읽고 다른 개발자가 한 일을 살펴보십시오. 예를 들어, Atmel 9260mtd_dataflash를 등록하는 방법을 볼 수 있습니다. 모달 리어 필드는 장치를 드라이버와 일치시키기 위해 버스 인프라에서 사용됩니다. 다른 필드는 하드웨어에 따라 다릅니다.