اطلاعیه

Collapse
No announcement yet.

**||مشکل اساسی با SD-CARD ||**

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

    **||مشکل اساسی با SD-CARD ||**

    سلام بچه ها

    من یک برنامه نوشتم و یک برد درست کردم که به هیچ وجه این SDCARD کانکت نمیشه

    کل ECA.IR را زیر و رو کردم ولی به هیچ وجه مشکلم حل نشد

    چند تا مشکلی که دارم

    1-این که SDCARD که استفاده میکنیم 9 تا پایه داره ولی همه جا با 11 تا پایه کار کردن هر جا را هم که گشتم SD با 11 تا پایه ندیدم

    و دقیقا مشکل اینجاست که پایه CD که CARD DETECT هست را نداره بچه ها به نظرتون چی کار کنم

    2- همونطور که تو مدار میبینید از یک کریستال خارجی 11.0592 استفاده کردم و تو تنظیمات پروگرام هم تنظیم میکنیم که روی کریستال خارجی ست کنیم

    ولی مشکل اساسی اینه که تا برق به مدار میدیم میزنه DISK INIT FAILED

    یا روی خط staus=disk_initialize(0) وامیسته و دیکه جلوتر نمیره

    بچه ها جدی موندم چی کار کنم واقعا دیگه اعصابم خورد شده

    منتظرتون ام :smile:

    هم کد را قرار دادم هم عکس مدار را

    کد:
    #include <mega128.h>
     #include <sdcard.h>
    #include <delay.h>
    
    
    
    #include <alcd.h>
    
    
    #define T1_OVF_FREQ 100
    #define T1_PRESC 1024L
    #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
    
    
    interrupt [TIM1_OVF] void timer_comp_isr(void)
    {
    TCNT1H=T1_INIT>>8;
    TCNT1L=T1_INIT&0xFF;
    disk_timerproc(); 
    
    
    
    
    }
    
    
    void main(void)
    {
    unsigned char status;
    
    
    TCCR1A=0x00;
    TCCR1B=(1<<CS12)|(1<<CS10);
    TCNT1H=T1_INIT>>8;
    TCNT1L=T1_INIT&0xFF;
    TIMSK=1<<TOIE1;
    lcd_init(16);
    #asm("sei")
    status=disk_initialize(0);
    lcd_clear();
    if (status & STA_NOINIT) lcd_puts("Disk init failed");
    else
    if (status & STA_NODISK) lcd_puts("Card not present");
    else
    if (status & STA_PROTECT) lcd_puts("Card write\nprotected");
    else lcd_puts("Init OK");
    delay_ms(2000);
    
    ]
    
    while(1)
        {
       
    
    
        }
    }
    این هم عکس مدار
    http://s4.picofile.com/file/7804846662/photo.jpg

    این هم عکس تنظیمات پروگرام کردن که از دو حالت atmega103M و NormalMode ما در حالت Normal Mode پروگرام کردیم
    http://s4.picofile.com/file/7804857632/avr_studio.jpg

    #2
    پاسخ : **||مشکل اساسی با SD-CARD ||**

    1- در شکلی که قرار داده اید مشخص است که روی سوکت، سوئیچی برای تشخیص وجود کارت وجود دارد و باید بررسی کنید که کدام پایه (شامل پایه های کناری) به این سوئیچ متصل است.
    2- در تنظیمات فیوزبیت ها و با توجه به استفاده از کریستال خارجی، فیوزبیت CKOPT را فعال کنید.
    3- دو مقاومت 56 کیلو اهم بین پین های DI و DO تا Vcc قرار دهید.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : **||مشکل اساسی با SD-CARD ||**

      نوشته اصلی توسط طراح
      1- در شکلی که قرار داده اید مشخص است که روی سوکت، سوئیچی برای تشخیص وجود کارت وجود دارد و باید بررسی کنید که کدام پایه (شامل پایه های کناری) به این سوئیچ متصل است.
      2- در تنظیمات فیوزبیت ها و با توجه به استفاده از کریستال خارجی، فیوزبیت CKOPT را فعال کنید.
      3- دو مقاومت 56 کیلو اهم بین پین های DI و DO تا Vcc قرار دهید.
      سلام

      خیلی ممنون که پاسخ دادید

      1. ممکن است که روی شکل نشان دهید که سوییجی که برای تشخیص وجود کارت هست کجاست دقیقا

      آخه واقعا یکی از مشکلات دقیقا همین است ................

      2. توی تنظیمات فیوزبیت ها دیشب من تیک CKPOT را زدم

      3.یعنی منظورتون این است که پایه های DI و DO خشاب SDCARD با مقاومت 56 کیلو اهم به vcc وصل کنم؟

      دیدگاه


        #4
        پاسخ : **||مشکل اساسی با SD-CARD ||**

        در سوکت ها مختلف برای تشخیص حضور کارت معمولا یک سوئیچ وجود دارد که حالت فنری دارد و در شکل شما به نظر می رسد بخش زیر باشد:



        در مورد اتصال مقاومت هم پاسخ مثبت است و آن را به 3.3 ولت متصل کنید.
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #5
          پاسخ : **||مشکل اساسی با SD-CARD ||**

          نوشته اصلی توسط طراح
          در سوکت ها مختلف برای تشخیص حضور کارت معمولا یک سوئیچ وجود دارد که حالت فنری دارد و در شکل شما به نظر می رسد بخش زیر باشد:



          در مورد اتصال مقاومت هم پاسخ مثبت است و آن را به 3.3 ولت متصل کنید.
          خیلی ممنون که پاسخ دادی

          الان ما پایه CD و WP را مستقیم به پایه هایی که در AVR CODEVISION ست کردیم وصل کردیم

          و پایه های DI و DO خشاب SDCARD با 2 تا مقاومت 50 کیلو ( چون 56 کیلو نداشتیم 2 تا 100 کیلو با هم موازی کردیم )به vcc وصل کردیم

          ولی باز هم DISK INIT FAILED میدهد ........

          این عکس جدید مدار
          http://s4.picofile.com/file/7805542040/Photo0007.jpg

          این هم عکس تنظیمات avr
          http://s4.picofile.com/file/78055429...DSASD22222.gif

          دیدگاه


            #6
            پاسخ : **||مشکل اساسی با SD-CARD ||**

            نمونه کدی که قرار داده اید تقریبا شبیه مثال های کدویژن است و به نظر می رسد مشکل خاصی (حداقل تا مرحله initialize) وجود نداشته باشد. در مورد اتصالات CD و WP هم اگر مسئله ای وجود داشته باشد، مطابق برنامه باید دو پیغام دیگر نمایش داده شود. در این شرایط باید بیشتر مشکل را در نحوه اتصالات یا سالم بودن SD و مانند آن جستجو کنید. یک مورد که شخصا چند بار مشاهده کرده ام این است که یکی از پین های داخل سوکت SDC در مواردی در هنگام جا زدن کارت به سمت مخالف کج می شود و باعث می شود اتصال بصورت صحیح برای آن پین برقرار نشود. برای احراز این امر با تاباندن نور کافی به داخل سوکت و مشاهده اتصالاتی که باید با کارت تماس داشته باشند می توانید این مورد را بررسی کنید. شستن پین های کارت با تینر یا بنزین و چند بار جا زدن و در آوردن آن در شرایطی که هنوز حلال تبخیر نشده، می تواند در برخی موارد و در صورت چرب بودن سطح اتصالات یا نفوذ روغن لحیم موثر باشد.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه

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