linux spi 통신 예제

이 예제에서는 PB9 칩 선택에 의해 제어되는 STM32F7의 SPI2 버스에 연결된 단일 SPI 플래시 장치가 있다고 가정합니다. 두 개의 파티션이있는 Linux MTD 장치로이 SPI 플래시에 액세스 해 보겠습니다. 이 구성의 경우 dts 파일은 위에서 설명한 대로 프로젝트 구성을 업데이트한 후 프로젝트 디렉터리에서 make를 실행하여 부팅 가능한 Linux 이미지(.uImage)를 빌드합니다. 호환 되는 속성은 클라이언트 SPI 장치 드라이버에 대 한 링크를 제공 합니다., 특정 SPI 장치를 서비스 하는 커널에 의해 사용 됩니다. 위의 예에서 클라이언트 SPI 장치 드라이버는 LINUX MTD 장치로 SPI 장치에 대한 액세스를 제공하는 MTD_M25P80(호환 = “spi-nor” ;)입니다. 커널에서 이 인터페이스를 활성화하기 위해 rootfs 프로젝트에는 CONFIG_MTD_M25P80 옵션이 기본적으로 활성화되어 있습니다. 이 자습서를 따르십시오: 리눅스 커널을 교차 하는 방법과 그 안에 사용 하도록 드라이버를 구성 하는 방법을 알고 소스에서 리눅스 커널을 컴파일. 이 경우 이름 /dev32766.0은 SPI 장치 SPI (동기 주변 인터페이스)와의 통신을 관리하는 데 사용하는 파일 이름이며 ADC, EEPROMS, 센서 또는 기타 와 같은 주변 칩을 연결하는 동기 직렬 인터페이스입니다. 마이크로 컨트롤러. SPI는 마스터 및 슬레이브 모드에서 작동하며 마스터는 클럭 신호를 제공하고 각 슬레이브에는 전용 칩셀렉션이 있습니다. AT91SAM9 기반 장치에서는 Linux 드라이버가 제공됩니다. 대부분의 주변 칩은 슬레이브이기 때문에 이 드라이버는 마스터 모드에서만 작동합니다. CLK, MISO (마스터 인, 슬레이브 아웃), MOSI (마스터 아웃, 슬레이브 인) 및 칩 셀렉트 : 네 개의 신호가 필요합니다 스파이 칩을 연결합니다.

이 방법은 SPI 사용자 모드 장치 드라이버(spi-dev)를 구성하고 사용하는 방법을 설명합니다. 위에서 설명한 대로 커널에 SPI 장치의 채우기를 정의하면 칩 선택 0의 SPI4에 SPIDEV 장치가 있습니다. SPIDEV API를 통해 장치에 액세스하려면 응용 프로그램 코드가 대상에서 열 수 있는 장치 노드를 만들어야 합니다. 대상에 장치 노드를 만드는 가장 쉬운 방법은 mdev -s. mdev에 대한 호출을 발행하는 것입니다 .s. mdev는 시스템에 존재하는 장치에 대응하는 장치 파일로 /dev 디렉토리를 채우는 데 사용할 수있는 사용자 공간 리눅스 유틸리티입니다.