서강대학껓 23년도 마이크로프로세서응용실험 8주차 Lab08 결과레포트 (A+자료)
본 내용은
"
서강대학껓 23년도 마이크로프로세서응용실험 8주차 Lab08 결과레포트 (A+자료)
"
의 원문 자료에서 일부 인용된 것입니다.
2024.03.26
문서 내 토픽
  • 1. 마이크로프로세서 응용실험
    이 자료는 마이크로프로세서응용실험 8주차 실험 보고서로, GPIO의 동작 모드 설정에 사용되는 레지스터의 구성과 초기화 방법, GPIO 포트 신호들을 외부소자/장치와 연결하는 방법, 그리고 Array 형태로 배열된 dot matrix, key matrix에 어떻게 access하는지 이해하고 C 프로그램으로 구현하는 내용을 다루고 있습니다.
  • 2. GPIO 기능 설명
    GPIO에 속한 pin들은 프로그램을 통해 설정(configuration)하여 다양한 형식의 입력, 출력으로 사용 가능합니다. 각 port마다 설정을 위한 레지스터가 제공되며, 입출력 port가 Alternate function으로 설정되면 주변연결소자의 입출력 신호와 연결될 수 있습니다.
  • 3. GPIO 동작 모드
    GPIO의 4가지 동작 모드(입력, 출력, Alternate function, 아날로그)에 따라 입출력 포트의 동작이 달라집니다. 입력 모드에서는 Schmitt Trigger 입력이 활성화되고 pull-up/pull-down 저항이 연결될 수 있습니다. 출력 모드에서는 출력 버퍼가 활성화되며 push-pull 또는 open drain 모드로 동작할 수 있습니다.
  • 4. Alternate function I/O
    마이크로컨트롤러에 내장된 주변장치의 입출력 신호는 GPIO port의 pin으로 연결할 수 있으며, 이를 Alternate function이라고 합니다. 각 주변장치에는 pin들이 default로 배정되어 있으며, 관련 레지스터를 programming하여 AF를 사용하거나 pin을 remapping할 수 있습니다.
  • 5. Atomic bit set/reset, locking mechanism
    GPIO의 출력 데이터 레지스터(GPIOx_ODR)에 bit 단위로 쓸 때 atomic write를 수행할 수 있도록 GPIOx_BSRR 레지스터가 제공됩니다. 또한 GPIO 설정 내용이 변경되는 것을 막기 위해 GPIO_LCKR 레지스터의 locking 기능을 사용할 수 있습니다.
  • 6. 8x8 Dot Matrix
    8x8 dot matrix는 row 8개, col 8개의 16개 pin으로 구성되어 있으며, row 신호를 low로 하고 col 신호의 조합을 통해 원하는 패턴을 출력할 수 있습니다. 이를 scanning 방식이라고 하며, 빠른 주기로 반복되면 사람의 눈에 모든 LED가 켜진 것처럼 보이게 됩니다.
  • 7. 4x4 Keypad
    4x4 keypad는 row와 column이 교차하는 지점에 스위치가 배치되어 있으며, column을 기준으로 scan하여 어떤 key가 눌렸는지 확인할 수 있습니다. 이때 pull-up 저항을 사용하여 입력 신호를 안정화시킬 수 있습니다.
  • 8. GPIO 설정 추상화
    GPIO 설정 과정을 함수로 추상화하여, 레지스터 맵을 몰라도 GPIO의 설정을 직관적으로 할 수 있습니다. GPIO_Config, GPIO_Write 함수를 통해 GPIO 포트의 모드 설정과 값 쓰기를 구현할 수 있습니다.
  • 9. Debouncing
    기계적 스위치에서 발생하는 bouncing 현상을 방지하기 위해 software적인 debouncing 기법을 사용할 수 있습니다. 일정 시간 동안 입력 신호가 안정화되었을 때만 입력으로 인식하도록 하는 방식으로 구현할 수 있습니다.
  • 10. WFE 명령어
    WFI 명령어와 달리 WFE 명령어는 인터럽트뿐만 아니라 다양한 이벤트에 의해 wakeup될 수 있습니다. 이를 통해 CPU의 전력소모를 더욱 줄일 수 있습니다.
Easy AI와 토픽 톺아보기
  • 1. 마이크로프로세서 응용실험
    마이크로프로세서 응용실험은 마이크로프로세서의 기본적인 동작 원리와 활용 방법을 실습을 통해 익히는 중요한 과정입니다. 이를 통해 마이크로프로세서의 입출력 제어, 메모리 관리, 인터럽트 처리 등 핵심 기능을 이해할 수 있습니다. 또한 다양한 주변 장치와의 인터페이싱 기술을 익힘으로써 마이크로프로세서 기반 시스템 설계 능력을 향상시킬 수 있습니다. 이러한 실험 과정은 마이크로프로세서 활용 분야에서 필수적인 기초 지식과 기술을 습득할 수 있는 기회를 제공합니다.
  • 2. GPIO 기능 설명
    GPIO(General Purpose Input/Output)는 마이크로프로세서의 핵심 기능 중 하나로, 다양한 주변 장치와의 연결과 제어를 가능하게 합니다. GPIO 기능 설명은 이러한 GPIO의 동작 원리와 활용 방법을 이해하는 데 매우 중요합니다. GPIO 포트의 입출력 모드 설정, 내부 풀업/풀다운 저항 사용, 인터럽트 처리 등 GPIO의 다양한 기능을 이해하면 마이크로프로세서 기반 시스템 설계 시 효과적으로 활용할 수 있습니다. 이를 통해 보다 다양한 응용 분야에서 마이크로프로세서의 활용 범위를 확장할 수 있습니다.
  • 3. GPIO 동작 모드
    GPIO 동작 모드는 마이크로프로세서의 GPIO 포트가 입력 또는 출력으로 동작하는 방식을 결정합니다. 입력 모드에서는 외부 신호를 감지하고, 출력 모드에서는 마이크로프로세서가 외부 장치를 제어할 수 있습니다. 또한 GPIO 포트는 내부 풀업/풀다운 저항을 통해 신호 레벨을 유지할 수 있으며, 인터럽트 기능을 통해 외부 이벤트를 감지할 수 있습니다. 이러한 GPIO 동작 모드에 대한 이해는 마이크로프로세서 기반 시스템 설계 시 필수적이며, 다양한 응용 분야에서 효과적으로 활용할 수 있습니다.
  • 4. Alternate function I/O
    Alternate function I/O는 마이크로프로세서의 GPIO 포트가 다양한 기능을 수행할 수 있도록 하는 기능입니다. 이를 통해 GPIO 포트를 단순한 입출력 기능 외에도 UART, SPI, I2C 등의 통신 인터페이스, PWM 출력, 타이머 입력 등 다양한 기능으로 활용할 수 있습니다. Alternate function I/O 기능을 이해하면 마이크로프로세서의 활용 범위를 크게 확장할 수 있으며, 보다 복잡한 시스템 설계가 가능해집니다. 이는 마이크로프로세서 기반 시스템 설계 능력을 향상시키는 데 매우 중요한 기술입니다.
  • 5. Atomic bit set/reset, locking mechanism
    Atomic bit set/reset과 locking mechanism은 마이크로프로세서 프로그래밍에서 매우 중요한 기술입니다. Atomic bit set/reset은 비트 단위 연산을 원자적으로 수행하여 데이터 일관성을 보장하는 기능이며, locking mechanism은 공유 자원에 대한 접근을 제어하여 동기화 문제를 해결하는 기술입니다. 이러한 기술들은 멀티태스킹 환경에서 발생할 수 있는 데이터 경쟁 문제를 해결하고, 안정적인 시스템 동작을 보장하는 데 필수적입니다. 따라서 Atomic bit set/reset과 locking mechanism에 대한 이해는 마이크로프로세서 기반 시스템 설계 시 필수적인 지식이라고 할 수 있습니다.
  • 6. 8x8 Dot Matrix
    8x8 Dot Matrix는 마이크로프로세서를 활용한 대표적인 응용 분야 중 하나입니다. 이를 통해 간단한 문자, 숫자, 그래픽 등을 표시할 수 있으며, 다양한 응용 분야에서 활용될 수 있습니다. 8x8 Dot Matrix 구현을 위해서는 GPIO 포트를 활용한 행/열 구동 방식, 타이밍 제어, 그리고 데이터 처리 등 다양한 기술이 필요합니다. 이러한 기술들을 익히면 마이크로프로세서 기반 시스템 설계 능력을 크게 향상시킬 수 있으며, 보다 다양한 응용 분야에서 활용할 수 있습니다.
  • 7. 4x4 Keypad
    4x4 Keypad는 마이크로프로세서와 함께 사용되는 대표적인 입력 장치 중 하나입니다. 4x4 Keypad를 활용하면 다양한 입력 데이터를 마이크로프로세서에 전달할 수 있으며, 이를 통해 사용자 인터페이스를 구현할 수 있습니다. 4x4 Keypad 구현을 위해서는 GPIO 포트를 활용한 행/열 스캔 방식, 디바운싱 기술, 그리고 키 입력 처리 등 다양한 기술이 필요합니다. 이러한 기술들을 익히면 마이크로프로세서 기반 시스템 설계 능력을 크게 향상시킬 수 있으며, 보다 다양한 응용 분야에서 활용할 수 있습니다.
  • 8. GPIO 설정 추상화
    GPIO 설정 추상화는 마이크로프로세서의 GPIO 포트 사용을 보다 효율적이고 편리하게 만드는 기술입니다. 이를 통해 GPIO 포트의 입출력 모드, 내부 풀업/풀다운 저항, 인터럽트 설정 등을 추상화된 API를 통해 제어할 수 있습니다. 이는 마이크로프로세서 프로그래밍 시 GPIO 포트 관리에 드는 복잡도를 크게 낮출 수 있으며, 보다 높은 수준의 응용 프로그램 개발을 가능하게 합니다. 또한 GPIO 설정 추상화는 마이크로프로세서 플랫폼 간 이식성을 높이는 데에도 기여할 수 있습니다.
  • 9. Debouncing
    Debouncing은 기계적 스위치나 버튼과 같은 입력 장치에서 발생할 수 있는 접점 바운싱 현상을 해결하기 위한 기술입니다. 이는 마이크로프로세서 기반 시스템에서 매우 중요한 기술로, 바운싱으로 인한 오동작을 방지하고 안정적인 입력 처리를 가능하게 합니다. Debouncing 기술에는 소프트웨어적 방식과 하드웨어적 방식이 있으며, 각각의 장단점이 있습니다. 따라서 시스템 요구사항에 따라 적절한 Debouncing 기술을 선택하고 구현하는 것이 중요합니다. Debouncing에 대한 이해는 마이크로프로세서 기반 시스템 설계 시 필수적인 지식이라고 할 수 있습니다.
  • 10. WFE 명령어
    WFE(Wait For Event) 명령어는 마이크로프로세서의 전력 관리 기능을 구현하는 데 매우 중요한 기술입니다. WFE 명령어를 사용하면 마이크로프로세서가 이벤트 발생을 기다리는 동안 저전력 모드로 진입할 수 있습니다. 이를 통해 시스템의 전력 소모를 크게 줄일 수 있으며, 배터리 구동 장치에서 특히 유용합니다. WFE 명령어 사용을 위해서는 인터럽트 처리, 타이머 설정, 전력 모드 전환 등 다양한 기술이 필요합니다. 따라서 WFE 명령어에 대한 이해는 마이크로프로세서 기반 시스템 설계 시 필수적인 지식이라고 할 수 있습니다.