11/17/2015

AVR LIBC 관련정보 및 예제

1. AVR LIBC 

개발을 시작하다보니 AVR의 Device를 Control를 하려다 보니, 개별 예제 소스가 필요했는데, 마침 AVR의
각 Device를 쉽게 Control 할 수 있도록 Library 형태로 제공하는 source를 발견을 하였다.
그리고 사용자는 이를 include 하고 호출하는 형태로 이용하면 된다.

우선 아래의 사이트에서 본인의 AVR의, 지원여부를 확인하고 사용하자

  http://www.nongnu.org/avr-libc/user-manual/index.html


1.1 기본 AVR LIBC 기본 정보 

  • Module 정보 
  http://www.nongnu.org/avr-libc/user-manual/modules.html
  http://www.eit.lth.se/fileadmin/eit/courses/edi021/avr-libc-user-manual/modules.html


  • 유저메뉴얼
     아래의 정보에서 Tool Chain 정보와 관련된 정보를 확인할수 있다. 
  http://www.nongnu.org/avr-libc/user-manual/pages.html   

  • 메모리영역
     빌드시 각영역, 이부분은 나중에 빌드후 생성된 *.map과 보면 되겠다.
     Linker script는 아직 찾지를 못했다.

  http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

  • TOOL CHAIN 소개
  현재 GCC를 사용하고 있으며, 저 같은 경우, GCC 3.3 Version이다
  http://www.nongnu.org/avr-libc/user-manual/overview.html

     GCC 메뉴얼
  https://gcc.gnu.org/onlinedocs/
  https://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/

AVR Option을 확인하면 되고,  attribute 기능은 현재 ldscript 혹은 gcc 옵션이랑 같이 연동되겠다.

  • 기본 구현방법 및 예제
  https://exploreembedded.com/wiki/AVR_C_Library


1.2  AVR LIBC 주요 Manual  

내가 사용하는 Device 들이며, 이를 이용하여 구현을 할 것이라 자료수집

  • EEPROM 관련 메뉴얼
  http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html

  • FLASHROM 관련 메뉴얼
  http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html#ga963f816fc88a5d8479c285ed4c630229

  • ISR 관련메뉴얼
      ISR or SIGNAL을 사용하시기전에 반드시  sei() 사용 해주시기 바랍니다.
 

자세한 내용은 아래사이트

  http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html
  https://ccrma.stanford.edu/courses/250a-fall-2005/docs/avr-libc-user-manual-1.2.5/group__avr__interrupts.html


2. 예제 Program 및 AVR library     

위의 AVR Libc에서 다 지원이 되면 좋겠지만, 지원이 많이 되지 않기 때문에
필요 Library와 예제 Program을 아래에서 참조하자.


  • 기본예제 및 기타 필수 Library Download    
  http://www.procyonengineering.com/embedded/avr/avrlib/docs/html/index.html
  http://www.procyonengineering.com/embedded/avr/avrlib/docs/html/main.html

  • Timer 와 Delay        
  Timer와 Delay구현하기위해서 다음과 같은 부분을 읽고 참조했지만 결론적으로,
  위에 library에 있는 timer128.h을 사용하여 쉽게 구현하여 이용했습니다. 

  http://dal2iya.tistory.com/category/knowledge/AVR%20-%20ATMega128?page=1
  http://dal2iya.tistory.com/category/knowledge/AVR%20-%20ATMega128?page=2
   
  http://efundies.com/avr/avr_timer_interupts_c_simple.htm
  http://binworld.kr/35
              http://www.procyonengineering.com/embedded/avr/avrlib/docs/html/group__timer128.html

      * HW Info      
  http://blog.naver.com/PostView.nhn?blogId=jung4453&logNo=110017823188

  • UART 
  UART로 printf 구현하기 예제
  http://www.appelsiini.net/2011/simple-usart-with-avr-libc

  • Memory Area and Malloc
  http://www.eit.lth.se/fileadmin/eit/courses/edi021/avr-libc-user-manual/malloc.html


3. 기타 참고 예제 

현재 AC 모터 제어와 온도 센서가 중요하기때문에, LCD의 제어 및 폰트기능등 각각을 참고하기 위해서 관련자료 수집.

  • LED
  http://cafe.naver.com/circuitsmanual/31137

  • LCD
  http://cafe.naver.com/circuitsmanual/31137

  http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1118&docId=102930127&qb=QVZSMTI4IOyGjOyKpA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=SmG/UsoRR1dsstxDDJ0sssssss8-260606&sid=YK6CEMPM7Y5vLF%2BCpXw8GQ%3D%3D

  • UART 관련소스 
  http://cafe.naver.com/circuitsmanual.cafe?iframe_url=/ArticleList.nhn%3Fsearch.clubid=18968931%26search.menuid=191%26search.boardtype=L

  http://cafe.naver.com/carroty/85366

  • 3상 모터
  http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1118&docId=226863507&qb=M+yDgeuqqO2EsA==&enc=utf8&section=kin&rank=4&search_sort=0&spq=1&pid=SPdSdloRR0GssuQAvJGsssssssK-348429&sid=I5wRQrnBMHxsXknz/R0lXg%3D%3D

  http://www.higenmotor.com/info/download_data.asp?no=334


  • 3상 모터의 원리 (U V W)     
  http://www.cnmmotor.com/data/Chapter%202.%EC%9C%A0%EB%8F%84%EB%AA%A8%ED%84%B0%EC%9D%98%20%EA%B8%B0%EC%B4%88.pdf

  https://www.youtube.com/watch?v=XLVWqMSvNtU

  https://en.wikipedia.org/wiki/Induction_motor

  http://tip.daum.net/question/56303326