اطلاعیه

Collapse
No announcement yet.

SD Card

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    SD Card

    سلام خدمت تمامی دوستان،

    آقا یه سوال داشتم: با atmega128 اگه بخوایم با SD Card (یا مثلا microSD) کار کنیم، نهایتا حافظه مون چه ظرفیتی میتونه داشته باشه و نهایتا با SDCard چه ظرفیتی میشه کار کرد؟

    #2
    پاسخ : SD Card

    والا من الان با مگا 32 یه رم 512 بهش وصل کردم....بچه ها تست کردن تا 2 گیگ هم جواب گرفتن.....
    اطلاعات رو که تو میکرو نمیریزیم ....کم کم میخونیم تا حافظه زیادی از میکرو اشغال نشه

    اگه از کتابخونه ff بخوای استفاده کنی...با توجه به این که خیلی خیلی سنگین و پر حجم هستش حتما باید از مگا32 استفاده کنی......
    ولی کتاب خونه های کم حجم تری هم فک کنم وجود داشته باشه
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : SD Card

      ممنون md3848 از پاسختون،
      من میخوام از atmega128 استفاده کنم و از این بابت زیاد نگرانی حافظه فلش ندارم. درضمن توی سیستم FAT باید با کارت حافظه کار کنم و از کتابخانه ff.h هم میخوام استفاده کنم. آیا 2 گیگ یا 4 گیگ مشکلی برای میکرو ایجاد نمی کنه؟

      دیدگاه


        #4
        پاسخ : SD Card

        من رم گوشیم(8گیگ) رو تست کردم کار کرد...............
        اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

        اگه دوس دارید سریع به جواب برسید :
        1) قبل از پرسیدن سوال، بسرچید.
        2) سوالاتون رو با جزئیات کامل مطرح کنید.

        دیدگاه


          #5
          پاسخ : SD Card

          md3848 ممنون از پاسختون، ممنون از تجربه تون! تشکر!

          دیدگاه


            #6
            پاسخ : SD Card

            تا 8 گیگم ملت جواب گرفتن.
            1) فاصله ی MMC تا میکرو باید ماکسیمم 2 سانت باشه(یه trade off بین فاصله و حجم قابل دسترسی و کلاک میکرو وجود داره)
            2) اول از FAT 16 و بعد اگه جواب گرفتین FAT 32 رو استفاده کنین.

            دیدگاه


              #7
              پاسخ : SD Card

              نوشته اصلی توسط vahid_22002
              تا 8 گیگم ملت جواب گرفتن.
              1) فاصله ی MMC تا میکرو باید ماکسیمم 2 سانت باشه(یه trade off بین فاصله و حجم قابل دسترسی و کلاک میکرو وجود داره)
              2) اول از FAT 16 و بعد اگه جواب گرفتین FAT 32 رو استفاده کنین.
              دادا علت این که من دو دقیقه منبع تغزیه رو که وصل میکنم پروژم درست کار میکنه ولی 2 دقیقه دیگه تستش میکنم نه؟؟؟؟؟
              رو برد برد مدار رو سر هم کردم
              اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

              اگه دوس دارید سریع به جواب برسید :
              1) قبل از پرسیدن سوال، بسرچید.
              2) سوالاتون رو با جزئیات کامل مطرح کنید.

              دیدگاه


                #8
                پاسخ : SD Card

                تجربه نشون داده رو برد برد کار کردن کثیف کاریه(البته خودمم همین کارو می کنم.)
                اما احتمالا دلیلش تایمر و تابع timer_proc هستش.
                این تابع می گه SD جون فعلا زنده بمون کارت دارم.

                دیدگاه


                  #9
                  پاسخ : SD Card

                  نوشته اصلی توسط vahid_22002
                  تجربه نشون داده رو برد برد کار کردن کثیف کاریه(البته خودمم همین کارو می کنم.)
                  اما احتمالا دلیلش تایمر و تابع timer_proc هستش.
                  این تابع می گه SD جون فعلا زنده بمون کارت دارم.
                  این کد های پروژه هستش....کجاش مشکل داره ..؟؟؟؟

                  کد:
                  #include <mega32.h>
                  #include <stdio.h>
                  #include <delay.h>
                  #include <lcd.h>
                  #asm
                    .equ __lcd_port=0x1B
                  #endasm
                  
                  #include <ff.h>
                  
                  #define T1_OVF_FREQ 100
                  #define T1_PRESC 1024L
                  #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
                  
                  
                  FRESULT res;
                  unsigned int nbytes;
                  FATFS drive;
                  FIL file;
                  
                  char path1[]="0:/hamid.txt";
                  unsigned char buffer[15];
                  unsigned char lcd_buf[15];
                  
                  
                  /* error message list */
                  flash char * flash error_msg[]=
                  {
                  "", /* not used */
                  "FR_DISK_ERR",
                  "FR_INT_ERR",
                  "FR_INT_ERR",
                  "FR_NOT_READY",
                  "FR_NO_FILE",
                  "FR_NO_PATH",
                  "FR_INVALID_NAME",
                  "FR_DENIED",
                  "FR_EXIST",
                  "FR_INVALID_OBJECT",
                  "FR_WRITE_PROTECTED",
                  "FR_INVALID_DRIVE",
                  "FR_NOT_ENABLED",
                  "FR_NO_FILESYSTEM",
                  "FR_MKFS_ABORTED",
                  "FR_TIMEOUT"
                  };
                  
                  /* display error message and stop */
                  void error(FRESULT res)
                  {
                    if ((res>=FR_DISK_ERR) && (res<=FR_TIMEOUT))sprintf(lcd_buf,"%p",error_msg[res]);
                    lcd_clear();
                    lcd_puts(lcd_buf); 
                    delay_ms(2000);
                  }
                  
                  
                  
                  interrupt [TIM1_OVF] void timer_comp_isr(void)
                  {
                    /* re-initialize Timer1 */
                    TCNT1H=T1_INIT>>8;
                    TCNT1L=T1_INIT&0xFF;
                    /* card access low level timing function */
                    disk_timerproc();
                  }
                  
                  
                  
                  void main(void)
                  {
                    TCCR1A=0x00;
                    TCCR1B=(1<<CS12)|(1<<CS10);
                    TCNT1H=T1_INIT>>8;
                    TCNT1L=T1_INIT&0xFF;
                    TIMSK=1<<TOIE1;
                  
                    #asm("sei")
                    lcd_init(16);
                    delay_ms(1000);
                  
                    lcd_gotoxy(0,0);lcd_putsf(" DMF313.ir");delay_ms(1000);lcd_clear();
                  
                  
                    lcd_clear();
                    if ((res=f_mount(0,&drive))==FR_OK)lcd_putsf("FAT mounted = OK");  
                    else error(res);
                    delay_ms(2000);
                  
                  
                    lcd_clear();
                    if ((res=f_open(&file,path1,FA_READ))==FR_OK)lcd_putsf("File open hamid"); 
                    else error(res);
                    delay_ms(2000);
                  
                  
                    lcd_clear();  
                    if ((res=f_read(&file,buffer,14,&nbytes))==FR_OK)
                    {
                      lcd_putsf("Reading Data");  
                      delay_ms(2000);
                      lcd_clear();
                      lcd_puts(buffer);         
                    } 
                    else error(res);
                    delay_ms(2000);                 
                  
                    lcd_clear();  
                    if ((res=f_close(&file))==FR_OK)lcd_putsf("File closed");
                    else error(res);
                    delay_ms(2000);
                  
                  }
                  اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                  اگه دوس دارید سریع به جواب برسید :
                  1) قبل از پرسیدن سوال، بسرچید.
                  2) سوالاتون رو با جزئیات کامل مطرح کنید.

                  دیدگاه


                    #10
                    پاسخ : SD Card

                    تو اون پست ff.h بگردین بهتر جواب می گیرین اما احتمالا از تنظیمات کلاک میکرو باشه.

                    دیدگاه


                      #11
                      پاسخ : SD Card

                      نوشته اصلی توسط vahid_22002
                      تو اون پست ff.h بگردین بهتر جواب می گیرین اما احتمالا از تنظیمات کلاک میکرو باشه.
                      والا همینو هم از پست های ff.h تو این سایت پیدا کردم و یاد گرفتم....ولی نمیدونم مشکلش چیه
                      رو 8 میگ تنظیم کزدم...........100% رو 8 میگ هستش
                      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                      اگه دوس دارید سریع به جواب برسید :
                      1) قبل از پرسیدن سوال، بسرچید.
                      2) سوالاتون رو با جزئیات کامل مطرح کنید.

                      دیدگاه


                        #12
                        پاسخ : SD Card

                        من با مگا32 مموری 2 گیگ SD رو راه اندازی کردم. با همون دو کتابخونه معروف بسکام. دفعه اول هم جواب گرفتم. خیلی هم ساده و عالی بود. حتما از سوکت های مموری استفاده کن. مسیر کارت تا میکرو کوتاه باشه. از تقسیم مقاومتی استفاده کن. مموری ها با ظرفیت بالا هم اگر استفاده کنی شنیدم اگر FAT32 فرمت کنی نابود میشن. من با 2 گیگ کار کردم جواب داد و خوب بود. مگا32 چون رم کمی داره بیش از یک فایل همزمان نمی شه روش باز کرد ولی مگا 128 محدودیتش کمتره
                        همچنین روی برد برد تست کردم، مسیر ارتباطی هم حدود 16 سانت بود. اصلا هم مشکلی نداشت تازه میکرو رو به ماژول بلوتوث HC-05 هم وصل کردم با گوشی و لپ تاپ دستور برای مموری ارسال می کردم و وایرلس باهاش کار می کردم. خیلی باحال بود. (البته برای این قسمتش خیلی اذیت شدم ولی می ارزید!) :wow: :wow: :wow:
                        موفق باشی
                        STM32 واقعا یه چیز دیگه است...

                        دیدگاه


                          #13
                          پاسخ : SD Card

                          تصاویری از راه اندازی و مدار MMC امیدوارم شما هم بتونی سریع راه اندازی کنی لذتشو ببری! :smile: :smile:





                          STM32 واقعا یه چیز دیگه است...

                          دیدگاه


                            #14
                            پاسخ : SD Card

                            آقا یه سوال دیگه:
                            بااستفاده از کتابخونه ff.h فرض کنین یه فایل رو با f_open ساختیم، و با f_write یه چیزی توی اون نوشتیم، بعد با f_close فایل روببندیم. حالا دوباره بخوایم یه چیزی رو به فایل اضافه کنیم توی ادامه برنامه(append). آیا با استفاده از f_open و بعدش f_write میشه این کارو کرد؟

                            لطفا راهنمایی کنین

                            دیدگاه


                              #15
                              پاسخ : SD Card

                              نوشته اصلی توسط quasar
                              آقا یه سوال دیگه:
                              بااستفاده از کتابخونه ff.h فرض کنین یه فایل رو با11 f_open ساختیم، و با f_write یه چیزی توی اون نوشتیم، بعد با f_close فایل روببندیم. حالا دوباره بخوایم یه چیزی رو به فایل اضافه کنیم توی ادامه برنامه(append). آیا با استفاده از f_open و بعدش f_write میشه این کارو کرد؟

                              لطفا راهنمایی کنین
                              1.f_mount
                              2.f_open->CREATE_ALWAYS
                              3.f_write
                              4.f_close
                              5.f_open->EXISTING_ALWAYS
                              6.f_write
                              7.f_close

                              is it true to use?

                              دیدگاه

                              لطفا صبر کنید...
                              X