안녕하세요. 오늘은 오실로스코프 트리거(trigger)에 대해 알아보겠습니다.
어떤 신호를 측정할 때 그 신호가 발생했을 때 그 신호를 측정할 때 사용하는 것입니다.
예를 들어 PWM, I2C, UART등등 신호를 측정할 때 사용합니다. 신호가 발생하는 게 어느 한순간이라 그때를 포착해서 파형을 보여주는 게 trigger 기능입니다.
일단 상승에지, 하강에지에 대해 알아야합니다.
상승에지는 LOW에서 HIGH로 변할 때 입니다.
하강에지는 HIGH에서 LOW로 변할 때 입니다.
오실로스코프는 모드의 종류가 3가지 있습니다. Auto(자동), normal(보통) , single(단발)
1.Auto mode
트리거 미사용입니다. 파형이 계속 찍힙니다.
신호는 1초마다 ON/OFF합니다
2. Normal, Signle mode
Normal, Signle mode를 사용하기 위해서는 설정을 해야합니다.
1) 에지:상승에지를 쓸껀지 하강에지를 쓸건지 선택합니다. 상승에지 or 하강에지가 발생하면 신호를 잡습니다.
2) 신호원 : 어떤 프로브 기준인지 정합니다.
3) TRIGGER LEVEL : 트리거 기준 전압을 정합니다. 만약 2V를 선택했고 하강에지를 선택했다면, 2V이상의 신호에서 2V아래로 떨어지는 순간 신호를 잡습니다.
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
|
#include<Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
pinMode(12,INPUT_PULLUP);
}
void loop() {
int i;
uint16_t i2c_received = 0;
if(digitalRead(12)==LOW)
{
Wire.beginTransmission(0x48);
Wire.write(0x00);
i = Wire.endTransmission();
if(i ==0)
{
Serial.println("success");
}
else
{
Serial.print("Error : ");
Serial.println(i);
}
}
}
|
cs |
코드설명 : https://wowon.tistory.com/226?category=615512
테스트할 코드입니다. I2C 신호이고, 버튼을 클릭했을때 I2C신호가 발생합니다
Normal 모드 : 트리거 조건에 맞는 신호가 발생하면 계속 신호를 잡습니다.
처음에는 버튼을 안누르고 있다가 버튼을 여러번 눌렀다땠다 했습니다. 트리거신호가 잡힐때마다 보여주는 모습입니다.
Trigger모드 : 트리거 조건에 맞는 신호가 발생하면 그 신호만 잡고 멈춥니다.
처음에Ready상태에서 대기하고 있다가, 버튼을 누르면 I2C신호를 잡고 Stop됩니다.
I2C의 Start신호는 SDA가 HIGH -> LOW일때 시작이므로 하강에지를 선택했습니다.