본문 바로가기

Study_Embedded/[오제이 튜브의 임베디드 실전 강의]

[오제이 튜브의 임베디드 실전 강의] 12강 오실로스코프 사용방법 + 멀티미터기 사용방법

728x90
반응형

- 12강 목표 : 오실로스코프와 멀티미터기의 기본적 사용방법 공부

오실로스코프(왼쪽)와 멀티미터(오른쪽)

1) 멀티미터 사용방법

  • 위의 멀티미터는 AC/DC 전압만 측정 가능(전류 측정 불가능)

1-1) AC 측정

  • 왼쪽 사진처럼 아래의 스위치를 ACV로 돌려 AC 전압 측정 설정
  • 오른쪽 사진처럼 측정하고자 하는 곳 양쪽에 프로브를 물려 전압 측정
  • 고압의  AC전압 측정시 감전될 수도 있으므로 조심해서 측정할 것. 두 선을 붙이면 쇼트가 나므로 위험 (위의 경우는 220V)
  • 전압이 흐르는지 여부를 확인할 수 있음
  • 합선나면 큰 열이 발생함

1-2) DC 측정

  • DCV 측정은 임베디드 개발을 하며 매우 자주 함. ex) GPIO는 5V -> 실제로 5V가 뜨는지를 확인

  • 5V의 DCV를 출력한다고 표시되어있는 어답타의 실제 출력 전압 측정
  • 빨간색 프로브를 +에, 검은색을 -에 연결
  • 위의 경우 극성을 반대로 연결하여 측정값이 음수로 나옴. DCV의 경우 전원을 반대로 인가하면 기계가 망가지므로 +,- 미리 확인 필요

 

  • 전류는 직류의 경우 전선의 중간을 끊고 위 사진처럼 양쪽을 연결하여 측정

1-3) 전지 측정

전지의 앞쪽이 +, 뒤쪽이-

  • 3V의 전지 측정

1-4) Short test

  • 멀티미터의 레버를 맨 아래쪽으로 돌려 Short test 모드로 설정
    • 두 probe가 서로 short될 경우 -삐 소리가 남

  • Probe 하나를 보드 상의 PA3 핀에 연결
  • 나머지 Probe 하나를 보드 중앙 MCU 상의 핀들에 돌아가며 연결 
    • -삐 소리가 나는 핀이 PA3

1-5) 옴 테스터기 활용 저항 측정

옴 테스터 설정 후 저항 측정

  • 보드 상의 저항 (R로 써져있는 부분)의 양 끝에 프로브를 연결하여 저항(10k) 측정
  • 온도에 따라 저항 값이 변하는 온도 센서 등의 테스트에 사용
  • 단 옴 테스터는 정교하지 않아 전압이 잘 흐르는 지 정도만 확인

1-6) GPIO 5V 측정

GPIO PA3을 제어

1-6-1) Pin 설정

PA3 핀을 GPIO Output으로 설정

 

#define GPIO_TEST_Pin GPIO_PIN_3
#define GPIO_TEST_GPIO_Port GPIOA

while (1)
{
    HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 1);
    HAL_Delay(100);
    HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 0);
    HAL_Delay(100);
    ...
    ...
}
  • PA3 핀을 100ms 간격으로 키고 끄는 코드

1-6-2) 테스터기 연결

  • 점퍼선을 통해 보드 상의 3V와 GND를 연결 후 VDC로 측정

1-6-3) Debug 실행 후 전압 측정

  • GND는 유지하고 PA3 핀에 점퍼선을 연결 후 Debug 실행
    • HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 1); 에서는 전압이 5V
    • HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 0); 에서는 전압이 0V
  • HAL_GPIO_WritePin 사이의 delay를 1초로 변경한 후 테스터기로 확인
위 과정이 GPIO를 통한 전압 제어를 멀티미터기로 확인하는 방법

1- 7) 정리

  • 전압 측정 (+, - 극 구분)
  • Short test (-삐 소리) 활용 PA3 연결 지점 확인
    • 보드 바깥쪽의 핀과 칩 상의 핀을 연결

2) 오실로스코프 사용방법

  • 위 프로브의 검은 색 부분이 GND 연결부, 회색 부분이 측정부

2-1) 오실로스코프 활용 5V 측정

  • 오실로스코프 활용 위의 1초마다 5V 출력 확인
  • 검은 색 부분을 GND에, 회색 부분을 PA3 핀에 연결

2-1-1) 오실로스코프 설정

  • 노란색 선(X Cursor)를 아래로 옮김

 

  • 우측 상단의 'CTRL' 클릭

 

'V- 클릭 전(좌측) / 후(우측)

  • 'V-' 클릭 : 전압의 폭이 작아짐
    • 한 칸의 단위가 달라짐
    • 좌측 상단의 값을 통해 한 칸 당의 전압 값 확인 가능
위 과정이 오실로스코프를 통해 GPIO의 정상 제어 여부를 확인하는 방법

 

  • 단 오실로스코프는 위 경우보단 클럭이나 통신 상태를 보는데 많이 사용

 

while (1)
{
    HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 1);
    HAL_Delay(1);
    HAL_GPIO_WritePin(GPIO_TEST_GPIO_Port, GPIO_TEST_Pin, 0);
    HAL_Delay(1);
    ...
    ...
}
  • 기존의 HAL_Delay(100)을 HAL_Delay(1)로 변경 후 오실로스코프 확인

  • 보통 Clock 신호가 위처럼 생김

  • 위 상태에서 좌측의 CTRL -> AutoSet을 눌러 파형의 크기를 키울 수 있음
  • 한 칸이 2V : 위 신호는 약 3.7V 정도
    • 가로 선은 시간, 세로 선은 전압
  • 위의 Clock 하나 당 Packet이 나감
    • 새로운 Probe를 연결 해 통신 Packet 확인 가능

3) SPI 통신 만들기

3-1) SPI 핀, Mode 설정

SPI 사용 Pin

  • STM32F103RC Datasheet에서 "SPI" 검색

  • STM32CubeMX에서 SPI 핀 지정
    • PA5 : SPI1_SCK
    • PA6 : SPI1_MISO
    • PA7 : SPI1_MOSI

  • Connectivity -> SPI1 진입
  • Mode : Full-Duplex Master 설정
  • 코드 생성
... ...
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_SPI1_Init();    // 새로 추가
/* USER CODE BEGIN 2 */
  • 코드 내에 SPI1 관련 코드가 생성됨

3-2) 코드 작성

char data[10] = {'a', 'b'};

while (1)
{
    HAL_SPI_Transmit(&hspi1, pData, Size, Timeout);
    HAL_Delay(100);
    ...
    ...
}
  • 100ms 단위로 a, b를 상대에게 보내는 코드 작성 후 실행

3-3) 오실로스코프 활용 SPI Clock 확인

  • PA5 (SPI1_SCK) 핀에 Probe 연결
  • 우측 상단에서 Trigger 설정
    • Trigger : 일정 이상의 전압이 올라가면 그 순간을 기준으로 해 어느 정도 범위의 측정된 전압 값을 잡게 설정
      (뒤 강의에서 자세히 설명)
    • Rising 설정 : 전압이 올라오는 순간을 포착
  • 설정 완료 후 Run 클릭 : 전압이 한번이라도 올라오면 그를 포착
  • 시간 간격 축소

Clock 파형 확인

  • HAL_SPI_Transmit(&hspi1, pData, Size, Timeout); 코드 실행 시 PA5 핀에서 Clock이 나감
  • 총 8개의 Clock 파형 생성
    • SPI 통신은 한번에 8bit를 보냄을 알 수 있음
  • 새로 축 3칸 : Clock의 파형은 3V
위 과정이 오실로스코프를 통해 Clock 파형이 생성됨을 확인하는 것
  • Debugging 시 위처럼 Clock 파형 생성 여부를 확인할 일이 많음

3-4) 오실로스코프 활용 SPI Data 확인

  • PA6 : SPI1_MISO (Master In, Slave Out)
  • PA7 : SPI1_MOSI (Master Out, Slave Out)
    • Master Chip에서 Data가 나가는 핀
  • PA7 핀에 Probe 연결
  • 우측 CTRL 진입 후 전압 간격을 50V로 설정 후 오실로스코프의 Run 클릭

SPI Data 신호 확인(파란색 신호)

 

위의 Clock, Data 신호 확인을 위해 오실로스코프를 사용

 

3-5) PC 연결 통해 파형 분석

  • 좌측 상단 "Menu" 클릭 후 "USB Connection" 클릭

 

  • PC에서 USB 드라이브 진입 후 파형 확인
  • 어떤 식으로 Data가 오는지 확인 가능
  • 8개의 Clock 파형 (노란색)
  • 0110 0001 data 전달 (파란색)
    • Clock 신호가 HIGH인 순간의 신호가 SPI Data

3-5-1) Data 분석

  • ASCII Table 확인
    • a : 0x61 = 0110 0001
  • Ethernet 등의 통신도 위처럼 Data를 전달함
위처럼 전압을 통한 Data 전달을 확인하기 위해 오실로스코프를 사용

 

 

 

 

 


위 내용의 모든 출처는 유튜버 '[오제이 튜브]OJ Tube' 님께 있습니다.

https://www.youtube.com/watch?v=BrMncz-bHpg&list=PLz--ENLG_8TNjRg1OtyFBvUyV4PHaKwmu&index=15

 

728x90
반응형