FSM 4

Vivado : Basys3 종합 시계 프로젝트 (타이머, 스톱워치, 시계)

이번에는 여러 기능을 갖춘 종합 시계 프로젝트를 진행하려고 한다.종합 시계 프로젝트 구현할 종합시계의 기능은 일반 시계 기능, 스톱워치 기능 그리고 타이머 기능을 갖는다. 일반 시계 기능에서는 분과 초를 제어할 수 있으며 59분 59초가 넘을 시 00분 00초로 다시 리셋이 되는 특징을 지닌다. 스톱워치 기능에서는 기본적으로 ms단위로 시계가 흐르며, Lap 기능을 갖추어 원하는 시간에 동작을 멈춘 후, 멈춘 시간으로부터 Lap을 해제할 때까지의 시간을 잴 수 있다. 타이머 기능에서는 초와 분을 설정하여, 설정된 시간으로부터 00분 00초가 될 때까지의 타이머 기능을 구현한다. 타이머가 00분 00초가 되었을 때에는 부저가 울리며, 외부의 스위치로 부저를 제어할 수 있다.타이머타이머를 동작시킬 코드는 아..

Language/Verilog 2024.07.30

Vivado : 온도 습도 센서

온/습도 센서 이번에는 온습도 센서를 사용할려고자 한다. 온습도 센서는 DHT11 모듈을 사용하여 진행할 예정이며, 모듈의 회로 구성은 아래와 같다.  온/습도 센서의 총 동작도는 아래와 같다. MCU 시그널이 주어진 후 센서의 신호가 응답하는 방식으로 진행된다.   아래 그림은 MCU가 시작 신호를 보낸 후에 DHT 센서의 응답 과정을 나타낸다. 온습도센서가 MCU의 신호를 감지 후, MCU를 감지하려면 최소 18ms의 시간이 소요된다. 그러고 난 후 20~40us만큼 센서의 응답을 기다린다. DHT가 시작 신호를 감지하면 저전압레벨의 응답신호를 80us 간 보낸다. 응답 신호를 보낸 후, 센서는 데이터 전송을 위해서 데이터 단일 버스 전압레벨을 저에서 고로 설정하고 80us동안 유지한다. 그다음 모듈..

Language/Verilog 2024.07.25

Vivado : 키패드

키패드이번에는 16개의 버튼이 달려있는 키패드를 제어하려고 한다. 키패드의 회로 구성도는 아래와 같다. 우선 키패드를 동작시키기 위해 키패드를 제어할 controler 모듈을 구현해야 한다. 키패드를 제어할 controler 모듈에서는 링카운터와 case문을 사용하여 4 digit 7 segment와 column을 제어하려고 한다. 코드 내 링카운터 부분에서는 column이 출력 부분으로 작동한다. 키가 눌려있는 상태에서는 column값이 유지된다.단, Key_valid가 1 일시에는 현재 상태를 유지하는 것을 볼 수 있다. 링카운터의 동작 상태도는 아래와 같다. 16개의 스위치 제어에서는 case문을 사용하여 제어하려고 한다. case문에서는 row(행)과 col(열)의 입력을 통하여 출력을 결정하며,..

Language/Verilog 2024.07.25

Vivado : 초음파 센서

초음파 센서오늘은 초음파 센서를 통해 물체 사이의 거리를 측정해보려 한다. 초음파 센서 모듈의 데이터 시트를 확인하면 아래와 같은 Timing Diagram 정보를 확인할 수 있다.   Echo Pulse Output부분은 초음파가 왔다가 가는 걸리는 시간을 의미한다. IDLE은 최소 10ms이지만, 여유 있게 3초로 적용할 예정이다. 그리고 물체와의 거리를 cm 단위로 측정하기 위하여 위 그림에 나와있는 바와 같이 us를 58로 나누어 진행할 예정이다.아래는 초음파 센서 모듈을 동작시킬 코드이다.. 입출력 부분에 선언된 에코는 입력, 트리거는 출력으로 설정하여 진행하였다. 즉, 물체까지 도달하는 속도 및 거리는 트리거, 다시 입력으로 돌아오는 것은 에코로 설정하였다.  FSM 방식으로 진행할 예정이기 ..

Language/Verilog 2024.07.25
728x90