[INTERFACE]/USB2008. 7. 29. 23:40

[Mega8-s EVM] USB를 이용한 LED제어 - 펌웨어 작성

[Mega8-s EVM] USB를 이용한 LED제어 - 펌웨어 작성

사용자 삽입 이미지

AVR-USB CDC I/O 의 참고 예제 소스를 이용해 AVR을 이용한 USB를 테스트 했다.
atMega8만을 이용하여 소프트웨어로 USB스텍을 처리 하기 때문에 속도 자체는 빠르지 않지만 저렴하고 간단하게 USB구현 하기에 상당히 좋은것 같다.

소스코드




테스트 예제는 이해를 위해 상당히 간단하게 작성했고 PC시리얼 포트로 전동되는 문자 "1", "2", "3", "4"에 따라 보드에 있는 LED를 제어할 수 있도록 구성하였다.

USB Serial포트로 데이터가 전송되면 usb_cdc_rcv()함수가 수행되며, data를 받아서 처리하면 된다.
usb_cdc_rcv
//-----------------------------------------------------------------------------
// USB CDC Read function
void usb_cdc_rcv(uchar *data, uchar len)
{
 if(len)
 {
  switch(data[0])
  {
   case '1':
    Led1On();
    break;
   
   case '2':
    Led1Off();
    break;

   case '3':
    Led2On();
    break;
   
   case '4':
    Led2Off();
    break;
  }
 }
}
//-----------------------------------------------------------------------------


회로도
클럭은 12Mhz를 사용하였고(물론 16Mhz도 가능하지만 약간의 설정이 필요하다.)
USB처리 포트는 PD2, PD4를 이용하였고, 로스피드 USB이므로 D-에 풀업 저항이 필요하다.

보드상에 LED는 PB2, PB3에 연결되어 있다.


테스트
펌웨어 다운드 후 USB커넥터를 연결하면 디바이스 드라이버를 찾는데

 "avrcdc.inf"를 설정하면 된다.
 드라이버 자체는 윈도우 USB, CDC드라이버를 이용하지만 inf파일은 파일 위치와 간단한 정보를 포함하고 있다.

드라이버가 정상적으로 설치되면 장치관리자에서 설치된 정보를 볼 수 있고 포트나 보레이트등의 변경이 가능하다. 테스트 용으로 보레이트를 9600으로 설정하였다.
 


하이퍼 터미널 혹은 시리얼 포트통신 프로그램을 이용하여 "1", "2", "3", "4"를 전송하면 Mega8-s EVM의 LED가 점등되는것을 확인 할 수 있다.

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/USB2008. 7. 28. 23:38

[Mega8-s EVM] USB CDC를 이용한 보드 제어 - 드라이버 인식

[Mega8-s EVM] USB CDC를 이용한 보드 제어

사용자 삽입 이미지


[Mega8-s EVM]을 이용하여 CDC(USB2Serial) 테스트 프로그램을 작성해 보았다.
서 참고한 소스를 수정 하였는데... 처음에는 정상 동작하지 않았다.



USB D+, D- 포트 핀 설정을 내 보드에 맞도록 수정 해 주었고 디스크립트 몇가지 수정 하였으며 실제 동작 부분도 보드 상태에 맞도록 수정 하였다.


정말 값싸게 AVR atMega8을 이용하여 USB를 이용할 수 있어 간단한 어플리케이션에 딱 좋겠다.

USB인식
플래시 라이트 후에 USB케이블을 다시 연결 해 주어야 정상 반영이 되는데... 그것때문에 시간이 좀 걸린것 같다.



드라이버 설치
드라이버는 MS에서 제공하는 CDC드라이버를 이용하고 INF파일만 좀 수정하여 설치 하였다.



드라이버가 정상 등록되면 장치관리자에서 확인 할 수 있다.
Posted by nexp

댓글을 달아 주세요

  1. 권혁진

    안녕하세요. atmega8로 USB2SERIAL 최대 속도 어느정도 나오는지 알고자합니다.

    2009.11.13 09:58 [ ADDR : EDIT/ DEL : REPLY ]

[AVR]/Mega82008. 7. 25. 23:23

[Mega8-s EVM] 관련자료

[Mega8-s EVM] 관련자료

사용자 삽입 이미지


AVR Atmega8용 소형 모듈 보드를 제작 했다.
AVR-USB 사이트에 있는 여러가지 USB관련 예제들을 테스트 해 볼수 있도록 제작해 간단한 USB응용 테스트에 쉽게 적용 가능하도록 했다. 핀맵은 표준화를 위해 s-Type 형태로 제작 하였다.

USB 관련 테스트 예제, USB 호스트 예제





기본 테스트 예제소스 및 프로젝트 파일




[Mega8-s EVM] 회로도




Atmega8 MCU


On Board LED



USB Device, Host 커넥터를 두어 전원을 공급할 수 있으며 Atmega8 USB 소프트위에 스택을 사용할 할 경우 USB테스트도 가능하도록 했다.





테스트 동영상


ATmega8 USB 테스트 동영상
[Mega8-s EVM] USB를 이용한 LED제어 - 호스트프로그램 작성 참고
 
Posted by nexp

댓글을 달아 주세요

[AVR]/Mega82008. 7. 23. 23:42

[Mega8-s EVM] 보드 제작 - USB테스트용 소형 Atmega8 EVM모듈

[Mega8-s EVM] 보드 제작 - USB테스트용 소형 Atmega8 EVM모듈

사용자 삽입 이미지


AVR Atmega8용 소형 모듈 보드를 제작 했다.
AVR-USB 사이트에 있는 여러가지 USB관련 예제들을 테스트 해 볼수 있도록 제작해 간단한 USB응용 테스트에 쉽게 적용 가능하도록 했다.



크기는 최대한 작게 만들려고 했고 AVR Mega8의 모든 핀들을 확장 할 수 있도록 했다.






기존 어플리케이션 보드와 호환이 가능하도록 해 여러가지 테스트를 쉽게 할 수 있도록 했다.
Posted by nexp

댓글을 달아 주세요

  1. SSH

    회로도는 없나요?;; 이 모듈 PCB도 뜨신거 같은뎅;;

    2008.10.13 14:05 [ ADDR : EDIT/ DEL : REPLY ]
  2. 지나다가

    잘 찾아 보시면 있습니다.

    2008.10.15 09:28 [ ADDR : EDIT/ DEL : REPLY ]

[AVR]/Mega82006. 5. 7. 19:10

[개발일지]전자제어쇼버 보드 제작 - ATmega8 적용 테스트

[개발일지]전자제어쇼버 보드 제작 - ATmega8 적용 테스트

전자제어쇼버 프로젝트를 진행하기 위해 새롭게 보드 제작했다. 가장 큰 이슈인 가격을 고려해 Atmega8를 적용했다.



스텝모터 드라이버역시 TR어레이로 가격적인 면을 가장 고려 했고 2채널 스텝모터를 독립적으로 제어 가능하다.
실제 제품에는 2개의 모듈이 들어가 총 4개의 스텝모터를 독립적으로 제어하고 있다. 가격 이슈가 가장 크기 때문에 이 방법이 가장 저렴하지 않을까...



스텝모터는 가감속 제어 가능하고 스위치에 따라 각각의 위치로 이동하고 초기위치로 가면 보정을 하도록 하였다.

ATMega8 + Step Motor Control
Posted by nexp

댓글을 달아 주세요

  1. 길손

    현재 스텝모터를 이용하여 올리신글과 같이 숫자로 보면서 모터의 구동횟수나 모터를 구동하여 움직이는 물체의 거리(약30센티)를 원하고자하는 거리에 도달하면 그때의 숫자를 보면서 컨트롤을 하고자 머리가 터지는데 이쪽분야에 문외한이라..
    어떤 스텝모터와 드라이버로 위와 같이 숫자판독을 해야 하는지 좀 이해가기 쉽게 설명 부탁드립니다.

    2010.03.04 16:04 [ ADDR : EDIT/ DEL : REPLY ]