dataTransfer.ino

overview

  1. 시리얼 통신을 통해 비트스트림을 컴퓨터로부터 받아오고 그 스트림을 칩에 보낸다.

  2. 실행 환경: 아두이노 우노, SPI.h 모듈 필요(웬만해선 아두이노 ide 설치할 때 기본으로 깔려있음)

  3. 프로그램 실행순서

    step1

    변수, 핀, 통신 초기화

    step2

    컴퓨터에서 시리얼 통신으로 데이터가 올 때 까지 대기

    step3

    받은 값 컴퓨터에 재전송(재대로 받았는 지 확인하기 위해서)

    step4

    받아온 비트스트림을 SPI통신을 통해 칩으로 전송

    step5

    컴퓨터에 SPI통신이 끝났음을 알림

    step6

    step2로 돌아감

CLK, DATA, EN, RST핀

  1. CLK: 13번핀, DATA: 11번핀, EN: 10번핀, RST: 9번핀

  2. 초기 상태 -> CLK : IDLE, DATA: X, EN: LOW, RST: LOW

  3. SPI 통신단계

    step1

    통신시작 전 RST핀에서 펄스 출력

    step2

    EN핀을 HIGH로 올리고 데이터 전송 시작

    step3

    데이터 전송 후 EN핀을 LOW로 내리고 통신 끝

수정해줘야 하는 변수

  1. _MAXBYTES:
    • 한번에 보내고 싶은 최대 바이트 수

    • 최대 255까지 가능( 더 늘리고 싶다면 코드를 수정해야 함)

  2. SPI_MODE:
    • clk의 idle 값, falling/rising edge transfer 를 정할 수 있다.

    • SPI_MODE0: CLK idle = low, bit transfer = rising edge

    • SPI_MODE1: CLK idle = low, bit transfer = falling edge

    • SPI_MODE2: CLK idle = HIGH, bit transfer = falling edge

    • SPI_MODE3: CLK idle = HIGH, bit transfer = rising edge

  3. MSBFIRST/LSBFIRST:
    • most/least significant bit first