[Aurix TC275] SerialPlot

사이킷·2025년 1월 19일

AURIX MCU

목록 보기
10/13

지금까지 공부했던 ADC UART 를 사용해보겠다.
UART를 통해 potetionmeter로 연결된 전압의 ADC 변환결과를 전달해서
SerialPlot 이란 프로그램을 사용해 실시간으로 Plot을 그려보겠다.

다운로드 링크

https://web.archive.org/web/20240716233608/https://serialplot.ozderya.net/downloads/serialplot-0.12.0-win32-setup.exe

SerialPlot 홈페이지에서는 다운이 안된다. 해당 링크에서 SerialPlot을 다운받아야한다.

소스코드

void Driver_Asc0_TxTest(void)
{
    g_AsclinAsc.count = 2;

    uint16 adcResult = adcDataResult[0];

    g_AsclinAsc.txData[0] = (uint8)((adcResult & 0xFF00) >> 8);
    g_AsclinAsc.txData[1] = (uint8)(adcResult & 0x00FF);

    IfxAsclin_Asc_write(&g_AsclinAsc.drivers.asc0, g_AsclinAsc.txData, &g_AsclinAsc.count, TIME_INFINITE);
}

ADC 변환 결과인 adcDataResult[0] 을 UART 데이터 프레임에 담는다.
한 데이터당 8비트이므로 16비트의 데이터를 반반 나눠서 담는다.

SerialPlot 설정


16비트 이므로 Number Type을 uint16으로 바꾼다.
다음으로 Endianness 를 Big Endian 으로 바꾼다.

Big Endian? Little Endian?

빅엔디안 (Big-Endian)

가장 큰(상위) 바이트를 메모리의 낮은 주소(Low Address)에 저장하는 방식이다.
사람이 숫자를 읽는 방식과 유사하다.
예: 0x12345678 → 메모리 저장 순서: [12][34] [56][78]

리틀엔디안 (Little-Endian)

가장 작은(하위) 바이트를 메모리의 낮은 주소에 저장하는 방식이다.
대부분의 현대적인 컴퓨터 아키텍처(예: x86, ARM)에서 사용한다.
예: 0x12345678 → 메모리 저장 순서: [78][56] [34][12]

데이터를 담을때 상위 바이트를 먼저 담아 전송했으니 Big endian 으로 바꾸는것이다.

확인

Potentialmeter를 돌렸을때 바뀐 ADC Conversion 값이 정상적으로 Plotting 되는것을 확인할 수 있었다.

profile
공부한거 정리, 잘못된 정보 태클은 언제나 환영입니다.

0개의 댓글