ÀÌ ¸Å´º¾óÀº 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)
  {
    
  }

}