Arduino 와 DE2-115 보드를 활용하여 2 종간 GPIO 를 실습한다.
[GPIO]
[led.ino]
외부로 부터 입력을 받아 LED를 1ms 마다 점등하는 아두이노 코드는 다음과 같다.
더보기
/////led-------------------------------------/////
int ledPout = 13;
int inPin = 2;
int pushBt = 0;
/////-----------------------------------------/////
void setup() {
pinMode(ledPout, OUTPUT);
pinMode(inPin, INPUT);
}
/////-----------------------------------------/////
void loop() {
pushBt = digitalRead(inPin);
ledOnOff(pushBt);
}
/////-----------------------------------------/////
void ledOnOff(int on){
if (on == 1) {
for (int i = 0; i < 8; i++) {
delay(1);
digitalWrite(ledPout, 1);
delay(1);
digitalWrite(ledPout, 0);
}
}
}
[Block Diagram]
FPGA 프로젝트는 지난 DEII-115 Lab.1 실습을 수행한 후 시작한다.
Clock Divider clk_gen.v 과 GPIO 의 입출력 Buffer bf.v 의 Verilog Code 는 다음 과 같다.
[clk_gen.v]
더보기
/////clk_lk----------------------------------/////
/////----------------------------------------/////
always @(posedge clk, negedge rst_n) begin
if (rst_n == 0) begin
cnt_1k <= 17'd0;
clk_1k <= 1'b1;
end
else begin
if (en == 1) begin
if (cnt_1k == 17'd0) begin
cnt_1k <= 17'd24999;
clk_1k <= ~clk_1k;
end
else begin
cnt_1k <= cnt_1k - 1'b1;
end
end
else begin
cnt_1k <= 17'd0;
clk_1k <= 1'b1;
end
end
end
[bf.v]
더보기
/////bf--------------------------------------/////
/////----------------------------------------/////
always @(posedge clk, negedge rst_n) begin
if (rst_n == 0) begin
ex_out <= 1'b0;
led_out <= 1'b0;
end
else begin
ex_out <= bt_in;
led_out <= ex_in;
end
end
[Pin Assign]
[Test Result]
회로를 구성하고 이를 테스트 하면 LED 가 점등 됨을 알 수 있다.
Arduino, FPGA Board 등, 2 종간 신호 처리 개념을 실습한다.
2 종간 회로 결선 시 Power OFF 하고 Ground 확인하며 디바이스의 Operating Voltage 를 확인하고 다를 경우 Logic level convertor 를 이용하여 Signal level 을 맞춰준다.
[참조]
https://www.arduino.cc/reference/en/
pinMode(pin, mode) | Configures the specified pin to behave either as an input or an output |
digitalRead(pin) | Reads the value from a specified digital pin, either HIGH or LOW |
digitalWrite(pin, value) | Write a HIGH or a LOW value to a digital pin |
'찐s > Arduino' 카테고리의 다른 글
[Arduino] Lab.3-1: Analog input (0) | 2020.10.17 |
---|---|
[Arduino] Lab.2-3: Interrupt (0) | 2020.08.22 |
[Arduino] Lab.2-1: Digital Input (0) | 2020.08.09 |
[Arduino] Lab.1: Serial Monitor (0) | 2020.08.08 |