[AVR]/AT90USB2012. 8. 1. 12:09

[AT90USB162] FLIP에러 문제 - cannot open hex file

FLIP을 이용하여 AT90USB162 다운로드 하려고 하는데 아래와 같이 에러가 발생했다.

"FLIP cannot open hex file "

 

몇번 시도하다 원인을 알아냈는데... 한글 폴더를 지원하지 않는것 같다.

영문 폴더로 복사해서 지정하니 정상 동작한다.

이건뭐...

 

 

 

 

Posted by nexp

댓글을 달아 주세요

[AVR]/AT90USB2010. 9. 12. 13:51

[AT90USB162 EVM] HID Mouse 만들기

[AT90USB162 EVM] HID Mouse 만들기


AT90USB162는 AVR코어에 USB기능이 있는 칩이다. 저렴하게 그리고 기존 AVR코드를 활용해서 USB기능을 추가하여 제작할 경우 유용하게 사용될수 있다.

Atmel사에서 제공하는 예제를 이용하여 HID Mouse를 간단히 만들어 보았다.
우선 마우스의 구동을 위해 스위치가 있는 확장보드를 이용해 하드웨어를 구성한다.  각 키에 따라 UP(PB0), Down(PB1), Left(PC5), Right(PB6)를 점퍼 이용하여 설정.



그리고 보드 자체의 LED와 스위치를 이용해 마우스 클릭 버턴 Click(PD1) 을 구현한다.


AT90USB162 HID Mouse 소스코드
(소스코드)

gcc를 이용한 AVRStudio를 이용하여 컴파일 가능하다.
stk526.h 파일의 마우스 이동을 설정하는 키 및 LED 정의를 [AT90USB162 EVM] 하드웨어에 맞게 설정한다.
//Key define
#define   Joy_init()                Cbi(DDRC, BIT5|BIT6);Cbi(DDRB, BIT0|BIT1);Sbi(PORTC, BIT5|BIT6);Sbi(PORTB, BIT0|BIT1);
#define   Push_button_init()        Joy_init()

#define   Is_joy_left()             (((PINC&BIT5) == 0) ? TRUE : FALSE)   
#define   Is_joy_not_left()         (((PINC&BIT5) == 0) ? FALSE : TRUE)
#define   Is_button_left()          Is_joy_left()
#define   Is_button_not_left()      Is_joy_not_left()

#define   Is_joy_middle()           FALSE
#define   Is_joy_not_middle()       TRUE
#define   Is_joy_select()           Is_joy_middle()
#define   Is_joy_not_select()       Is_joy_not_middle()
#define   Is_button_middle()        Is_joy_middle()
#define   Is_button_not_middle()    Is_joy_not_middle()

#define   Is_joy_right()            (((PINC&BIT6) == 0) ? TRUE : FALSE)
#define   Is_joy_not_right()        (((PINC&BIT6) == 0) ? FALSE : TRUE)
#define   Is_button_right()         Is_joy_right()
#define   Is_button_not_right()     Is_joy_not_right()

#define   Is_joy_down()             (((PINB&BIT1) == 0) ? TRUE : FALSE)
#define   Is_joy_not_down()         (((PINB&BIT1) == 0) ? FALSE : TRUE)
#define   Is_button_down()          Is_joy_down()
#define   Is_button_not_down()      Is_joy_not_down()

#define   Is_joy_up()               (((PINB&BIT0) == 0) ? TRUE : FALSE)
#define   Is_joy_not_up()           (((PINB&BIT0) == 0) ? FALSE : TRUE)
#define   Is_button_up()            Is_joy_up()
#define   Is_button_not_up()        Is_joy_not_up()

#define   Hwb_button_init()         Cbi(DDRD, BIT1);Sbi(PORTD, BIT1)
#define   Is_hwb()                  (((PIND&BIT1) == 0) ? TRUE : FALSE)


마우스 인식후 실제 마우스 동작에 따른 이벤트 처리는  is_usb_mouse_event()함수에서 설정하면 되고 이 예제에서는 마우스 클릭에 따라 LED가 On/Off되도록 수정했다. is_usb_mouse_event()함수는 main에서 10ms 주기로 수행된다. 물론 실행 주기의 변경도 가능하다.
bit is_usb_mouse_event(void)
{
   bit usb_mouse_event_stored;
   Usb_mouse_report_reset();

   if(Is_device_enumerated())
   {
  //마우스 버턴에 따라 LED표시
  if(Is_mouse_click_left_event())Led1On();
  else Led1Off();
  
  if(Is_mouse_up_event())Led2On();
  else Led2Off();  

//마우스 이동 및 버턴에 따를 처리
  if(Is_mouse_click_left_event())
  {
   Usb_mouse_click_left();
   usb_mouse_event_stored = 1;
  }

  if(Is_mouse_release_left_event())
  {
   Usb_mouse_release_left();
   usb_mouse_event_stored = 1;
  }

  if (Is_mouse_up_event())
  {
   Usb_mouse_up();
   usb_mouse_event_stored = 1;
  } 

  if (Is_mouse_left_event())
  {
   Usb_mouse_left();
   usb_mouse_event_stored = 1;
  }

  if (Is_mouse_right_event())
  {
   Usb_mouse_right();
   usb_mouse_event_stored = 1;
  }

  if (Is_mouse_down_event())
  {
   Usb_mouse_down();
   usb_mouse_event_stored = 1;

:
}


AT90USB162 HID Mouse 테스트 동영상
Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.09.30 14:44 [ ADDR : EDIT/ DEL : REPLY ]
  2. 킹보스

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.04.03 20:06 [ ADDR : EDIT/ DEL : REPLY ]
  3. breeze

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.05.17 18:04 [ ADDR : EDIT/ DEL : REPLY ]

[AVR]/AT90USB2010. 8. 2. 15:27

[AT90USB162 EVM] 부트로더 - USB다운로더

[AT90USB162 EVM] 부트로더 - USB다운로더

AT90USB162는 기본적으로 USB를 이용하여 펌웨어를 다운로드 할 수 있는 부트로더가 있기 때문에 USB를 이용하여 간단하게 펌웨어를 다운로드 할 수 있다. Flip프로그램을 이용하면 간단히 USB로 펌웨어를 다운로드 할 수 있다.

USB 부트를 사용하기위해 PD7를 Low로 하면 된다.

 USB Boot Mode Enable -> PD7 Low





부트 매모리 맵


부트 영역도 Write가능하므로 독자적으로 부트로더를 수정 가능하다. ISP를 이용하여 부트영역을 지우거나 만약 실행코드가 부트영역을 넘어가는 경우 새롭게 부트로더를 다운로드 해야 한다.
bl_usb_162v105.a90(Atmel 홈페이지에서 다운로드 가능하지만 소스는 제공하지 않고 있다.)

물론 부트영역을 보호하는 락비트도 있다.
Posted by nexp

댓글을 달아 주세요

[AVR]/AT90USB2010. 4. 3. 17:39

[AT90USB162 EVM] USB 를 이용한 펌웨어 다운로드 - Flip 사용법 정리



AT90USB162 테스트 예제 소스코드


AT90USB162는 기본적으로 USB를 이용하여 펌웨어를 다운로드 할 수 있는 부트로더가 있기 때문에 USB를 이용하여 간단하게 펌웨어를 다운로드 할 수 있다.
USB 부트를 사용하기위해 PD7를 Low로 하면 된다.

 USB Boot Mode Enable -> PD7 Low





PD7은 디폴트 Low이므로  USB커넥터를 연결하면 USB인식을 한다.
USB인식하면서 설치 드라이버를 찾는데 드라이버는 Atmel사의 Flip을 설치하면 그 설치된 곳에서 찾을 수 있다.
[Flip 다운로드 링크]


기본적으로 /Flip/usb 폴더에 있다.






AT90USB 드라이버 설치 후 장치관리자를 보면 설치 여부를 확인 할 수 있다.



Flip 을 이용한 At90USB 펌웨어 다운로드
프로그램을 실행해 디바이스를 선택한다.



USB 인터페이스를 설정하고 다운로드 할 펌웨어 선택후 USB로 다운로드 가능하다.
펌웨어 다운로드 한후 "Start Appliction" 을 클릭하면 프로그램이 실행된다.
이때 주의 사항으로 "Reset" 체크 박스는 해제 하도록한다. 리셋을 하면 또다시 USB를 부트로더가 실행이 되므로 테스트 할때는 다운로드 한 펌웨어만 실행하도록 해야 한다. 테스트가 완료된 후 PD7을 High로 해서 리셋하면 사용자 프로그램이 실행된다.



AT90USB162 테스트 동영상

Posted by nexp

댓글을 달아 주세요

[AVR]/AT90USB2010. 4. 3. 16:03

[AT90USB162 EVM] 보드 제작

[AT90USB162 EVM] 보드 제작


AVR 코어에 USB Full Speed USB 디바이스를 포함하고 있는 AT90USB162 EVM 보드를 제작 했다. USB기능이 필요한 간단한 어플리 케이션에 적용하기 좋은 모듈이 되지 않을까... 물론 ADC가 없어 아쉬운 점이 있긴 하다.

간단히 특징을 살펴 보면
  • AVR USB MCU, 16K FLASH, SMD, TQFP32
  • Series:AT90
  • Flash Memory Size:16KB
  • EEPROM Memory Size:512Byte
  • RAM Memory Size:512Byte
  • No. of I/O Lines:22
  • Clock Frequency:16MHz
  • Interface Type:SPI, USART
  • Min Supply Voltage:2.7V
  • Max Supply Voltage:5.5V
  • Interface:SPI, USART


  • 회로도


    (2차 버전)










    공간이 부족해 뒷면에 AT90USB162를 실장할 수 있도록 했다.






    AT90USB162확장 테스트 보드



    AT90USB162 EVM 테스트 동영상
    AT90USB162는 기본적으로 USB로 프로그램할 수 있는 부트코드가 있기 때문에 조립하자 마자 바로 프로그램을 USB로 다운로드 해서 테스트 가능하다. Atmel에서 제공하는 Flip을 이용하면 USB로 펌웨어를 다운로드 할 수 있다.

    Posted by nexp

    댓글을 달아 주세요

    1. ica

      안녕하세요 usb 공부하는데 회로를 찾다가 여기까지 오게 되었습니다

      혹시 pcb 뜨시고 남은 기판이 있으신지 궁금합니다

      있다면 받아 볼 수 있을까요...? 물론 대금은 지불하겠습니다

      부탁드리겠습니다

      2010.09.08 13:59 [ ADDR : EDIT/ DEL : REPLY ]
    2. 저도 여기까지 오게 되었네요. 혹시 PCB 뜨시고 남은 기판이 있으신지 여쭤 봅니다

      감사합니다. 안녕히계세요

      2010.09.28 14:49 [ ADDR : EDIT/ DEL : REPLY ]
    3. gomwing@yahoo.com 입니다.

      2010.09.28 14:49 [ ADDR : EDIT/ DEL : REPLY ]
    4. mahnee

      관리자의 승인을 기다리고 있는 댓글입니다

      2012.07.16 10:37 [ ADDR : EDIT/ DEL : REPLY ]