ÀÌ ¸Å´º¾óÀº JKÀüÀÚ(JK Electronics) ¿¡ ÀÇÇؼ­ ¹ø¿ª, ¼öÁ¤, ÀÛ¼º µÇ¾ú°í ¼ÒÀ¯±Ç ¶ÇÇÑ
JKÀüÀÚ(JK Electronics)
ÀÇ °ÍÀÔ´Ï´Ù. ¼ÒÀ¯±ÇÀÚÀÇ Çã°¡¸¦ ¹ÞÁö ¾Ê°í ¹«´ÜÀ¸·Î ¼öÁ¤, »èÁ¦Çϰųª ¹èÆ÷ ÇÒ ¼ö ¾ø½À´Ï´Ù.



 

SD Memory Ä«µå SPI 3.3V/5.0V ÀÎÅÍÆäÀ̽º ¸ðµâ Atmega2560 Á¦¾î ¿¹Á¦


 
* Update history

- 2013.4.18 : Ãʱâ Release


  1. Atmega2560 Rabbit °³¹ßº¸µå¿Í ¿¬°á ½ÇÇè

(1) Atmega2560 Rabbit °³¹ßº¸µå¿Í SPI ÀÎÅÍÆäÀ̽º·Î ¿¬°á ÇÕ´Ï´Ù.

Àü¿øÀº 3.3V/5V ¸ðµÎ »ç¿ë°¡´É ÇÕ´Ï´Ù.

(2) Á¦¾î ¼Ò½º(ATMEGA2560 Avrstudio 4.14 Build589 ÇÁ·ÎÁ§Æ® ¼Ò½º ´Ù¿î·Îµå )

FAT32Çü½ÄÀÇ SD¸Þ¸ð¸®ÀÇ µð·ºÅ丮¿Í ÆÄÀÏÀ» Àо UART¸¦ ÅëÇؼ­ Display ÇØÁÖ´Â ¿¹Á¦ ÀÔ´Ï´Ù.

SPI_SCK_PIN_NO --> PB1
SPI_MOSI_PIN_NO --> PB2
SPI_MISO_PIN_NO --> PB3
SPI_CS_PIN_NO --> PB0




#include "hw_config.h"
#include "led.h"
#include "uart.h"
#include "mmc_sd.h"
#include "diskio.h"
#include "ff.h"

static FATFS fs;            // Work area (file system object) for logical drive
static char path[20= {""};   
static DIR dirs;
static FILINFO finfo;

void sd_file_list(void)
{
  u32 sd_size;
  char tx_data[16]; 


  if( disk_initialize(0== 0 )
    usart0_puts("\r\nsd initialize success.\r\n");
  else
    usart0_puts("\r\nsd initialize failed.\r\n");
  
#if 1


  f_mount(0,&fs);

  usart0_puts("\r\nf_mount()\r\n");  

  if (f_opendir (&dirs, path) == FR_OK) 
    {
      usart0_puts("\r\nf_opendir()\r\n");  
        while (f_readdir (&dirs, &finfo) == FR_OK)  
      {
        usart0_puts("\r\nf_readdir()\r\n");  
      usart0_format_puts ("\r\n%s", finfo.fname);
          if (!(finfo.fattrib & AM_DIR)) 
          {
            
              if (!finfo.fname[0])  
              {
                usart0_puts("\r\nfinfo.fname\r\n");  
                  break;         

        }
              usart0_format_puts ("\r\n%s", finfo.fname);
          }                      
        }



  }
#endif
  sd_size = SD_GetCapacity();

#ifdef USE_AVR_STUDIO
  ultoa( sd_size, tx_data, 10);
#else
  ultoa( tx_data, sd_size, 10);
#endif
  usart0_format_puts("\r\nCapacity=%s Bytes\r\n", tx_data);
}

void main(void)
{

  CLI();  // all interrupt disable

  bsp_led_gpio_init();

#if 1
  bsp_usart0_gpio_init();
  

  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 );  
  }

  init_usart0_buffer();

  bsp_usart0_interrupt_enable();  

  SEI();  // all interrupt enable

  bsp_led_core_on(ledUserCore);

  sd_file_list();
#endif

  //bsp_led_core_on(ledUserCore);

  while1 )
  {
    _delay_ms(10);
  }

  return;
}