Good bye, halcyon days...

Make Jog-wheel device #4 - AVR

Make Jog-wheel device #4 - AVR
  • Jog-wheel device를 만드는 과정을 기록하는 글타래의 일부입니다.
  • 전체 목록을 확인하시려면 Tag - Jog-wheel Device 으로 확인하실 수 있습니다.

센서가 배송되기를 마냥 기다리는 중[1]이다. 너무 지루해서 '이후에 무엇을 하면 되지'하고 생각했더니 줄곧 '집에 필요한 것들 다 있겠지'하고 생각했는데, 갑자기 불안해지기 시작했다. 이삿짐 박스를 뜯어서 칩셋 박스를 찾았다. 열었더니 MCU는 ATmega328P만 여러 개 남아있었다. 다행이다. 어쨌든 있다.

MCU는 ATmega328P를 사용하기로 하고[2], 펌웨어 프로그래밍할 환경을 준비해야 한다. Mac OS X에서 avr-gcc를 사용하려면 여러가지로 귀찮을 것 같아서 가상머신으로 Ubuntu 설치하고 거기에 환경 구성하려다가 homebrew에서 지원된다는 사실을 알았다.

.

Homebrew를 아직 사용하고 있지 않다면 설치한다[3].

$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

.

Homebrew를 이용해서 toolchain을 설치한다.

$ brew tap osx-cross/avr
$ brew install avr-gcc
$ brew install avr-dude

.

ISP를 통해 flash를 읽어보는 것으로 연결상태를 점검하고 함께 표시되는 Fuse setting 상태도 점검한다.

$ avrdude -c avrisp2 -p m328p -U flash:r:load.hex:i

.

Test source code를 작성하여 ISP를 통해 writing 해 보는 것을 마지막으로 정상 동작 상태를 점검한다.

$ avr-gcc -mmcu=atmega328p -Os -c avr-test.c
$ avr-gcc -mmcu=atmega328p -Os -o avr-test.elf avr-test.o
$ avr-objcopy -O ihex avr-test.elf avr-test.hex
$ avrdude -c avrisp2 -p m328p -U flash:w:avr-test.hex:i

.

특별한 문제는 없는 것 같다. 동작 상에 문제가 없었다. 회로 연결하면서 필요한 물품이 있으면 그때마다 다시 주문하는 것으로 하고 이 다음은 센서가 도착하면 진행하는 것으로 하자.

아... 언제쯤 오려나.


  1. Make Jog-wheel device #2 - Hall angle sensor ↩︎

  2. 사실 이렇게 간단한 기능을 위해서는 ATmega8도 충분하다. ↩︎

  3. https://brew.sh ↩︎



e.riny

e.riny

I know what I know nothing.