[AVR]/Mega1282007. 9. 7. 08:16

[atmega128] 관련자료 모음


핀맵

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/WIZNET_EVM2007. 9. 6. 23:02

[W5100 EVM]Simple TCP-Client 예제1 - AVR128

 
[W5100 EVM]Simple TCP-Client 예제1 - AVR128
사용자 삽입 이미지
[W5100 EVM]모듈을 이용하여 간단한 TCP-Client 예제를 작성해 보겠습니다.
 
 
코드구조
현제 예제는 AVR Studio(GCC)를 이용하여 작성되었지만 레이어를 두어 다른 CPU나 컴파이러에서도 쉽게 포팅 가능하도록 구성되어 있습니다.
전체 폴더 구조는
[00_hal] : 하드웨어 종속적인 데이터 파일
[01_drv] : 각종 드라이버 관련 파일
[ex0_..] : 사용자 Application
 
로 구성되어 있고 Wiznet칩 관련 드라이버는 [01_drv/wiznet/..]폴더에 있습니다.
 
 
 
 
버스모드 설정
W5100의 Access모드는 DIRECT_MODE, INDIRECT_MODE, SPI_MODE가 있고 자신의 하드웨어에 맞게 설정하면 됩니다.
DIRECT_MODE가 가장 속도는 빠르지만 Data-8, Address-14 Ctl-5 많은 제어핀이 필요하므로 하드웨어가 복잡해 집니다.
SPI_MODE는 속도는 느리지만 MOSI, MISO, SCLK, CS, INT의 5핀만으로 가능하므로 소형 마이컴에 적합 합니다.
INDIRECT_MODE는 Address핀을 사용하지 않아 핀을 좀더 줄인 모드로 동작할 수 있습니다. At91SAM7과 같이 포트가 적은 CPU는 이 방법을 쓰면 속도도 유지하면서 포트를 줄일 수 있는 방법입니다.
 
예제는 간단히 테스트 목적이므로 SPI방식으로 설정 했습니다.
 
[/01_drv/wiznet\mcu/types.h] 파일에서 버스모드를 설정할 수 있습니다.
 
//#define __DEF_IINCHIP_BUS__           __DEF_IINCHIP_DIRECT_MODE__
//#define __DEF_IINCHIP_BUS__           __DEF_IINCHIP_INDIRECT_MODE__

  #define __DEF_IINCHIP_BUS__            __DEF_IINCHIP_SPI_MODE__             //Enable SPI_mode
 
 
 
SPI방식 연결회로도
 /INT단자는 인터럽트 방식을 사용하지 않을때는 연결하지 않아도 됩니다. 간단히 폴링방식 테스트만 원한다면 인터럽트는 이용하지 않아도 되고 대부분의 예제는 폴링방식으로 가능합니다.

 
[ExpBoard]에서 AVR을 이용한 SPI방식으로 연결
 
 
 
 
DIRECT_MODE 연결 회로도
 
 
 
 
 
 
네트웍초기화
 
Source IP, Destiantion IP, Gateway ip등은 간단히 define으로 정의하여 자신의 네트웍 환경에 맞도록 설정해 줍니다.
 
 
클라이언트의 일은 접속되기를 수동적으로 기다는 서버와의 통신을 시작 하는 것이다.
TCP클라이언트가 수행하는 4가지 단계
1)socket()을 이사용하여 TCP소켓 생성
2)connect()함수를 이용하여 서버와의 연결을 설정
3)send(), recv()함수를 이용하여 데이터 송수신
3)close()함수로 연결 종료
 
 
메인 함수
프로그램 자체는 상당히 간단하게 작성 했습니다.
InitWiznet(), init_timer(), NetInit() 함수로 W5100을 초기화 하고
ProcessTcpClient()함수에서 이더넷을 수신되는 데이터를 감시 하다 데이터가 들어오면 recv()함수로 수신된 데이터 만큼 읽어올 수 있습니다.
len = recv(SOCK_MYTEST, data_buf, len);
 
데이터를 전송할 경우는 send()함수를 이용하여 데이터를 원하는 길이만큼 전송하면 됩니다.
send(SOCK_MYTEST, data_buf, len);
 
 
 
//-----------------------------------------------------------------------------
// Main Routine
//-----------------------------------------------------------------------------
int main(void)
{
   SystemInit();
 
   //Serial Init
   U0_Init(BAUD_115200);
   DebugPrint("Wiznet W5100 Test Program.\r\n");
 
   //W5100 Chip Initialize
   //----------------------------
   InitWiznet();
 
   NetInit();
   //----------------------------
 
   //Display Net Configuration
   GetNetConfig();
 
   while (1)
   {
      //TCP Client Process
      ProcessTcpClient();
   }  
}
//-----------------------------------------------------------------------------
 

실행결과

클라언트 모드로 동작하며 서버로 부터 데이터가 전송되면 시리얼 포트로 전송된 데이터를 출력하는 예제의 터미널 결과값 입니다.

Posted by nexp

댓글을 달아 주세요

[AVR]/AVR_EVM2006. 6. 12. 20:21

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) PD On/Off 출력. (316ns)




AVR(atmega163 8Mhz) P1 On/Off 출력. (6.36us)



(8051, Aduc841 속도 측정 테스트 참고)
Posted by nexp

댓글을 달아 주세요

[AppBoard]/PROTO_BOARD2006. 5. 20. 22:33

[ARM-EVM] ARM스터디 보드 - 휴대용 심전도계 프로토 보드

[ARM-EVM]ARM스터디 보드

사용자 삽입 이미지


휴대용 심전도계 프로젝트를 위한 프로토 보드로 ARM스터디도 가능하도록 만든 보드 이다.
프로젝트에 필요한 주변회로 및 각종 프리페럴을 두어 스터디용으로 가능하도록 했다. 어차피 1차 보드라 테스트 할 사항도 많고 업그레이드나 디버깅을 위해 상당히 유용하다.
가격에 민감한 프로젝트는 값싼 MCU를 선정하기 전에 프로토 보드를 제작해 기능테스트 먼저 하고 추후 MCU를 쉽게 변경할 수 있다.


LCD테스트
그래픽 LCD, 텍스트 LCD 테스트 가능


CPU교체 가능
CPU보드 교체가능, CPU의 모든핀을 헤더핀으로 뽑아 테스트 가능
MP3 모듈, 칼라 LCD모듈 등 각종 SPI모듈 연결 가능




 


각종 프리페럴
ADC테스트용 VR, IR리모콘, 부저, DA->AD루프백, Diff AD Opamp, 스위치, LED


RTC, 4Mbyte 시리얼 플래시


SD소켓


Posted by nexp

댓글을 달아 주세요

  1. 이희성

    심전도계로 맥박 측정되나요?프로브는 어떤거 쓰시는지요?
    죄송하지만 회로도 주실수 있나요?

    2008.10.24 16:03 [ ADDR : EDIT/ DEL : REPLY ]

[AVR]/Mega1282002. 2. 16. 23:43

[Ez-AVR] 보드 관련자료

[Ez-AVR]관련자료


회로도



Ez-AVR라는 명칭으로 atmel사의 AtMega128스터디를 위해 상당한 교육적 철학을 가지고 만든 보드이다.
일단 CPU는 확장 및 다른 MCU와 호환성을 가지도록 가능하도록 모듈로 제작 했다. 실제로 이런 모듈로 만든것은 거의 처음 시도이지 않을까...


가장 기본적인 베이스 보드로 연결될 수 있다.
기본 포트가 모두 뽑아져 있으며 RF. Bluetooth모듈을 장착할 수 있고 PC인터페이스 실습 장비와 호한성을 가지는 커넥터가 있다.



이후 Micomouse나 로봇 제어를 위핸 모듈에 연결할 수 있도록 확장 및  다른 MCU와 호환성을 위한 메모리 및 PLD가 있는 베이스 보드를 제작 하였다.






PC인터페이스 실습 장치와 호환되어 기존 코드를 그대로 사용할 수 있도록 구성되어 있고 실제로 PC에서 돌리던 여러가지 예제를 동일한 코드로바로 실습해 볼 수 있다.






기본적인 예제와 응용 예제를 마스터 한 후 최종 어플리케이션이 될수 있는 마이크로마우스와 같은 로봇 제어에 적용될수 있도록 해서 마이컴 베이스의 제어에 관련해 전체적인 스터디를 할 수 있도록 구성되어 있다.
Posted by nexp

댓글을 달아 주세요