본문 바로가기
Embedded SW/[Infineon] Embedded SW Project

[Infineon] 21. Aurix (TC23x) SerialPlot을 이용하여 계측환경 구성

by 방구석 임베디드 2021. 6. 29.
반응형

엔코더를 통하여 속도를 측정하기 전에!

UART를 이용하여 Plot을 그려보도록 하자!

이제 제어로직을 돌릴 것이기 때문에 디버깅 환경을 구축하는 것은 중요하다.

그렇다면 지금부터 Serial Plot을 그려보도록 하자

https://hackaday.io/project/5334-serialplot-realtime-plotting-software

 

SerialPlot - Realtime Plotting Software

This is a Qt based software for plotting data from serial port in real time. IMPORTANT: instead of commenting please consider creating a ticket at issue tracker (https://todo.sr.ht/~hyozd/serialplot or https://github.com/hyOzd/serialplot/issues) Hackaday's

hackaday.io

여기서 아래것을 다운하였다.

이제 설치를 하도록 하자!

이제 설치를 했다면, 연결을 해보도록 하자!

void DrvAsc_Test1(void)
{
    static uint8_t TestCnt = 0u;
    
    g_AsclinAsc.count = 1;

    g_AsclinAsc.txData[0] = TestCnt++;
   
    /* Transmit data */
    IfxAsclin_Asc_write(&g_AsclinAsc.drivers.asc0, g_AsclinAsc.txData, &g_AsclinAsc.count, TIME_INFINITE);
}

위와 같이 TestCnt를 증가하도록 하고 이 API를 100ms마다 돌리도록 하자!

 

그리고 아래와 같이 UART를 통해 무선모듈에 전달하고 이것을 무선모듈에서 수신하여 컴퓨터로 넘겨 주었다.

그리고 SerialPlot을 연결하기 위해 아래와 같이 포트를 연결하고 Open을 누른다.

오케이 잘나오는 것을 확인할수 있다.

이제 자동차의 상태정보를 무선으로 컴퓨터로 전달할수 있고 그것을 그래프로 볼수 있게 되었다.

 

그렇다면 이제 1바이트를 전달하는 것이 아니라

2바이트의 변수를 2개 전달해 보도록 하자!

 

1바이트로 표현할수 있는 크기는 너무 작다.

적어도 나는 2바이트 변수를 (unsigned short) 디버깅 정보로 사용할것이다.

void DrvAsc_Test1(void)
{
    static uint16_t TestCnt1 = 0u;
    static uint16_t TestCnt2 = 50u;
    
    g_AsclinAsc.count = 4;

    TestCnt1++;
    TestCnt2++;

    g_AsclinAsc.txData[0] = (uint8_t)((TestCnt1 & 0xFF00) >> 8);
    g_AsclinAsc.txData[1] = (uint8_t)(TestCnt1 & 0x00FF);
    g_AsclinAsc.txData[2] = (uint8_t)((TestCnt2 & 0xFF00) >> 8);
    g_AsclinAsc.txData[3] = (uint8_t)(TestCnt2 & 0x00FF);
   
    /* Transmit data */
    IfxAsclin_Asc_write(&g_AsclinAsc.drivers.asc0, g_AsclinAsc.txData, &g_AsclinAsc.count, TIME_INFINITE);
}

위의 코드를 살펴보면, 먼저 Big Endian 전달하고 있습니다.  (즉 lower byte 가 큰 address에 할당되는 방식)

 

따라서 아래와 같이 설정을 합니다.

그러면 이제 2개의 변수가 잘 그래프로 나오는지를 확인해 보도록 하자!

아주 잘 나온는 것을 확인할수 있다.

오케이 이제 엔코더를 확인해 보도록 하자! 

반응형

댓글