اطلاعیه

Collapse
No announcement yet.

ارتباط سخت افزاری با mmc

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

    ارتباط سخت افزاری با mmc

    با سلام
    من برای یک پروژه نیاز به ارتباط mmc با avr دارم
    برنامه آن را نوشتم ارتباط از نوع fat است و شبیه سازی آن هم درست کار می کند ولی در عمل جواب نمی گیرم از اساتید در خواست راهنمایی دارم لطفا راهنمایی کنید

    #2
    پاسخ : ارتباط سخت افزاری با mmc

    سلام دادا.
    یکم بیشتر توضیح بده ببینیم مشکلت دقیقاً کجاست؟

    سخت افزارت رو چطور بستی؟
    توی چه کامپایلری نوشتی؟
    تشکر لازم نیست!

    دیدگاه


      #3
      پاسخ : ارتباط سخت افزاری با mmc

      سلام.
      با عذر خواهی از استاد خوبم آقا ایمان که پابرهنه میپرم توبحث. :redface:
      من گمون کنم که شما از اون مقاومتها برای اتصال MMC به میکرو استفاده کردین.
      اون مقاومتهارو حذف کنید و مراحل خوندن از MMC رو مرحله به مرحله انجام بدید.
      اگه با بیسیک کار میکنید ، یه مقاله از استاد تروشه هست که مرجع کاملیه . یه سرچ کنید پیداش میکنید.
      http://www.sharjweb.com/

      دیدگاه


        #4
        پاسخ : ارتباط سخت افزاری با mmc

        باسلام
        ممنون ازتوجه شما
        من از کامپایلر code vision استفاده می کنم
        مشکل من اینه که تو برنامه مشکلی نداره وقتی همشبیه سازیمی کنم درست کار می کنه ولی وقتی عملی مدارشو میبندم جواب نمی ده
        من از mmc مدل 7پایه استفاده کردم و مقسم مقاومتی گذاشتم حتی از cd4050 هم استفاده کردم

        ولیبصورت عملی جواب نمیده؟؟؟

        دیدگاه


          #5
          پاسخ : ارتباط سخت افزاری با mmc

          منم این مشکل رو دارم
          این برنامه رو از مثال های خود کدویژن گرفتم و یه شماتیک واسش ساختم
          http://santooristan.persiangig.com/eca/SDCARD1.rar
          برنامه فوق العاده ساده ست
          فقط میاد حافظه رو initialize میکنه بعد حجم سکتور و تعداد اون ها رو میده
          توی شبیه سازی کار می کنه
          اما توی عمل هر کار می کنم میگه
          the card in not present
          البته من از یه حافظه میکرو SD و آداپتور SD استفاده کردم شاید مشکل کارم همین باشه

          نمیدونم
          هستم اگر می روم گر نروم نیستم

          دیدگاه


            #6
            پاسخ : ارتباط سخت افزاری با mmc

            نوشته اصلی توسط roohipatala
            منم این مشکل رو دارم
            این برنامه رو از مثال های خود کدویژن گرفتم و یه شماتیک واسش ساختم
            http://santooristan.persiangig.com/eca/SDCARD1.rar
            برنامه فوق العاده ساده ست
            فقط میاد حافظه رو initialize میکنه بعد حجم سکتور و تعداد اون ها رو میده
            توی شبیه سازی کار می کنه
            اما توی عمل هر کار می کنم میگه
            the card in not present
            البته من از یه حافظه میکرو SD و آداپتور SD استفاده کردم شاید مشکل کارم همین باشه

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

            دیدگاه


              #7
              پاسخ : ارتباط سخت افزاری با mmc

              نوشته اصلی توسط طراح
              در برخی سوکت های SDC به غیر از 9 پین معمول برای اتصال به SDC، دو پین هم برای آشکارسازی وجود کارت در سوکت و وضعیت write protect آن وجود دارد که در برنامه شما هم این دو پین تعریف شده و مشکل پیغام مورد نظر هم به خاطر در نظر نگرفتن پین مربوط به آشکارسازی mmc/sdc است.
              ممنون
              پس با این حساب یعنی استفاده از یه رم micro sd توی آداپتور sd مشکلی نداره درسته؟

              خوب حالا من باید چیکار کنم؟
              چیجوری این مشکل(اون دو تا پایه) رو رفع کنم؟
              هستم اگر می روم گر نروم نیستم

              دیدگاه


                #8
                پاسخ : ارتباط سخت افزاری با mmc

                من بهت پیشنهاد میکنم که مقاومت ها رو حذف کن .

                به این موضوع هم دقت کن که بعد ار پر.گرم کردن میکرو پایه ی SCK دیگه فقط به SD وصل باشه . مثلا اگه SPI پروگرم میکنی پورت پروگرمر رو در بیار یا با یک جامپر بعد از پروگرم کردن ارتباط اون رو قطع کن.

                اگه مشکل حل نشد باز بیا ببینیم چی نیشه :پی :agree:

                نوشته اصلی توسط mehdisem
                باسلام
                ممنون ازتوجه شما
                من از کامپایلر code vision استفاده می کنم
                مشکل من اینه که تو برنامه مشکلی نداره وقتی همشبیه سازیمی کنم درست کار می کنه ولی وقتی عملی مدارشو میبندم جواب نمی ده
                من از mmc مدل 7پایه استفاده کردم و مقسم مقاومتی گذاشتم حتی از cd4050 هم استفاده کردم

                ولیبصورت عملی جواب نمیده؟؟؟

                دیدگاه


                  #9
                  پاسخ : ارتباط سخت افزاری با mmc

                  در بخش ابتدایی comment برنامه شما، این دو ورودی روی PORTG تعریف شده، در حالیکه در mega32 چنین پورتی وجود ندارد و برنامه در اصل برای Mega128 نوشته شده است. همچنین از ظاهر برنامه مشخص است که در نسخه 2.04.05 نوشته شده که شخصا به این نسخه دسترسی ندارم. اما به هر حال با فرض اینکه این برنامه روی mega32 جواب بدهد، باید پین های مربوط به تشخیص حضور کارت را به زمین متصل کنید تا پیغام مورد نظر ایجاد نشود(PB0). و در مرحله بعد هم اگر قصد نوشتن در کارت را دارید، باید ورودی متناظر write protect هم به زمین متصل شود(PB1).
                  اوژن: به معنای افکننده و شکست دهنده است
                  دانایی، توانایی است-Knowledge is POWER
                  برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                  وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                  قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                  اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                  ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                  دیدگاه


                    #10
                    پاسخ : ارتباط سخت افزاری با mmc

                    نوشته اصلی توسط طراح
                    در بخش ابتدایی comment برنامه شما، این دو ورودی روی PORTG تعریف شده، در حالیکه در mega32 چنین پورتی وجود ندارد و برنامه در اصل برای Mega128 نوشته شده است. همچنین از ظاهر برنامه مشخص است که در نسخه 2.04.05 نوشته شده که شخصا به این نسخه و کتابخانه SDCARD.h دسترسی ندارم. اما به هر حال با فرض اینکه این برنامه روی mega32 جواب بدهد، باید پین های مربوط به تشخیص حضور کارت را به زمین متصل کنید تا پیغام مورد نظر ایجاد نشود(PB0). و در مرحله بعد هم اگر قصد نوشتن در کارت را دارید، باید ورودی متناظر write protect هم به زمین متصل شود(PB1).
                    ممنون
                    آره من برنامه رو از example های کد ویژن گرفتم و تغییرش دادم برای mega32 (نسخه کدویژن 2.05)
                    برنامه توی شبیه سازی جواب میده. پس فکر کنم مشکل از mega32 نباشه
                    در مورد اون دو تا پایه هم من اونا رو روی پورت های PORTB.0 و PORTB.1 تعریف کردم
                    به توصیه شما این دو پورت رو زمین کردم.
                    جالبه حالا دیگه روی ال سی دی فقط مینویسه initializing . . . و از تابع diskinitialize دیگه خارج نمیشه (این رو با گذاشتن یه lcd_puts بعد از diskinitialize فهمیدم)
                    دیگه نمیدونم باید چیکار کنم :angry: :angry: :angry: :cry2: :cry2: :cry2:
                    هستم اگر می روم گر نروم نیستم

                    دیدگاه


                      #11
                      پاسخ : ارتباط سخت افزاری با mmc

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

                      دیدگاه


                        #12
                        پاسخ : ارتباط سخت افزاری با mmc

                        نوشته اصلی توسط طراح
                        بهتر است بجای مطرح کردن مشکل خود در تاپیک های مختلف و ایجاد تاپیک های جدید، بصورت متمرکز در یک محل مسئله را پیگیری کنید تا زودتر به نتیجه برسید. با توجه به مشترک بودن پین های SDC و پروگرامر، آیا سوکت پروگرامر را از مدار قطع کرده اید؟ در صورت مثبت بودن پاسخ، ارتباط SDC را با میکروکنترلر قطع کنید و با حفظ وضعیت زمین بودن PB0 نتیجه را در همینجا اطلاع دهید که آیا مشکل خارج شدن از تابع همچنان برقرار است یا خیر.
                        ای به چشم

                        والا من پروگرمر سایت رو خریدم. پس جواب مثبت است.
                        وقتی حافظه رو از سوکت بیرون میارم باز هم همون مشکل خارج نشدن از تابع هست
                        (وقتی حافظه بیرونه و PB0 رو اتصال باز می کنم از تابع میاد بیرون و مینویسه card not present)
                        هستم اگر می روم گر نروم نیستم

                        دیدگاه


                          #13
                          پاسخ : ارتباط سخت افزاری با mmc

                          در مثال های نسخه 2.04.4 هم یک پروژه sdcard1 با تغییراتی وجود دارد. اما شما در تنظیمات پروژه، مقدار Data Stack Size را در عدد 512 قرار داده اید که با توجه به 512 بایتی بودن هر سکتور این عدد می تواند مشکل ساز باشد وموجب هنگ کردن عملکرد میکروکنترلر شود ( در عملیات Read و Write). با وجود اینکه در disk_initialize کتابخانه Chan به این مقدار حافظه نیازی نیست، اما این مقدار را در 1024 بایت و اگر جواب نداد روی 1124 تنظیم کنید که برای تغییر این عدد باید از مسیر Project/Configure/C compiler اقدام کنید. در ضمن به مقدار صحیح فیوزبیت ها هم توجه کنید که آیا کلاک سیستم مطابق پروژه تنظیم شده یا خیر.
                          با توجه به اینکه فرصت من برای مراجعه به انجمن کم است، لطفا در اسرع وقت این آزمایش را انجام دهید و نتیجه را اطلاع دهید تا بین پاسخ ها فاصله زیادی ایجاد نشود.
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #14
                            پاسخ : ارتباط سخت افزاری با mmc

                            نوشته اصلی توسط طراح
                            در مثال های نسخه 2.04.4 هم یک پروژه sdcard1 با تغییراتی وجود دارد. اما شما در تنظیمات پروژه، مقدار Data Stack Size را در عدد 512 قرار داده اید که با توجه به 512 بایتی بودن هر سکتور این عدد می تواند مشکل ساز باشد وموجب هنگ کردن عملکرد میکروکنترلر شود ( در عملیات Read و Write). با وجود اینکه در disk_initialize کتابخانه Chan به این مقدار حافظه نیازی نیست، اما این مقدار را در 1024 بایت و اگر جواب نداد روی 1124 تنظیم کنید که برای تغییر این عدد باید از مسیر Project/Configure/C compiler اقدام کنید. در ضمن به مقدار صحیح فیوزبیت ها هم توجه کنید که آیا کلاک سیستم مطابق پروژه تنظیم شده یا خیر.
                            با توجه به اینکه فرصت من برای مراجعه به انجمن کم است، لطفا در اسرع وقت این آزمایش را انجام دهید و نتیجه را اطلاع دهید تا بین پاسخ ها فاصله زیادی ایجاد نشود.
                            ممنون از توجه و پیگیریتون
                            دارم اطلاعات خوبی از صحبت هاتون کسب می کنم.

                            راستش من چیز زیادی از فیوزبیت ها نمیدونم. با پروگرمر ،فیوز بیت ها رو خوندم اینجوری بودن:

                            http://santooristan.persiangig.com/eca/fuses.png

                            اون ازمایشی هم که گفتی رو توی 2 حالت با کارت و بدون کارت آزمایش کردم اما جواب نمیده که نمیده. (مثل حالت قبل از تابع بیرون نمیاد)
                            (ببخشید دیر اومدم. من تا ساعت 2 امشب اینجا آنلاین هستم منتظرم، ایشالا امشب بتونم راه بندازمش، با راهنمایی های شما)
                            هستم اگر می روم گر نروم نیستم

                            دیدگاه


                              #15
                              پاسخ : ارتباط سخت افزاری با mmc

                              من امشب بطور خاص برای راهنمایی شما به انجمن مراجعه کردم. تابع disk_initialize در کدویژن در دسترس نیست. اما من تابع معادل آن در فایل mmc.c را که در سورس های Chan وجود دارد، بصورت خط به خط تحلیل کرده ام و در این تابع یک مکانیزم timeout وجود دارد که حتی در صورتی که SDC وجود هم نداشته باشد، نباید منجر به هنگ کردن تابع شود. بنابراین با فرض اینکه در کدویژن هم به درستی از آن استفاده شده باشد و در آن Bug وجود نداشته باشد، نباید چنین وضعیتی پیش بیاید. در این شرایط به موارد مختلفی می توان شک کرد که یکی از آنها استفاده از mega32 است که به دلیل کم بودن حافظه ممکن است مشکل ساز باشد. بحث فیوزبیت ها هم ممکن است به احتمال کم تاثیر گذار باشد که باید محتوای فیوزبیتی را که برنامه ریزی کرده اید بصورت دقیق بیان کنید. شاید بهتر بود که شما در گام اول همان سخت افزار توصیه شده برای مثال کدویژن را تامین می کردید و درصورت جواب گرفتن از آن برای تغییرات اقدام می کردید. در شرایط فعلی هم مورد خاصی به غیر از موارد بیان شده به نظر من نمی رسد، مگر آنکه در فرصت مقتضی آزمایش عملی را با mega32 انجام دهم و نتیجه را به شما هم اطلاع دهم.
                              اوژن: به معنای افکننده و شکست دهنده است
                              دانایی، توانایی است-Knowledge is POWER
                              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                              دیدگاه

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