7. VGA Peripheral (2)

VGA 페리프럴만 사용하는 것이 아닌 UART까지 사용하는 것을 목표로 합니다.

UART로는 외부 디바이스 장치인 키보드를 사용할 것인데,

키보드를 통해 유저가 타이핑을 하면 이를 VGA페리프럴을 통해 모니터에 문자를 출력하게 됩니다.

이전 과정에서는 - 아마 포스팅을 하지 않았을텐데 그에 대한 것은 추후에 수정을 가하도록 할게요. - 어셈블리로 미리 입력한 문자가 모니터에 출력되는 것을 실습하였지만, 이번에는 실시간으로 모니터에 출력하는 것에 의의를 둡니다.

 

사용하게 되는 메모리 맵은 다음과 같습니다.

Memory와 VGA 그리고 UART는 각각 위에 나온 테이블처럼 어드레스를 사용하게 됩니다.

UART는 이전에 실습했던 것과 같습니다. 5100_0000부터 시작하게 되는데 데이터가 들어오게 되고, 이를 LDR함으로써 입력을 읽게 됩니다. 5100_0004에 또 다른 기능이 있습니다. 두 개의 Flag 신호를 주게 되는데, 하나는 보내고자 하는 FIFO가 꽉 찼을 때 1이 되는 신호고, 다른 하나는 받고자 하는 FIFO가 비어있을 때 1이 되는 신호입니다. 

※ Tx는 송신 / Rx는 수신입니다. 

 그렇기 때문에, 값이 들어왔다는 것을 감지하려면 Rx FIFO가 '0'인지 '1'인지를 판단하면 됩니다.

 

해당 파일 코드는 직접적으로 포스팅하기에는 문제가 생길 여지가 존재하기 때문에, 추후에 코드를 바로 사용할 수 없도록 드문드문 산재해 수정할 예정입니다.

 

참고로, 해당 소프트웨어를 작성하고 Quartus에 올려 실행을 한 이후에 바로 실행되는 것이 아니라 Teraterm을 실행해서 키보드를 입력하여야 모니터로 출력되는 것을 확인할 수 있습니다.

 

////////////////////////

코딩 및 설명란

'IDEC > Cortex - M0' 카테고리의 다른 글

8. Interrupt Mechanism  (0) 2023.07.24
6. VGA Peripheral (1)  (0) 2023.07.20
5. Timer / GPIO / 7-Segment Peripherals  (0) 2023.07.19
4. AHB UART Peripheral  (0) 2023.07.19
3. AMBA 3 AHB-LITE Bus Architecture  (0) 2023.07.14