티스토리 뷰

프로젝트/GPS

GPS - UART

Just4Fun 2023. 1. 28. 14:08

프로젝트에 사용하는 GPS 모듈은 UART 통신을 사용하므로 UART 블럭이 2개 이상 지원되는 마이크로컨트롤러를 사용하는것이 프로그램 디버깅에 편리하다.

따라서 이번 프로젝트에서는 UART가 2개 들어있는 Atmega128A를 사용한다.

Toolchain 설정

Atmega128A 프로젝트를 생성하고 CPU 클럭을 위 그림처럼 보드에 맞게 설정해 준다.  참고로 C++ 프로젝트로 진행할것이기 때문에 AVR/GNU C++ Compiler에서 Symbols를 선택하였지만, 만약 C 프로젝트라면 AVR/GNU C Compiler에 있는 Symbols를 선택한 후 F_CPU값을 입력해 주어야 한다.

프로젝트 생성이 끝나면 UART0는 디버깅을 위하여 baudrate 값을 115200로 설정하고, UART1은 GPS와 연결하기 위하여 9600으로 설정한다.

기본적인 설정이 끝났으면, 각각 수신된 데이터를 바로 되돌려주어 UART0과 UART1이 제대로 동작되는지 확인한다.

#include "uart.h"

Uart    uart0(UART0, 115200);
Uart    uart1(UART1, 9600);

void setup()
{
}

void loop()
{
    uart0.putchar(uart0.getchar());
}

int main(void)
{
    setup();

    while (1) 
        loop();
}

위와 같이 코딩한 다음 실행 시켜 UART0의 정상동작 여부를 확인한다.

UART0 화면

키보드의 아무키나 눌러 누른키값이 화면에 제대로 출력 되는지 확인한다.

UART0이 문제 없는지 확인한 다음 UART1에 대해서도 같은 방법으로 확인한다.

void loop()
{
    uart1.putchar(uart1.getchar());
}

콘솔창의 baudrate를 9600으로 변경한 후 같은 방법으로 UART1의 동작을 확인한다.

UART0과 UART1의 정상 동작을 확인하였다면, 

UART1에 GPS 모듈을 연결하고 코드를 아래와 같이 만든다.

void loop()
{
    uart0.putchar(uart1.getchar());
}

다시 콘솔프로그램의 baudrate를 115200으로 변경한 후 UART0에 연결한다.

GPS모듈에서 송신하는 데이터가 콘솔창에 바로 출력되는것을 볼수 있다.

이로써 기본적인 GPS 디버깅 환경이 갖추어졌으므로 다음 단계로 넘어갈 수 있다.

gps.zip
0.00MB

'프로젝트 > GPS' 카테고리의 다른 글

GPS - NAV:POSLLH  (0) 2023.01.28
GPS - NAV:TIMEUTC  (0) 2023.01.28
GPS - CFG:PRT  (0) 2023.01.28
GPS - UBX  (0) 2023.01.28
GPS - 사전 준비  (0) 2023.01.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함