[rasp.] GPIO 설정 (RPi vs. wiringPi)

Raspberry Pi B+ 와 FPGA를 연결할 계획에 있다. 

두 보드 간 통신을 위해 어떤 걸 사용할까 하다가.

GPIO를 이용한 parallel protocol을 직접 만들어 보려고 했다. 

그런데, GPIO의 속도가 그리 좋지 않았다. 

blog를 찾아 보니 language 별로 속도를 벤치마킹한 사이트가 있으니 링크를 참조.

http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

 

처음에는 기본 제공 하는 RPi GPIO 설정을 하려고 했는데.. 속도가 생각보다 별로 였다. 약 100kHz 정도

 

Blog에 보면 wiringPi가 속도가 괜찮다고 해서 굳이 wiringPi를 설치하여 속도를 확인해 봤다.

근데 역시.. python에서 사용을 해서 그런지 속도가 많이 나지 않는군… C로 하면 빠른 거 같은데.. 

이미 project 진행을 python으로 하기로 했으므로 pass~

 

아래 사진은 RPi.GPIO를 사용했을 때, wiringPi를 사용했을 때의  GPIO 실험 코드와 결과이다. 

 

RPi.GPIO

import RPi.GPIO as GPIO

 

GPIO.setmode(GPIO.BCM)

GPIO.setup(17,GPIO.OUT,initial=1)

GPIO.setup(17,GPIO.OUT)

GPIO.output(17,0)

while 1 :

    GPIO.output(17,0)

    GPIO.output(17,1)

 
 
 
다음은 wiringPi

import wiringpi

 

io = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_GPIO)

io.pinMode(17,io.OUTPUT)

io.digitalWrite(17,io.HIGH)

io.digitalWrite(17,io.LOW)

while 1:

    io.digitalWrite(17,io.LOW)

    io.digitalWrite(17,io.HIGH)

 

Leave a Reply