[AVR] (84) 썸네일형 리스트형 [GModule EVM] 관련자료 [GModule EVM] 관련자료 관련 예제 소스 : [GModule EVM] 테스트 - Atmega8 관련 예제 참고 회로도 : LED Switch Buzzer, LCD RS485 [GModule EVM] - Atmgea8 DIP Board Test 제작 Atmgea8 DIP Board Test 제작 16개의 아날로그출력의 적외선 거리 센서와 초음파 센서이 데이터를 RS-485 통신으로 전송하는 프로젝트가 있어 프로젝트용으로 쓰고, 여러가지 기능들을 추가해 테스트 보드 형태가 될 수 있도록 Atmega8 보드를 제작해 보았다 별다른 기능은 없고, 센서에 맞도록 커넥터 처리되어 있고... LCD, LED, SW, RS485... 등의 간단한 기능으로 구성되어 있다. [GModule EVM] AtMega8 DIP 관련 자료 참고 [AtTiny13 EVM] 보드 관련 자료 [AtTiny13 EVM]보드 제작 ATtiny13 핀아웃 회로도 AtTiny13/15 SMD/DIP타입 모두 가능하도록 구성 ->주의 사항 : 2번핀 PB4 ,3번핀 PB3의 실크가 바뀌어 있음. 회로도와 같이 PB3, PB4의 순으로 되어 있음 Attiny13 사이즈는 기존 MSP430 보드와 호환되로록 하기위해 조금 큰 느낌이 있다. PCB는 0.8T로 제작하여 얇고 ISP단자를 호환 커넥터로 빼 두었다. 실제 어플리케이션에서는 세로로 연결하여 적용할 수 있다. Application Board DC Motor (PWM), AV(ADC), Tacometer(ADC), SW(GPIO)를 테스트 할 수 있는 보드에 적용하여 기능 테스트를 할 수 있다. AtTiny13 개발환경 설정 AtTiny13 개발환경 설정 AVR Tiny13 컴파일 AVRGcc 2004버전과 호환 해서 프로그램을 작성해야 한다면 아래와 같이 설정한다. Tiny13은 AVRGcc 2005버전으로 컴파일 해야 하므로 2005버전을 WinAVR2005디렉토리에 설치하고 make를 호출 해주도록 Edit에 설정한다. Makefile에서 디렉토리를 변경 시켜주면 된다. : # Define directories DIRAVR = C/WinAVR2005 DIRAVRBIN = $(DIRAVR)/bin DIRAVRUTILS = $(DIRAVR)/utils/bin DIRINC = . DIRLIB = $(DIRAVR)/avr/lib : 환경변수 수정 새로운 컴파일러를 위해 환경변수에서 Path부분을 수정 해 주어야 한다. C:\W.. Atmega128을 이용하여 CPU실행속도 측정 테스트 Atmega128을 이용하여 CPU실행속도 측정 테스트 단순히 포트 On/Off만을 이용하여 실행 속도를 테스트 하였다. int main(void) { DDRB = 0xFF; while(1) { PORTB ^= 0xFF; } return 0; } 8FEF ldi r24,lo8(-1) 87BB out 55-0x20,r24 L17: 88B3 in r24,56-0x20 8095 com r24 ;$FF-r24 88BB out 56-0x20,r24 FCCF rjmp .L17 ;(2cycle) 포트를 On/Off 하기위해 5cycle의 CPU클럭이 필요 하므로 1CPU 클럭 : 1/16Mhz = 62ns On/Off주가 : 62ns x 5 = 310ns 실제 오실로스코프 확인 결과 Atmega128(16Mhz) P.. AtTiny13의 보드 제작 8핀의 조그만 싸이즈에도 불구 하고 20MIPS의 속도를 내고 1K Flash, 64byte EEPROM, 64Bytes SRAM을 가지고 있다. Tiny13에서 특히 SRAM을 추가 하였는데 스텍을 써야 하는 C언어 환경에서도 쉽게 프로그램 가능하게 되었다. 그전 Tiny15는 SRAM이 없어 코드 재 사용에 문제가 많이 있었는데 개인적으로 맘에드는 부분이다. 내부 오실레이터가 있어 외부 크리스탈을 붙일 필요가 없고 SPI프로그램도 가능해 쉽게 프로그램을 업데이트 할 수 있다. 8비트 타이머 카운트가 있고 PWM, 4채널 10비트 ADC가 제공된다. 예전 아날로그 회로로 구현 했던 부분을 쉽게 변경가능한 디지털 회로로 변경 가능하리라 기대해 본다. [개발일지]전자제어쇼버 보드 제작 - ATmega8 적용 테스트 [개발일지]전자제어쇼버 보드 제작 - ATmega8 적용 테스트 전자제어쇼버 프로젝트를 진행하기 위해 새롭게 보드 제작했다. 가장 큰 이슈인 가격을 고려해 Atmega8를 적용했다. 스텝모터 드라이버역시 TR어레이로 가격적인 면을 가장 고려 했고 2채널 스텝모터를 독립적으로 제어 가능하다. 실제 제품에는 2개의 모듈이 들어가 총 4개의 스텝모터를 독립적으로 제어하고 있다. 가격 이슈가 가장 크기 때문에 이 방법이 가장 저렴하지 않을까... 스텝모터는 가감속 제어 가능하고 스위치에 따라 각각의 위치로 이동하고 초기위치로 가면 보정을 하도록 하였다. ATMega8 + Step Motor Control WINAVR에서 long type shift 연산 버그 및 해결법 WINAVR에서 long type으로 시프트연산을 사용하면 0으로되는 현상을 발견했다. 이것때문에 3시간이상 고생했다. 결국 memcpy함수를 이용해서 변수를 복사 하는방법을 해결하였다. unsigned long GetFileSize(void) { unsigned char buffer[4] = {0x00, 0x24, 0x3d, 0x2a}; unsigned long size = 0; printf("%02x ", buffer[0]); printf("%02x ", buffer[1]); printf("%02x ", buffer[2]); printf("%02x ", buffer[3]); printf("\r\n"); //Shif연산 사용 size = (buffer[3] 이전 1 ··· 7 8 9 10 11 다음