Search Results for '라즈베리파이'

3 POSTS

  1. 2016.10.05 라즈베리파이-UART
  2. 2016.09.07 라즈베리파이3-GPIO
  3. 2016.09.04 라즈베리파이2-SPI통신

라즈베리파이-UART

Posted 2016.10.05 14:49

라즈베리파이2로 진행


일단 프로그램으로 들어가기 전에 라즈베리파이 setting상태를 점검해보자.

Raspberry Pi는 기본적으로 UART를 콘솔이 사용하도록 설정되어 있다.

제어 프로그램이 UART를 사용하려면 콘솔이UART를 잡고 있지 않도록 설정해 줄 필요가 있다.

현재 사용하고 있는 STM32보드와 시리얼 통신을 해보자.

1. cmdline.txt 파일 수정 : SD를 열어보면

 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

으로 설정되어있다. 'console=ttyAMA0,115200' 부분을 삭제해준다.

2./etc/inittab 파일도 수정

 $sudo nano /etc/inittab

'ttyAMA0'가 있는 라인 맨 앞줄에 #을 붙여준 후 저장 -> 수정 후 나가기(Ctrl+x)  - >저장  y 엔터

$sudo reboot

테스트 프로그램을 작성해보자.

wringPI 기반으로 작업하였다.

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <wiringPi.h>
#include <wiringSerial.h>

int main ()
{
  int fd ;
  int count ;
  unsigned int nextTime ;

  if ((fd = serialOpen ("/dev/ttyAMA0", 9600)) < 0)
  {
    fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
    return 1 ;
  }

  if (wiringPiSetup () == -1)
  {
    fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
    return 1 ;
  }

  nextTime = millis () + 300 ;

  for (count = 0 ; count < 256 ; )
  {
    if (millis () > nextTime)
    {
      printf ("\nOut: %3d: ", count);
      fflush (stdout);
      serialPutchar (fd, count);
      nextTime += 300;
      ++count;
    }

    delay (3) ;

    while (serialDataAvail (fd))
    {
      printf (" -> %3d", serialGetchar (fd)) ;
      fflush (stdout);
    }
  }

  printf ("\n");
  return 0;
}

Write your message and submit

라즈베리파이3-GPIO

Posted 2016.09.07 00:37

라즈베리파이3 에서 gpio test

일단 주의사항 숙지

gpio는 3.3v회로만 구성해야 하고 최대 30mA전류를 사용 할 수 있고 과전압 과전류 보호회로는 구성이 필요하고 버전별로 핀배열이 다르다!

gpio readall 자신의 라즈베리파이의 gpio확인

git clone git://git.drogon.net/wiringPi

wiringPi 프로젝트를 다운 받는다.

cd wiringPi

./build //설치

gpio readall을 실행해보면 아래와 같다.




프로그램 작성 gpio_test.c 에 간단한 gpio read/write 를 작성하고 printf로 출력창에 상태 확인.



컴파일 gcc -o gpio_test gpio_test.c -lwiringPi
실행 sudo ./ gpio_test

해서 printf로 입력 값 읽고 출력은 테스터기로 전압을 체크해서 테스트 해본다.




Write your message and submit

라즈베리파이2-SPI통신

Posted 2016.09.04 02:51

라즈베리파이에서 SPI통신하기

개발하다보면 해봤던 일도 헷갈리고 삽질하는 시간이 생기기 마련이다.그래서 매번 정리해놔야지 하고 해결되면 또다른 바쁨 들로 지나가고 많은 시간이 지나고 또 필요할 일이 생기면 가물거리는 뇌를 탓하며 소모되가는 자신을 발견하며 또 시간을 소비하곤 한다.
잠깐 깨어있는 틈을 타 빠르게 기록해놓기로 한다.

요즘 stm32로 개발 진행을 하고 있는데 라즈베리파이와 spi통신 개통이 필요하여 잠깐 작업에 들어갔다.

sudo raspi-config //설정으로

Advanced Options

SPI선택 enable을 물어보면 yes를 선택

finish를 선택해 저장하고 재부팅

dmesg | grep SPI

spidev_test.c를 다운

wget https://raw.githubusercontent.com/opennetworklinux/linux-3.8.13/master/Documentation/spi/spidev_test.c

소스상에 아래와 같이 한줄 수정

static const char *device = "/dev/spidev0.0";

컴파일 프로그램 명령을 내린다 아래와 같이.

gcc spidev_test.c

자체적으로 spi 데이터 출력을 확인 해보기 위해

19번핀과 21번핀을 점퍼 케이블로 연결해주고 컴파일한

것을 실행.



이제 라즈베리파이에서 SPI통신 개통을 마치고.

라즈베리파이가 master , STM32F103을 slave설정하여 테스트 하였는데 그부분은 다음에 정리하여 올리기로.

라즈베리파이 3에서도 테스트.동일하게 적용된다.

Write your message and submit