컴파일러

WinAVR 20090313 Download

- 개발툴 설치전에 컴파일러를 먼저 설치해야 합니다.

http://sourceforge.net/project/showfiles.php?group_id=68108 


개발툴

AvrStudio 4.16 Download

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725


AvrStudio 4.16 SP1 Download

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725


CodeVisionAVR Evaluation Download V2.04.2c

http://www.hpinfotech.ro/html/download.htm


Bascom-AVR demo 1.11.9.1 Download

- basic언어를 사용하고 시뮬레이터가 우수합니다. 부트로더도 자체지원하는것 같습니다.

http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54


AVREdit 3.8 Download

http://terabank.co.kr/bbs/zboard.php?id=down


드라이버

CP2102 driver 

usb 가상 시리얼포트 CP2102 칩 드라이버

www.silabs.com


FTDI (VCP) driver

http://www.ftdichip.com/Drivers/VCP.htm



ISP

PonyProg 1.17.h Download

http://www.lancos.com/ppwin95.html


ToastProgUSB 2.1 Download

http://www.toastprog.com/front/php/b/board_list.php?board_no=7



기타 참고자료

    . 컴파일러
       - AVR Studio4.14 컴파일러 : 커뮤니티->개발툴 자료실
       - AVR Studio4/WinAVR 설치 방법(다운로드)
       - CodeVisionAVR 설치 방법(다운로드)
     . 프로젝트 생성
       -
 CodeVisionAVR 프로젝트 생성(다운로드)
       - AVR Studio4 프로젝트 생성(다운로드)
     . ISP 사용법
       -
 PonyProg  I
SP(다운로드)
       - ToastProg  
ISP(다운로드)
       -
 CodeVisionAVR ISP(다운로드)
       -
 AVR Studio4 ISP(다운로드)
     . JTAG 사용법
       - AVR Studio4 
JTAG(다운로드)
 
    . 예제프로그램 TEST 방법
       -
 AVR Studio4 메뉴얼(다운로드1/다운로드2)
       - CodeVisionAVR 메뉴얼(다운로드1/다운로드2)

체리보드(ATMega128)에는 USB 포트가 있는데 데스크탑PC에서 가상 시리얼 포트를 USB로 전송받을수 있습니다.

따라서 체리보드에 부트로더만 올리면 ISP없이 USB 케이블로 프로그램을 다운로드 할수 있습니다.

mega시리즈 AVR에 올릴수 있는 부트로더는 여러가지가 공개되어 있습니다.


1. megaload - http://www.microsyl.com/

1번은 여러번 시도하였으나 성공하지 못했고, 2번, 3번, 4번은 같은 부트로더 같은데 카페 등업이 늦어져서 2번은 확인 못하고, 3번은 다운로드 하다 멈추고, 4번으로 성공했습니다.


먼저 아래 파일을 다운받아 적당한 폴더에 풉니다.




CodeVision을 실행합니다. demo 버전을 사용해도 됩니다. ( http://www.hpinfotech.ro/html/download.htm )
ISP를 PC와 체리보드에 연결합니다.
Settings >> Programmer 를 실행하여 자신의 ISP를 설정합니다.


Tools >> Chip Programmer 를 실행합니다.
File >> LoadFlash - 압축푼파일중에 MegaBoot_phold.hex 파일을 불러들입니다.
그리고 위화면과 같이 설정합니다.
Program 메뉴의 Erase chip, Flash, Fuses bit을 차례로 실행합니다.
여기까지 됐다면 ISP는 필요 없으니 제거 합니다.

USB 케이블을 체리보드에 연결합니다.
압축파일에 MegaBoot를 실행합니다.
컴파일한 hex 파일을 첫번째(flash)영역에 open합니다.
PC에서 인식한 usb포트의 가상 시리얼 포트를 확인하여 Serial Port Setup 영역에 설정합니다.
(가상 시리얼포트 번호는 제어판 >> "시스템 등록정보"를 실행하여 하드웨어 텝에 >> 장리관리자 >> "포트" 부분을 보면 확인가능합니다.)
체리보드의 리셋을 누르니다.
그러면 hex파일이 다운로드 됩니다.

만약 안된다면 BaudRate를 다른것으로 변경해보세요.
BaudRate가 맞으면 Target Infomation에 자신의 칩이 뜰껍니다.

자 이제 ISP는 갖다 버리세요 ^^;
atmega128 트레이닝 보드인 체리보드 입니다.
오늘 오후에 걸려온 전화 한통...
택배 입니다. 착불입니다. 
[이런 집에 아무도 없는데...]
택배비는 계좌이체해주세요.
[와 택배 아저씨가 착불 택배비를 계좌이체 해달라네요. 이런 고마울때가...체리보드 오늘 구경 못하는 줄 알았네...]

실물을 보니 보드가 사진보다 정말 이쁘게 생겼네요. 감격에 쓰나미가....ㅠㅠ
빨리 구동 시켜보고 싶은데....ISP가 아직 도착을 안했네요.
체리보드는 하루만에 왔는데 ISP는 왜 이렇게 오래걸리는지...
손가락이 근질 근질하네요.

아두이노 스토리 카페 매니저님 덕에 체리보드를 써볼수 있게 되었습니다. 감사합니다. ^^
아두이노도 버벅대고 있는데 체리 배울려면 공부 열심히 해야겠네요. 



Parallel ISP (프린터 포트 ISP)

아두이노 사이트에서 소개하고 있는 초간단 프린터 포트용 ISP 입니다.
220옴 저항 x 1, 470옴 저항 x 2개가 전부네요



윤덕용 교수님의 프린터 포트용 ISP V2.0


Serial ISP (시리얼 포트 ISP)

윤덕용 교수님의 시리얼 포트용 ISP 구형
윤덕용 교수님의 시리얼 포트용 ISP V2.0


USB ISP

윤덕용 교수님의 시리얼 포트용 ISP V2.0

 
USBtiny ISP 

  1. saytact 2010.12.10 15:29

    안녕하세요..또 모르는 것이 나타나서 찾아왔습니다

    원하던 대로 아두이노 스케치 및 작동은 잘 되나, 지금은 3v 핀 led 5파이를 사용했습니다.
    밝은 빛을 원하여 3v(하나는 2v) 1w 파워 led를 구입하였습니다.
    이쪽을 잘 몰라 3v면 대체하면 될려나 생각했지만. P=VI로 1w&3V이면 330mA정도의 전류가 필요하다구 하네요;;
    그러면 TR을 사용해 회로구성이 필요하다고 하네요;;
    (점점 미궁으로 빠지는 후반작업...단순히 조금 밝은 빛을 원했을 뿐이데...)
    전류..저항.....짧은 시간 들여봐서는 잘 이해가 안되네요..
    조금 도움을 주실수 있으신가요? (설명은 아주 쉽게..유치원생을 가르치듯한 언어로 부탁드립니다^^;;)

    • BlogIcon pepsiman 2010.12.10 17:20 신고

      tr은 아직 저도 잘 사용 못해서요.
      도움이 못되어 드리겠네요 ^^;;;

  2. saytact 2010.12.10 23:17

    혹 그럼 아두이노에 한 포트로 여려개의 led의 연결해 환하게 만들수 있나요?
    (스위치 3개와 각각 연결된 RGB 색의 led 1개씩..지금 9,10,11번에 led 연결.
    스위치는 7,6,5에 연결되어 있거든요. 여기에 기본으로 불이 들어와있는 led 백색을 12번에 추가할 예정이고,)
    RGB 색이 너무 약해, 좀더 밝게 하고 싶어 파워 led를 구입한 것이였거든요
    핀 led를 더 연결해 밝게 할수 있나요?

2009/05/19 arduino에 사용가능한 이더넷 모듈에서 소개했던 WIZ811MJ이 도착했습니다.
사실 벌써 도착했는데 만질 시간이 없어서 못하고 있었다는...

보시다 시피 썰렁하게 연결되어 있는데, 간단한 연결(6핀)만으로 아두이노를 인터넷에 연결이 가능합니다.

사진과 같이 연결하였고, 연결은 엉성해도 동작은 잘 되더군요. ^^

필요한 핀에만 소켓을 끼웠습니다.

많은 핀중에 6개만 사용하면 됩니다. 나머지 하나는 리셋핀....

조그만한게 귀엽게 생겼죠? ^^;


WIZ811MJ 모델은 2.54mm 간격의 40핀으로 핀이 구성되어 있습니다. 듀얼핀이라 브레드보드에 직접은 안되네요.
아두이노와 각 핀의 연결은 위의 그림과 같이 D10~D13, 3V3, GND 6개의 핀을 연결합니다.
아두이노 두에밀라노브(데시밀라)에는 3.3v 출력이 있어서 직접 연결이 가능합니다.



WIZ811MJ는 arduino ethernet shield와 같은 칩을 사용하기 때문에 라이브러리도 호환된다는것이 최대 장점이라고 할 수 있습니다. 이미 만들어져 있는 아두이노 이더넷 라이브러리를 가져다 쓰기만 하면 됩니다. 예제까지도....

아두이노 소스는 아두이노 웹서버로  Examples/Library-Ethernet/WebServer 에 있는 예제를 사용해봤습니다.

/*
 * Web Server
 *
 * A simple web server that shows the value of the analog input pins.
 */

#include 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 20 };

Server server(80);

void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          // output the value of each analog input pin
          for (int i = 0; i < 6; i++) {
            client.print("analog input ");
            client.print(i);
            client.print(" is ");
            client.print(analogRead(i));
            client.println("
"); } break; } if (c == '\n') { // we're starting a new line current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } } } // give the web browser time to receive the data delay(1); client.stop(); } }
소스중 위의 mac과 ip 부분은 자신에 맞게 수정해야 합니다.

WIZ811MJ는 DHCP를 지원하지 않는데, 아마도 DHCP기능이 없어서 그냥은 연결이 안되는듯합니다.
소스의 빨간색부분을 공유기의 IP 수동할당에 추가하고, 오른쪽에 추가버튼을 누르면 왼쪽에 추가 됩니다.


브라우저에서 설정한 IP로 아두이노에 접속한 모습입니다. 아날로그 핀의 값을 출력하는 웹서버 프로그램입니다.

이제 아두이노에 달린 날개를 잘 활용하는 일만 남았네요. ^^
  1. Wowwon 2010.12.02 20:26

    저는 이더넷 모듈 WIZ 145SR을 사려고 하는데 님이 사용하신 811MJ와 많은 차이가 있을까요??

    811보다 아두이노와의 연결도 쉬웠으면 하는데, 고민중입니다

전자부품 검색은 블로그 위 "전자부품 검색"을 이용하시면 아래 사이트 모두를 통합검색 할수 있습니다.


아두이노(Arduino)
  국내 총판
  아두이노 호환보드

와이어링(Wiring)
샘플전자 http://www.robot.co.kr
  wiring I/O, mini, mini호환보드

전자부품
디바이스마트 - http://www.devicemart.co.kr
  종류가 많은데 약간 비싼것도 있슴
  종류가 적은데 가격은 약간 쌈
  그래픽 LCD 모듈(GM126401SFAYBG09) 구입 가능
굳싸인통상 - http://www.gst-lcd.com/
Find LCD - http://findlcd.com/
  그래픽 LCD 모듈(HY-12864K-201-R) 구입 가능
고광전자(고원기술 및 삼광반도체 대리점) - http://www.kokwang.com/
  7세그먼트 LED(SND-3640) 구입 가능
미광전자(청계천 LED 전문매장) - http://www.led.co.kr/
  7세그먼트 LED(MD-3640) 구입 가능
국내외 부품 통합검색 http://www.epartshub.com/ (김래원님께서 알려주셨습니다.)
  
음성 MP3 칩
디바이스마트 - http://www.devicemart.co.kr

공구
  집게 스텐드 15000원

브레드보드(빵판)
샘플전자 - http://www.robot.co.kr 
  SE-BB63 6600원
키트나라 - http://www.kitnara.com/
  BB-200 7000원

PCB동판
  A4 사이즈
최강납땜 - http://www.topsolder.com/
  작은것

중고장터
만물상닷컴 - http://www.manmullsang.com/
  LED, DotMatrix, LCD등 다양한 중고품을 저렴한 가격에 구할수 있습니다.
당근이 카페 - http://cafe.naver.com/carroty
   운 좋으면 반값에 구입 할 수 있슴.



오프라인
구로 중앙유통상가
새건물이라 정리가 잘되어 있습니다. 가게이름으로 찾기는 하늘에 별따기 ㅡㅡ;;
토요일에 가니 절반넘게 문을 닫았습니다.

나3428 세븐반도체 김창근 (02)2682-7676 전자부품, I.C, TR,FET,CHIP,SMD
주요(?) 상가들 호수(출처:당근이 카페 - 무법천지)

나머지 상가들(오래된 자료라 않맞는것이 다수임) (출처:당근이 카페 - 시원선생)
청계천 아세아전자상가 (아세아극장)
반도체, LCD, 각종 커넥터등등 취급
건물이 오래 된거라서 좀 복잡하네요. 공구같은것도 싸게 구입할 수 있습니다.



전자랜드 광장층(지하1층)에 샘플전자와 동신전자, 홍인전자가 있습니다.

위 이미지와 180도 뒤집혀 있으니 조심하세요
샘플전자는 건물 밖에 있더군요 18호만 안보여서 한참 찾았습니다. ^^;
동신전자는 지도상에 정확한 위치는 모르겠으니 호수와 대략적인 위치를 보고 가세요. 커서 찾기는 쉽습니다.
여러가지 부품 많이 팔더군요.

음성IC를 파는 홍인전자는 A-41호 입니다.
  1. BlogIcon montreal florist 2009.11.06 09:30

    좋은 링크모임 이네여

  2. 딸기마녀 2010.04.26 14:36

    이런 정보를 다 어디서 구하셨답니까? 대단하십니다.

    • BlogIcon pepsiman 2010.04.26 14:47 신고

      딸기마녀님 방문해주셔서 감사합니다.
      여기 저기 돌아 다니다보니 알게되었는데 까먹기 전에 남겨놨습니다.
      저도 처음에 무지 헤맸기 때문에 입문 하시는 분들께 도움이 됬으면 좋겠네요

  3. BlogIcon 판다파츠 2019.08.29 07:17 신고

    안녕하세요 전자부품 가격비교 서비스판다파츠입니다.
    마우저, 디지키등의 사이트를 실시간으로 가격비교 후 구매할 수 있습니다.
    1원이상 1개의 제품만 사도 통관대행, 해외배송료가 발생하지 않습니다.
    https://pandaparts.co.kr/
    전자부품 구매시에 관심 부탁드리겠습니다.


LCD 화면을 지우고 싶으면 D7~D0에 00000001 즉 0x01을 command로 보내면 됩니다.
위치 지정 명령은 1xxxxxxx 인데, 첫번째 줄은 0x80~0x8F, 두번째줄은 0xC0~CF 를 command로 보내면 됩니다.



아두이노(arduino)에서 2색 도트매트릭스를 구동시켜 보았습니다.

부품

아두이노(arduino)
도트매트릭스(DotMatrix 8x8 2색)
74HC595 x2
74HC138


나름 하트를 그려봤는데 생각만큼 이쁘게 나오진 않는군요 ^^;


배선이 좀 많이 들어가네요
핀은 24핀으로 위에 12, 아래 12개 입니다.
핀소켓에 납땜으로 배선을 연결했습니다.
전선이 부드러운줄 알았는데 연결하고 나니 엄청 뻣뻣하네요 ㅜㅜ


1번핀 - [LED1-],   2번핀 - [LED1적+], 3번핀 - [LED1녹+], 4번핀 - [LED2-],   2번핀 - [LED2적+], 3번핀 - [LED2녹+]......
위 사진상으로 보면 모델번호를 위로 놓고 볼때 우상터 1~12, 우하 13~24번 입니다.




가장 왼쪽 브레드보드 대신에 도트매트릭스라고 보고
이 보드의 red에 연결된 흰색 배선 위쪽부터 도트매트릭스의 2,5,8,11,14,17,20,23,
green에 연결된 배선 위쪽부터 도트매트릭스의 3,6,9,12,15 18,21,24 번에 연결합니다.



74HC138 디코더 입니다.
Y0 ~ Y7 은 도트매트릭스의 1,4,7,10,13,16,19,22에 각각 연결합니다.
4, 5번 핀은 GND, 6번핀은 VCC에 연결합니다.
A0~A2는 아두이노의 digital 5~7에 연결합니다,







소스

//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;

//holders for infromation you're going to pass to shifting function
byte data;
byte data2;
byte dataArray[10];
int val=0;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  // 74HC138N 
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  Serial.begin(9600);

  dataArray[0] = 0x24; //00100100
  dataArray[1] = 0x5a; //01011010
  dataArray[2] = 0x81; //10000001
  dataArray[3] = 0x81; //10000001
  dataArray[4] = 0x81; //10000001
  dataArray[5] = 0x42; //01000010
  dataArray[6] = 0x24; //00100100
  dataArray[7] = 0x18; //00011000
}

void loop() {
  for (int j = 0; j < 8; j++) {
    //load the light sequence you want from array
    data = dataArray[j];
    //ground latchPin and hold low for as long as you are transmitting
    digitalWrite(latchPin, 0);

    shiftOut(dataPin, clockPin, LSBFIRST, 0); 
    shiftOut(dataPin, clockPin, LSBFIRST, data); 
    digitalWrite(7, j>>2 & 0x1);
    digitalWrite(6, j>>1 & 0x1);
    digitalWrite(5, j & 0x1);

    digitalWrite(latchPin, 1);
    delay(1);
  }
}


선이 뻣뻣해서 매트릭스가 공중에 떠버렸습니다.
깔끔하게 하려면 만능기판으로 옮겨야할듯싶네요. 다시만들어야겠네....ㅜㅜ

원래 2색인데, 2색 모두 구동 됩니다만 데이타 만들기 귀찮아서 단색만 했습니다.
회로는 2색 모두 지원합니다.
저항 연결하니 빛이 어두워서 저항도 연결하지 않았습니다.

  1. calian 2009.06.03 16:56

    브레드보드있는 회로 그림은 어떤 프로그램으로 그리셨나요>

    • BlogIcon pepsiman 2009.06.03 17:12 신고

      calian님// arduino 사이트에 있는 이미지를 가져온 겁니다.

      브레드 보드 회로를 그릴수 있는 프로그램으로 제가 아는것은
      Fritzing 이라는 프로그램이 있습니다.
      시뮬은 안되고 그림만 그릴 수 있습니다.참고하세요. ^^
      http://fritzing.org

  2. calian 2009.06.03 20:58

    답변감사합니다^^;;

  3. leejie 2009.12.01 12:09

    브레드보드에 있는 검정블럭같은게 무엇인지 알려주실수 있을까요??
    그리고 만들면서 쓰신 부품들 이름을 알고 싶어요..!
    처음 만들어 보려고 하는데 배울게 많네요..ㅠㅠ;;ㅋ

    • BlogIcon pepsiman 2009.12.04 03:06 신고

      사용한 부품 목록은 맨 위에 있는 목록 그대로입니다.

      브레드 보드 사진으로 왼쪽부터 보면
      맨 왼쪽의 것은 무시하시고요 138, 595, 595, 아두이노, 도트매트릭스
      다만 아두이노가 아두이노 호환 미니 인데...그냥 아두이노 쓰셔도 됩니다.

  4. 깜빡 2009.12.08 06:01

    제가 이해한게 맞는지 모르겠는데요 led매트릭스니깐 8*8 이면 64개의 led와 2색이니깐 총 128개를 제어할수 있는건가요?

    • BlogIcon pepsiman 2009.12.08 15:15 신고

      네 맞습니다. 한번에 한줄씩 제어 하니 순차적으로 16개씩 8번 제어하게 됩니다.

  5. ㅁㄴㅇ 2010.12.03 06:51

    혹시 회로도 왼쪽 빵판에 잇는 초록색 빨간색 똥그란게 뭔지 알수 있을까요;

  6. dfa 2011.03.24 14:36

    잘 봤습니다. 그런데 몇가지 궁금한게 있는데요. 도트매트릭스 사진보면 많은 배선들이 연결돼있는데 위 12부분을 연결한걸 어디다가 연결을 해야하죠 밑12부분도 궁금하구요.. 그리고 브레드보드 들어가 있는 사진보면 맨 왼쪽거 제외를 하고 왼쪽부터 138 595 595 인가요? 그리고 595 밑에 얇은 검정 블락두개가 있는데 이것들은 뭔가요? 또한 그 사진에 보면 가운데 있는 브레드보드에 주황색깔 있죠.. 그건 pushbutton 인지 궁금하네요 그리고 빨간색과 초록색은 LED 라고 말씀하셨는데 어떤 LED인지.. 그리고 그 옆에 있는건 resistor 인가요? 무슨 resistor 인지 궁금해요
    그리고 제가 마지막으로 processing 에 관해서 잘 몰라서 그러는데 소스안에 processing이 사용돼있나요?

    • BlogIcon pepsiman 2011.04.15 17:22 신고

      와이어링은 본문 중간에 595와 아두이노 연결 그림이 있는부분에 있습니다. 설명을 좀더 자세히 추가했습니다. 이해가 되실지 모르겠네요 ^^; 거기서 말하는 숫자는 도트매트릭스의 핀번호입니다 (위쪽에 도트메트릭스의 회로도에 있습니다)

      138도 바로 아래쪽에 설명이 있고요.

      칩에 순서는 138 595 595 입니다. 사진에서 선이 자세히 안보이는 상테에서 순서는 별의미 없지만요 ^^;

      주황색은 먼지 저도 잘 모르겠네요

      빨간색과 초록색은 도트매트릭스를 사용할꺼니까 직접 연결하면 되고요

      저항은 보통 220옴 쓰는데 도트매트릭스에서는 불빛이 넘 약해서 달지 않았습니다.

  7. ㅠㅠ 2011.06.11 23:07

    죄송한데 만능기판에 만들어져있는건 없나요?ㅠㅠ

  8. BlogIcon 오또군 2011.11.04 00:51

    네이버 블로그에 정보수집용으로 퍼갑니다 ^^;; 안된다면 네이버 블로그에 글을 남겨 주세요 ㅠ

  9. vivaman 2011.11.15 14:24

    따라하는 초보입니다.
    하트는 만드는데 성공 했습니다..

    감사합니다.

    Green 색으로도 해보고 싶은데.. 어딜 수정하면 될까요..
    그리고, 2가지 색깔을 섞어 주황색도 만들어 보고 싶습니다..

    ^^

디지털 논리회로를 하면서 가장 처음 나를 괴롭힌것이 풀업저항과 풀다운저항이었습니다.
지금도 해깔리긴하지만 일단 정리하고자 글을 남깁니다.

디지털에서는 모두 알다시피 0(거짓,LOW)과 1(참,HIGH)만 존재하고 그 중간은 없습니다.
TTL 레벨에서는 0~5v의 전압이 공급되는데 0v 는 거짓이고 5v는 참으로 인식합니다.

여기서 문제가 생기는데
2.5v는 참일까 거짓일까?
또는 
회로와 아무 연결이 없는 (avr의)입력핀은 참일까 거짓일까?

이문제를 해결하기 위해 풀업과 풀다운 저항이 필요하게됩니다.
즉 회로가 연결이 안되어 있으면 잡음신호등으로 
불안정한 값이 읽혀질수 있으므로 명시적으로 LOW 또는 HIGH 값을 주는 것입니다.




실제 사용예를 보겠습니다.


스위치를 눌렀을 경우 HIGH를 입력받고 싶은경우(좌측그림)
스위치를 누르지 않으면 LOW여야만 합니다. 따라서 스위치와 입력핀 사이에 충분히 큰저항(TTL에서는 대략10K옴)을 사용하여 GND에 연결합니다. 이때 사용한 저항을 풀다운저항이라고 합니다.

반대로 스위치를 눌렀을 경우 LOW를 입력받고 싶은경우(우측그림)
스위치를 누르지 않으면 HIGH여야만 합니다. 따라서 스위치와 입력핀 사이에 충분히 큰저항(TTL에서는 대략10K옴)을 사용하여 5v에 연결합니다. 이때 사용한 저항을 풀업저항이라고 합니다.

이걸 응용하여 스위치 없이 항시 HIGH 또는 LOW 값을 주고자할 때도 쓰입니다.

[참고] 
AVR에서 인식하는 정확한 값은
0~5v를 사용할경우 2v이상이면 HIGH로 인식하고, 0~3.3v를 사용할 경우 1.5v이상이면 HIGH로 인식한다고 합니다.

  1. BlogIcon 나우테스 2009.06.10 07:15

    참고로 저 경우 디지털 회로의 sink current를 확인하고 그에 맞는 저항값을 결정해 줘야 합니다. 대략 5V회로의 경우 일반적으로 4.7K를 많이 쓰죠.

    • BlogIcon pepsiman 2009.06.10 09:30 신고

      풀업 풀다운 저항에 4.7K를 사용하라는 말씀이신가요?
      제가 아직 지식이 딸려서 100% 이해는 않되지만 좀더 공부해봐야 겠네요.
      나우테스님 조언 감사합니다. ^^

  2. BlogIcon 구차니 2009.08.13 11:41 신고

    사진과 내용을 조금 가져가도 될까요? ^^

    • BlogIcon pepsiman 2009.08.13 11:44 신고

      죄송합니다. 트랙백이나 링크를 이용해 주셨으면 합니다.

이 글은 arv을 배우려는 사람보다는 저처럼 비 전공자(피지컬 컴퓨팅, 미디어아트, 인터렉티브 미디어 분야등)가 avr에 관심을 갖고 계신분에게 더 유용할꺼라 생각됩니다.
처음 이쪽 분야를 접하고 arduino나 wiring, atmega128(avr 중하나)을 접하면서 선택의 기로에 서게 됩니다.
이때 이글이 도움이 되길 바랍니다.

1. Arduino
아두이노 데시밀라는 atmega168 칩을 사용합니다
칩만 보면 메모리는 8k이고 가격은 4천원대 입니다.(디바이스마트)

아두이노 두에밀라노브는 328(메모리 32k)을 사용하고 국내 정식(플러그하우스)판매가격은 3.9만원 합니다, ($29.95)

아두이노 데시밀라는 168 사용(메모리 16k)

아두이노 미니는 168을 사용하고 국내 정식판매가격은 4.8만원 합니다 ($33.95)

arduino nano는 별로 특징이 없네요. 미니 usb를 가지고 있어 좋기는한데 너무 큰듯한...

최근에 나온 아두이노 메가는 1280칩(메모리 128k)을 사용하고 


1-1 . Arduino 호환보드


아두이노스토리 카페의 딸기보드는 카페에서 공동 제작 형식으로 판매했던것 같은데 사용자가 많지않아 더이상 생산은 어려울것 같습니다.

AVRTOOLS에서 아두이노 데시밀라(168) 호환보드를 팔고 있고, 아두이노 미니 호환 보드도 팔고 있는데 가격도 저렴하고 크기도 작아 상당히 매력이 있네요.

2. Wiring

와이어링에서 사용하는 atmega128 칩은 128k 메모리에 6~7천원 합니다.(디바이스마트)
Wiring-IO (atmega128)를 샘플전자에서 17.6만원에 팔고 있네요ㅡㅡ; (이런 날...)

Wiring mini 샘플전자에서 12.1만원에 팔고 있습니다

2-2. Wiring 호환보
샘플전자에서 와이어링 미니 호환보드를 2.9만원에 판매하고 있습니다.


3. AVR

AVR은 ATmel사의 mcu로 메모리와 속도등에 따라 상당히 많은 종류가 있습니다.
그중에 가장 가격대비 성능이 좋은 atmega128이 많이 쓰이는것 같습니다.(6~7천원대)
외국에서는 attiny2313 칩도 많이 쓰더군요(2000원정도)

이러한 128보드는 1만원대 부터 다양하게 있는데 가장 싼것들은 mcu에 핀만 연결해놓은것으로 다용도로 쓸수 있고 가격도 쌉니다. arduino나  wiring도 이런 기본 보드에 속합니다.
비싼보드는 여러가지 센서나 스위치, LCD등을 붙여 놓아 별도로 구입하는 번거로움을 없에기는 했으나 가격이 꽤 비쌉니다. 
이런 교육용보드중에 유명한것으로는 네이버의 당근이의 AVR갖고 놀기 카페의 당근보드(atmega32)와 아두이노스토리 카의 체리보드(atmega128)가 있고 이들을 이용하면 카페에서 지속적인 도움을 받을수 있어 편리합니다.
당근보드 메인4만원 + 디스플레이보드 4만원

체리보드 5.5만원(2009.06.08 현재 공구중 - 아두이노 스토리카페)



4. avr을 arduino로 만들기

atmega168 보드들은 아르두이노 부트로더를 올리면 아르두이노로 쓸수 있습니다.
atmega128 보드들은 와이어링 부트로더를 올리면 와이어링으로 쓸수 있습니다.(32.768K의 크리스탈을 달아야만 합니다)

이방법이 가장 저렴하긴한데 좀 번거롭습니다.
그리고 초기에는 그다지 저렴하지도 않고요. (이것 저것 준비할게 많습니다. ISP, usb2uart)

작은태양님께서 atmega168(AVRMall) 보드에 arduino 부트로더를 올려 아르두이노로 만드는 과정을 포스팅해 놓으셨습니다. http://tinysun.net/8

동작시켜보기 위한 과정을 간단히 요약해보면
부트로더 심기
1) 아르두이노 부트로더 다운로드
2) atmega168에 ISP를 연결하여 부트로더 업로드
사용하기
3) usb2uart 연결하기
4) IDE 에서 프로그램 작성 및 컴파일
5) arduino(atmega168)에 프로그램 업로드
6) 동작

1),2) 만 하면 아르두이노가 만들어 진겁니다.
하지만 avr(atmega168)이나 아르두이노 미니 같은경우 USB 포트가 없기 때문에 usb2uart 모듈을 이용하여 프로그램을 업로드 해야 합니다.
저근 이부분이 이해가 안돼서 처음에 무지 고생했지요.

직접 만들어보는것도 좋지만 호환보드들도 워낙 저렴하니 호환보드를 구입해서 쓰는것도 추천할만한 방법입니다.

+ Recent posts