라즈베리파이 spi 통신 예제

Cód: --- | Fabricante: ---
Publicado em: Sem categoria

SPI는 마스터 슬레이브 아키텍처를 사용합니다. 마스터 장치는 슬레이브와의 모든 통신을 시작하고 제어합니다. SPI 통신은 두 장치 간의 데이터 전송이 공유 클럭 신호에 의해 동기화된다는 것을 의미합니다. SPI 통신은 또한 전이중이므로 데이터가 양방향으로 동시에 흐를 수 있습니다. 나는 약간의 오류를 발견했다 : 메인 기사에서 예제 코드를 확인하시기 바랍니다 : 라즈베리 파이에 대한 소프트웨어 풍경은 Pi의 도입 이후 상당히 진화했다. 많은 다른 운영 체제가 Pi로 이식되었으며 장치 드라이버 인프라도 상당히 변경되었습니다. 훌륭한 기사와 예. 나는 A / D 샘플을 얻기 위해 마이크로 칩 PIC와 통신하기 위해 지금 사용하기 시작했다. PIC는 A/D에 대한 일반 지터 무료 타이밍을 생성하고 PI가 준비될 때까지 데이터를 버퍼링합니다. SPI 🙂 사용하여 전송합니다.

이 기사와 배선PI는 정말 내가 빨리 시작하고 실행하는 데 도움이되었습니다. 감사합니다. 시계 및 데이터 라인에 대 한 명명 및 라벨은 라즈베리 파이와 아두 이노에 대 한 동일: SPI를 포함 하도록 요청 했습니다 (그리고 I2C – 곧 에 대 한 자세한) 내 배선에 라즈베리 파이 대 한 지원… 그러나 어떤 SPI 장치를 연결할 지 정확히 예측하기가 어렵기 때문에 특정 기능을 제공하기가 어렵기 때문에 라이브러리에서 몇 가지 “도우미”함수와 SPI 사용 방법에 대한 가이드를 제공합니다. 이 튜토리얼은 개발 및 라즈베리 파이 모델 B와 라즈베리 파이를 사용 하 여 테스트 2 표준 Raspian 리눅스 배포판을 실행. 예제는 현재 라즈베리 파이 모델에 수정 하지 않고 작동 해야. 나는 SSH를 통해 리눅스 PC의 터미널에서 연결 (모니터 또는 키보드없이) 내 Raspi “헤드리스”를 실행, 그래서 거의 모든 내 상호 작용은 명령 줄에있다. 예제의 코드는 C++로 작성되고 GNU 컴파일러 컬렉션(GCC)을 사용하여 컴파일됩니다. GCC는 Raspian 배포판의 일부이며 따라서 설치 또는 구성없이 사용할 수 있어야합니다. 여기에 있는 모든 예제는 매우 간단한 명령줄 구문을 사용하여 컴파일할 수 있습니다. spidev 장치 드라이버는 ioctl을 통해 SPI 하드웨어와 정보를 전달하기 위한 인터페이스를 제공합니다.

실제로 데이터를 전송하고 받기 전에 다음 단계는 세션에 대한 구성 옵션을 설정하는 것입니다. spidev 드라이버는 클럭 극성 및 클럭 위상에 대한 SPI 모드, 전송된 단어의 비트 너비, 전송 비트 순서 및 최대 전송 속도를 포함하는 다양한 SPI 옵션을 설정/재정의하는 기능을 제공합니다. 대부분의 경우, 라즈베리 파이 아두 이노 통신 프로젝트는 라즈베리 파이의 기본 설정을 사용: SPI 모드 0, 8 단어 당 비트, 그리고 가장 중요 한 비트 먼저. (명확히 하기 위해, 이들은 실제로 브로드 콤 SPI 주변 하드웨어 자체의 기본 설정입니다.) 이 자습서를 개발하는 데 사용되는 “Arduino”는 브레드보드의 베어본 구성의 ATMEGA328P-PU입니다. 설정은 진정으로 베어본입니다. 전압 조절기 또는 외부 클럭 크리스탈이 없으며 Raspi의 3.3v 탭으로 구동되는 칩과 리셋 핀을 높게 당기는 10K 저항기만 있습니다. (물론 전원 레일에 몇 개의 분리 커패시터를 두는 것은 다치지 않을 것입니다.) 회로의 매혹적인 단순함과 검소성 외에도 베어본 구성은 라즈베리 파이에 연결하는 데 이상적입니다. 3.3v 작동 Raspi 친화적 일뿐만 아니라, 전압 레귤레이터 및 크리스탈을 사용하면 3.3v 라인에서 50mA 제한이있는 오래된 Pis에서 특히 중요한 전체 전력 소비를 크게 줄입니다.

양방향 또는 “3 선”모드는 spi-bcm2835 커널 모듈에 의해 지원됩니다. 이 모드에서는 s_transfer 구조체의 tx 또는 rx 필드가 NULL 포인터여야 합니다.

Compartilhe