[CO-SHOW] 본선에서 사용할 MCU 변경 공지
튜토리얼 동영상을 처음 공개할 때, 본선 경선에서는 STM32를 기본 MCU로 제공하지만, MCU 종류는 제한하지 않겠다고 공지하였습니다.
그런데 이 후 많은 고민과 실험, 시뮬레이션 끝에, 본선에서 사용할 MCU를 변경하는 것으로 결정하였습니다. 학교 수업에서 많이 사용하고, 학생들에게 익숙한 AVR 계열의 ATmega MCU 만 본선에서 사용하는 것으로 변경하겠습니다.
변경 이유는 다음과 같습니다.
- 공평성을 위해 하나의 MCU로 한정하는 것이 필요함.
- 추상적 대상의 소프트웨어 프로그래밍이 아닌, MCU의 하드웨어 실체를 이해하고 실질적인 사용법을 겨루는 것이 이 경진 대회의 취지에 부합됨.
- 8-bit MCU인 AVR이 구세대 제품인 것은 사실이나, 단순한 구조이기에 동작 원리를 가장 원초적인 부분부터 배우기에는 더 유리함.
- 메모리, Peripheral, I/O Pin 수의 제약이 있지만, 그러한 제약 안에서 최소한의 자원으로 주어진 기능을 구현하는 것이 반도체 공학 관점에서는 중요하다고 봄.
이에 따라, 본선은 다음과 같은 환경에서 진행하겠습니다.
- ATmega88PA IC (DIP28 핀)을 사용하여, 본선 당일에 발표하는 과제들을 구현하게 됩니다. Arduino board가 아닌, 공장에서 출하된 상태의 IC를 breadboard에 꽂아 동작시키는 방식입니다. ATmega88PA는 Arduino 보드에 많이 사용되는 ATmega328P와 동일한 구조인데, 메모리의 크기만 다릅니다.
- ATmega88PA의 VCC, GND, CLK 핀을 전원 (USB port) 및 Crystal Oscillator에 연결하는 회로를 구성하여야 합니다.
- 공장 출하 상태의 IC 이므로 당연히 Arduino bootloader는 들어 있지 않고, Arduino IDE에서 설치할 수 있는 library도 사용할 수 없습니다. USB를 통한 Serial Port도 없습니다. 모든 동작은 ATmega88PA의 register를 직접 read/write하는 방식으로 구현하여야 합니다.
- Binary code (executable code)의 생성 (build)는 avr-gcc toolchain을 command line에서 사용하거나, 이를 기반으로 배포되는 Microchip Studio (구 Atmel Studio)를 사용하거나, 다른 IDE (Visual Studio 등)을 사용해도 됩니다. 단지 Arduino Library를 사용하면 안 됩니다.
- Build 된 binary code를 ATmega88PA에 올리는 프로그램으로는 AVRDUDE를 command line으로 사용하거나, 이를 Microchip Studio에 연결하여 사용하거나, 이를 기반으로 만든 GUI 프로그램인 AVRDUDESS를 사용하면 됩니다.
- ATmega88PA에 binary code를 올리기 위해서는 programmer 장비가 필요한데, USBasp (https://www.fischl.de/usbasp/)를 주최측에서 제공합니다.
- ATmega88PA의 USART (serial 통신) RXD, TXD 핀에 연결하여, USB로 통신을 변환해주는 board (CP2102 기반)을 주최측에서 제공합니다.
대회 전에 위 프로그램들을 인터넷에서 검색하여 사용법을 미리 숙지하고 설치하기 바랍니다. 추천하는 프로그램들은 Microchip Studio와 AVRDUDESS입니다.
빈 상태의 ATmega88PA IC를 동작 시키기 위해서는 이 부품의 datasheet를 상세하게 읽어서 구조, 동작 원리, register 설정을 깊이 이해하는 것이 필요합니다. 특히 아래 내용은 반드시 공부해 오기 바랍니다.
- System Clock, I/O Ports, USART, SPI, Fuse Bits
아래 내용도 공부해 오면 도움이 됩니다.
- Interrupt, TWI, Timer
첨부파일 (1개)
- 본선 MCU 변경 공지.pdf (100 KB, download:49)