اطلاعیه

Collapse
No announcement yet.

مشکل نخواندن حافظه mmc

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

    مشکل نخواندن حافظه mmc

    سلام
    من یک حافظه mmc 512 مگابایتی رو از طریق ماژول آماده مستقیم به میکرو اتمگا 32 وصل کردم و یک ال سی دی هم برای نمایش خروجی روی میکرو بستم از کدویژن نسخه 3.12 برای کامپایل استفاده میکنم خود حافظه رو هم با فرمت fat32 با حجم 512 بایت فرمت کردم بعد یه برنامه تو سایت بود که فکر کنم مثال هفتم اقای حامد بود تو برنامه خود ایشون اصلا spi رو فعال نکرده فقط تو تنظیمات mmc پایه پورت b رو تنظیم کرده از کتابخونه ff.h هم استفاده کرده برنامه ایشون تو پروتیوس جواب میده ولی وقتی من رو میکرو میریزم جواب نمیگیرم بعد از fmount=ok اخطار fr_int_err بعد fr_exist همین طوری اینا رو میده پشت سرهم تا برسه به end نمیدونم مشکل از کجاست من تو پروژم شدیدا نیاز دارم برنامه نویسی mmc رو یاد بگیرم خواهش کمک کنید تو سایت chan رفتم دیدم کتابخونه جدید گذاشته یه ff.h گذاشته و ff.c و fconfig و discko و غیره اینا رو چطوری تو کد ویژن قرار بدم کسی میدونه من چطوری از این کتابخونه های جدید استفاده کنم این برنامه اون دوست عزیز
    راستی چرا spi فعال نکرده خود کتابخونه فعالش میکنه..



    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Author : Hamid Mohammad GHasemi
    Chip type : ATmega32A
    Program type : Application
    AVR Core Clock frequency: 8 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 512
    ************************************************** ***/

    #include <mega32a.h>
    #include <alcd.h>
    #include <ff.h>
    #include <stdio.h>
    #include <delay.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";
    char path2[]="0:/test.txt";

    unsigned char buffer_1[15]="ha is BEST..";
    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;

    delay_ms(1000);
    #asm("sei&quot

    // Alphanumeric LCD initialization
    // RS - PORTA Bit 0
    // RD - PORTA Bit 6
    // EN - PORTA Bit 1
    // D4 - PORTA Bit 2
    // D5 - PORTA Bit 3
    // D6 - PORTA Bit 4
    // D7 - PORTA Bit 5
    // Characters/line: 16
    lcd_init(16);


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

    lcd_clear();
    if ((res=f_open(&file,path2,FA_WRITE))==FR_OK)
    lcd_putsf("File opened test"
    else error(res);
    delay_ms(2000);

    lcd_clear();
    if ((res=f_write(&file,buffer_1,15,&nbytes))= =FR_OK)
    lcd_putsf("Writing Data"
    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);

    lcd_clear();
    if ((res=f_open(&file,path2,FA_READ))==FR_OK)
    lcd_putsf("File opened test"
    else error(res);
    delay_ms(2000);

    lcd_clear();
    if ((res=f_read(&file,buffer,15,&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);

    lcd_clear();
    lcd_putsf("....End...."

    while(1);
    }
    برنامه بالا تو پروتیوس جواب میده ولی رو مدار اون اخطار هایی که گفتم رو میگیرم
    این اپدیت کتابخونه های جدید mmc تو سایت http://elm-chan.org رو کجا اضافه کنم خیلی فایل های جدید توش داره با پسوند.h . .c اینها با هم چه فرقی دارن و چطوری تو کدویژن بزارمشون
    تو رو خدا هر کی بلده کمک کنه......
    با تشکر از دوستان

    #2
    پاسخ : مشکل نخواندن حافظه mmc

    با سلام
    میکرو رو چطور به کارت وصل کردین؟ تغذیه میکرو چنده؟
    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

    دیدگاه


      #3
      پاسخ : مشکل نخواندن حافظه mmc

      از ماژول اماده استفاده کردم پایه های miso , mosi,clk,ss وصل کردم با تغذیه 3.3 ولت از پاور کامپیوتر گرفتم ولی رو ماژول این قابلیت رو هم داره که 5 ولت بدم خودش 3.3 رو درست کنه این پایه cs رو وصل کردم به ss میکرو و این SS رو بصورت خورجی و مقدار 0 دادم بهش

      اضافه شده در تاریخ :
      شما برنامه رو دیدید اصلا پروتکل SPI رو فعال نکرده و این کتابخانه های جدید mmc رو اضافه کنم مشکلم حل میشه من میخوام از طریق این مثال کار با توابع fat یاد بگیرم که اصلا اجرا نشد..

      اضافه شده در تاریخ :
      http://shop.roboticngo.com/403-large_default/%D9%85%D8%A7%DA%98%D9%88%D9%84-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2-mmcsd.jpg
      این لینک عکس ماژول اماده mmc منه که به صورت Fat 32 با کلاستر 512 بایت فرمتش کردم

      اضافه شده در تاریخ :
      برای کار با mmc باید کتابخونه spi رو فعال کنم یا نه تو این برنامه که فعال نکرده و جواب داده تو پروتیوس و من باید میکرو تو وضعیت master بزارم اگر spi باید فعال بشه به صورت وقفه ای فعالش کنم یا pollling کدویژن این برنامه 2.05 هستش ممکن به خاطر ورژن جدید کدویژن من باشه که جواب نمیگیرم به نظر شما از کتابخونه جدید که مال 2015 استفاده کنم یا باهمین که تو کدویژن 3,1 هست میتونم به روش فایل سیستمی دیتا رو ذخیره کنم ...
      یه سوال دیگه من کد هگز رو از طریق بلوتوث میخوام روی mmc ذخیره کنم ایا ارایه که میفرستم مثلا 1600 تا کد هگز به صورت ارایه ذخیره میشن رو mmc و من میتونم بگم تو برنامه که فایل test رو باز کنه بعد کل ارایه رو بخونم بریزم تو یه ارایه تو حافظه میکرو...


      اضافه شده در تاریخ :
      هیچ کی نیست مشکل منو حل کنه...


      اضافه شده در تاریخ :
      پایه cs ماژول mmc رو به پایه ss میکرو باید وصل کنم یا مستقیما زمینش کنم...

      اضافه شده در تاریخ :
      تو یه سایت خوندم که کتابخانه ff.h فقط برای fat هستش باید دستورات ارتباط sd کارت با میکرو جدا نوشته بشه این یعنی چی همون spi هستش یا نه بعد کارت حافظه من sd 512 مگابایت هستش


      اضافه شده در تاریخ :
      کسی نیست که بلد باشه با کتابخونه ff.h تو کدویژن ورژن 3.12 کار کرده باشه روی میکرو جواب گرفته باشه ما رو راهنمایی کنه....................................


      اضافه شده در تاریخ :
      یعنی هیچ کسی نیست مشکل منو حل کنه دارم دیوانه میشم برنامه فقط اوکی f_mount رو میده بعدش یکی در میان خطای fr_int_err و fr_exist رو میده تا به end برسه
      یکی کمممممممممممممممممممممممممممممممک کنه....

      اضافه شده در تاریخ :
      پایه های skl و miso و mosi و ss میکرو رو باید با مقاومت pull down کنم مقاومت 3.3 کیلو و 1.8 من ماژول اماده و که خریدم گفتن دیگه نیازی نداری چیزی به مدارت اضافه کنی مستقیم به میکرو وصل کن عکس ماژول رو هم تو پاسخ های بالا گذاشتم
      تو رو خدا یکی کمک کنه دارم دیوانه میشم برنامه تو پروتوس جواب میده ولی رو مدار واقعی نه تو برنامه اصلا spi رو فعال نکرده اصلا خروجی پروتوس قابل اطمینان هست من از sd card دارم استفاده میکنم نه mmc

      اضافه شده در تاریخ :
      دوستانی که برنامه نویسی حافظه sd رو به صورت فایل سیستمی بلد هستن به من کمک کنن من برای پروژم که زمان زیادی ندارم شدیدا نیاز دارم کار با حافظه خارجی رو یاد بگیرم این برنامه های اقای حمید قاسمی هم فقط تو پروتوس جواب داد قصد داشتم از روی اون کار با توابع فایل سیستم ff.h رو یاد بگیرم که نشد..

      اضافه شده در تاریخ :
      این همه اومدن این پیغام و دیدن هیچ کسی بلد نیست این برنامه نویسی sd کارت رو با کتابخانهff.hتو کدویژن به من یاد بدن. ....



      اضافه شده در تاریخ :
      یکی نیست به من بگه این ماژور آماده کارت حافظه رو باید مدار خاصی برا ش درست کنم یا مستقیم میشه وصلش کرد :angry: :angry: :angry:

      دیدگاه


        #4
        پاسخ : مشکل نخواندن حافظه mmc

        به جای این همه قیل و قال کردن، یه بار تو سایت جست و جو می کردین.
        آموزش کامل کار با SD توی سایت هست.

        دیدگاه


          #5
          پاسخ : مشکل نخواندن حافظه mmc

          دوست عزیز قبل از اینکه شما بگید من گشتم هیچ کدوم مشکل منو حل نکرد شما اگه بلد نیستی خواهشا تیکه ننداز ..
          اگر یکم دقت میکردی میدیدی این برنامه رو از همون توضیح کامل sdcard برداشتم ...

          دیدگاه


            #6
            پاسخ : مشکل نخواندن حافظه mmc

            نوشته اصلی توسط ghafouri13
            دوست عزیز قبل از اینکه شما بگید من گشتم هیچ کدوم مشکل منو حل نکرد شما اگه بلد نیستی خواهشا تیکه ننداز ..
            اگر یکم دقت میکردی میدیدی این برنامه رو از همون توضیح کامل sdcard برداشتم ...
            سلام،دوست عزیز اگر مشکلت حل شده به منم بگو خواهشا،چون منم مشکل شمارو دارم،
            دارم دیووووونه میشم.
            دمت گرم،کمک کنی ممنونت میشم.

            دیدگاه


              #7
              پاسخ : مشکل نخواندن حافظه mmc

              سلام
              یافتم
              شاید دیر شده باشه ولی اگه از ماژول های آماده استفاده می کنید مشکل از اونا است
              من هم همین مشکل را داشتم
              تغذیه مدار را 3.3 کردم حل شد

              دلیل: ادغام دو پست برای جلوگیری از اسپم

              سلام
              یافتم
              شاید دیر شده باشه ولی اگه از ماژول های آماده استفاده می کنید مشکل از اونا است
              من هم همین مشکل را داشتم
              تغذیه مدار را 3.3 کردم حل شد

              دیدگاه

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