본문 바로가기

[AVR]/AVR_EVM

(14)
AVR 개발환경 설정 - 무료 개발툴(WINAVR + AVR Studio) 이용 AVR 개발환경 설정 - 무료 개발툴 이용 개발 환경 설치 AVR 개발 환경 구축을 하기 위해 필요한 파일은 AVR을 컴파일 할 수 있는 WINAVR과 IDE 및 프로그래밍 툴인 AVR Studio 이고 아래링 크에서 다운 로드 가능하다. 1) WINAVR 다운로드 : http://winavr.sourceforge.net/download.html 2) AVR Studio 다운로드 : http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 각 파일의 최신 버전을 다운로드 받아 설치한다. (별다른 설정 없이 각 파일을 디폴트 디렉토리에 설치하면 된다.) IDE환경 설정 및 기본 예제 컴파일 프로그램 설치가 완료 되었다면 AVRStudio를 실행한다. 새..
[AVR] Atmel AVR Studio5 를 이용한 개발환경 설정 [AVR] Atmel AVR Studio5 를 이용한 개발환경 설정 기존 버전에서 완전히 새로운 형태의 AVR Studio5 가 릴리즈 되었다. AVR Studio5를 이용하여 프로젝트 생성하여 테스트 해보았다. 새로운 프로젝트 생성 AVR Studio4와는 완전히 다른 느낌이다. 이클립스 기반인듯한데... 컴파일러는 기존의 WINAVR을 링크해서 사용하다. 디바이스 선택 이렇게 하면 간단히 프로젝트파일이 생성되고 원하는 파일을 작성하여 컴파일 하면 문제 없이 컴파일 되는 것을 확인 할 수 있다. 여러가지 기능들 변수, 함수 보기나 프로젝트 관련 기능들은 최신의 IDE환경을 따라 편리한 기능들이 많다. 아쉬운점(버그?) 다른 폴더에 있는 파일을 프로젝트에 추가 시키면 기존 AVRStudio와 다르게 파일..
AVR 파워다운 모드 전류측정 실험 AVR 파워다운 모드 전류측정 실험 AVR은 저전류 전용 칩이 아니기 때문에 고려 해본적이 없었는데 전류소모를 적게 해야 할 일이 있어 AVR소비 전류를 줄이는 방법에 대해 검토 해 보았다. MSP430에 비하면 비할 바가 못되지만 아무튼 5단계의 슬립모드 설정이 가능하고 실험 결과 나쁘지 않게 사용가능할것 같다. AVR전류 측정 전원 공급후 while루프 돌때 - 12mA USB기능 동작시 - 25mA 아무런 동작을 하지 않아도 12mA가 흐러고 타이머나 기타 페리를 사용하는 순간 25mA까지 소비 한다. 이 상태로는 좀 문제가 있는것 같고 슬립모드 관련 데이터 시트를 보니 몇가지 방법이 있는것 같다. 테스트에 사용한 칩은 ATmega88V이다. 예전 버전 ATmega8을 가지고 테스트 하다 고생 했는..
AVR 와치독(Watchdog) 타이머 사용하기 AVR 와치독(Watchdog) 타이머 사용하기 MCU가 예외 상황으로 멈춰 있을때 리셋을 걸어 주어야 하는데.. 이때 Watchdog를 사용할 수 있다. 초기화는 WDTCR레지스터의 비트3을 설정해주면 와치독 타이머가 동작한다. 이때 주의 사항은 MCUSR레지스터의 WDRF비트를 0으로 설정해 주어야 한다. 와치독 타이머가 동작하면 설정한 주기 이내로 레지스터 값을 클리어 해 주어야 하는데 #asm("WDR") 로 가능하다. WIN AVR을 이용하면 wdt.h에 기본 함수가 정의 되어 있어 간단히 사용할 수 있다. AVR Watchdoc 타이머 사용 예제 소스코드 #include #define WDTO_15MS 0 #define WDTO_30MS 1 #define WDTO_60MS 2 #define W..
[ATXmega128a1 EVM] TFT LCD EXP 보드 테스트 [ATXmega128a1 EVM] TFT LCD EXP 보드 테스트 ATXmega128a1 보드를 이용하여 LCD_EXP_EVM 보드 를 테스트 했다. 회로도 LCD_EXP_EVM보드 회로도 ATXmega128 EVM 보드 회로도 ATXmega128a1 TFT LCD(COM26T2844) 테스트 예제 코드 //----------------------------------------------------------------------------- // TFT LCD(COM26T2844) Driver #define LCD_LAT_BIT BIT8 #define LCD_LAT_PORT PORTA #define LCD_LAT_ON() Sbi(LCD_LAT_PORT, LCD_LAT_BIT) #define LCD_..
WINAVR 버전별 사이즈 비교 3종류의WinAVR(을)를 간단하게 전환해 가능하게 되었으므로,AVRminiProg-071222의 원시 코드를 사용해 생성하는 코드 사이즈를 체크해 보았습니다. AVRminiProg(을)를-O2옵션,mega168용으로 컴파일 한 결과입니다. 덧붙여 컴파일에는,default 디렉토리에서 작업을 실시했습니다. 또,Makefile (을)를 이하와 같이 수정해,chwinavr커멘드로,WinAVR(을)를 바꾸면서,make clean, make 의 순서로 실행했습니다. Makefile의CFLAGS 에 이하와 같이-I.. (을)를 추가한다. CFLAGS += -I.. -Wall -gdwarf-2 ... ^^^^ 컴파일러 버젼 릴리스 일자 코드 사이즈 데이터 사이즈 gcc version 3.4.6 WinAVR 2006..
printf_P() 함수를 이용한 SRAM절약 printf_P() 함수를 이용한 SRAM절약 AVR에서 문자열은 일반 컴파일러와 다르게 SRAM에 저장이 된다. 특히나 램이 적은 MCU에서는 디버깅 출력을 위한 문자열 때문에 곤욕을 치루는데... printf_P()함수를 이용하면 쉽게 해결 할 수 있다. printf("\n\n** String Test - Memory Alocated FLASH. **\n"); 일반적인 printf를 이용하면 문자열이 SRAM영역으로 잡힌다. #include printf_P(PSTR("\n\n** String Test - Memory Alocated FLASH. **\n")); printf_P()함수를 이용하면 문자열이 FLASH영역으로 잡히므로 램을 줄일 수 있다. 따지고 보면 아래과 같은 형식이다. 예전에는 이렇게..
AVR Studio AVR GCC컴파일시 이유없는 에러 발생시 대처 AVR Studio AVR GCC컴파일시 이유없는 에러 발생 정확한 에러의 원인을 찾지 못하고 에러가 발생하는 경우가 종종 있다. 정확한 원인은 잘 모르겠지만 아무래도 AVR Studio의 문제 인것 같다. error result Loaded plugin STK500 Loaded plugin AVR GCC gcc plug-in: Output directory D:\work\avr\evm\ftp\default\ does not exist gcc plug-in: Created directory D:\work\avr\evm\ftp\default\ gcc plug-in: Error: Object file not found on expected location 그 에러 원인중 몇가지가 있는데 우선 함수를 중복해서..