반응형

SPI는 디폴트로 활성화가 안되어 있기 때문에 raspi-config 명령을 이용하여 활성화 시켜주는 작업이 필요합니다.

1
pi@raspberrypi:~ $ sudo raspi-config
cs

"7 Adavnced Options"를 선택합니다.


"A6 SPI"를 선택합니다.


Yes를 선택합니다. 잠시후 SPI가 활성화 되었다는 메시지가 보입니다.


Finish를 선택하여 설정 프로그램에서 빠져나옵니다.


태스트에 사용할 spidev_test.c 파일을 다운로드 받습니다.

1
pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/opennetworklinux/linux-3.8.13/master/Documentation/spi/spidev_test.c
cs

편집기로 열어서 1.1을 지우고 

1
static const char *device = "/dev/spidev1.1";
cs

0.0으로 다시 적습니다.
1
static const char *device = "/dev/spidev0.0";
cs

컴파일 후, 실행시켜보면 00만 출력됩니다.spi에 연결된 디바이스가 없기 때문입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
pi@raspberrypi:~ $ gcc spidev_test.c 
pi@raspberrypi:~ $ ./a.out 
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 
cs

  

SPI 출력을 SPI 입력으로 연결하기 위해 19번핀과 21번핀을 연결해줍니다.


spi 출력으로 보내졌던 데이터를 spi입력에서 받아서 아래처럼 값을 출력해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
pi@raspberrypi:~ $ ./a.out 
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
 
FF FF FF FF FF FF 
40 00 00 00 00 95 
FF FF FF FF FF FF 
FF FF FF FF FF FF 
FF FF FF FF FF FF 
DE AD BE EF BA AD 
F0 0D 
cs

위에서 출력된 값은 spidev_test.c 를 열어보면 출력을 위해 배열에 저장했던 값임을 알 수 있습니다.


반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts