이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
JK전자(JK Electronics)
의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.



 

EEPROM AT24C02 모듈 Atmega128 제어 예제


 
* Update history

- 2012.9.20 : 초기 Release


  1. Atmega128 Rabbit 개발보드와 연결 실험

(1) Atmega128 Rabbit 개발보드와 아래와 같이 연결(I2C 인터페이스로 제어) 합니다.

주의할 점은 AT24C02는 반드시 전원 공급을 3.3V로 해야 합니다. 5V연결 할 경우 발열과 함께 IC에 데미지를 입을 수 있습니다.

at24c02

(2) 제어 소스(ATMEGA128 Avrstudio 4.14 Build589 프로젝트 소스 다운로드 )

I2C 인터페이스를 통해서 EEPROM에 Write 하고 Read 하는 예제 입니다. 결과는 ATMEGA128의 UART1 포트를 통해서 확인 할 수 있습니다.



#include "hw_config.h"
#include "uart.h"
#include "at24c02.h"

void main(void)
{
  CLI();

  bsp_usart0_gpio_init();

  init_usart0_buffer();
  if( F_CPU == 8000000UL )   
  {
    bsp_usart0_init(F_CPU, EBaud38400, EData8, EParNone, EStop1, FALSE );
  }
  else
  {
    bsp_usart0_init(F_CPU, EBaud115200, EData8, EParNone, EStop1, FALSE );  
  }
  
  //register_uart0_function(uart0_rx_event);
  bsp_usart0_interrupt_enable();

  SEI();  // all interrupt enable

  bsp_at24c02_gpio_init();
  bsp_at24c02_init();

  _delay_ms (500);

  usart0_puts("\r\nWait. Writing data.\r\n");  

  IIC_wrbyte (0x010x12); // byte write
  _delay_ms (500);
  IIC_wrbyte (0x020x13); // byte write
  _delay_ms (500);
  IIC_wrbyte (0x030x14); // byte write
  _delay_ms (500);
  usart0_format_puts("\r\nwritten data 0x%x, 0x%x, 0x%x.\r\n"0x010x020x03);  

  _delay_ms (500);
  _delay_ms (500);
  _delay_ms (500);
  _delay_ms (500);

  usart0_format_puts("0x%x, 0x%x, 0x%x readed.\r\n", IIC_rebyte (0x12), IIC_rebyte (0x13), IIC_rebyte (0x14));


  while(1)
  {
    
  }

}