اطلاعیه

Collapse
No announcement yet.

ارتباط میکروکنترلر LPC1788 با SDRAM

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

    ارتباط میکروکنترلر LPC1788 با SDRAM

    سلام.
    من میخوام که توسط میکروکنترلر LPC1788 با یک SDRAM ارتباط برقرار کنم ولی هیچ اطلاعاتی در مورد نحوه کار حافظه های SDRAM ندارم. کسی منابع مناسبی در مورد نحوه عملکرد حافظه های SDRAM و اینکه چه سیگنال هایی دارند سراغ نداره.

    #2
    پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

    با سلام
    1788 خودش کنترلر داره، پایه ها رو مشخص کنید و تنظیمات مربوطه رو به دلخواه به واحد EMC بدین دیگه بقیش حله
    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

    دیدگاه


      #3
      پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

      نوشته اصلی توسط hessam2013
      با سلام
      1788 خودش کنترلر داره، پایه ها رو مشخص کنید و تنظیمات مربوطه رو به دلخواه به واحد EMC بدین دیگه بقیش حله
      سلام
      شما تا حالا عملی تست کردین؟ اگه جواب مثبت هست در این حالت متغییر ها به چه صورتی باید تعریف بشن؟

      مثلا وقتی میگیم int k اون وقت این متغییر تو sram ذخیره میشه یا sdram ؟

      دیدگاه


        #4
        پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

        نوشته اصلی توسط mahdi421
        سلام
        شما تا حالا عملی تست کردین؟ اگه جواب مثبت هست در این حالت متغییر ها به چه صورتی باید تعریف بشن؟
        بله، کار کردم، شما بسته به سخت افزارتون این کارو می کنین مثلا من یه sdram 16 بیتی دارم خب متغیر هام 16 بیتی میشن یا کمتر، [s]اگه بیشتر بخوام باید مثلا دوتا دوتا بخونم بچسبونم به هم تا یه عدد 32 بیتی داشته باشم.[/s]
        نوشته اصلی توسط mahdi421
        مثلا وقتی میگیم int k اون وقت این متغییر تو sram ذخیره میشه یا sdram ؟
        این شمایین که ادرس ذخیره رو منیج می کنین، مثلا میگین ادرس شروع sdram باشه 0xA0000000 بعدش با استفاده از این ادرس پایه و اضافه کردن افست دلخواه محل مورد نظر ذخیره رو تعیین می کنید. پس اسن که int a خودش به خودی خود کاری انجام نمی ده مگر شما بهش مکان ذخیره بدین.
        The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

        دیدگاه


          #5
          پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

          مرسی
          اگه ممکنه دو تا مثال هم بذارید کامل مسئله جامیفته

          با فرض اینکه از sdram 16 بیتی استفاده کرده باشیم
          لطفا یه متغییر 8 بیت - 16 بیت - 32 بیت تعریف کنید

          دیدگاه


            #6
            پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

            خواهش می کنم، در کد زیر نحوه نوشتن 8 و 16 بیت اومده، ادرس بیس sdram هم بنا به سخت افزار مشخص میشه و باید تعریف شه. خوندن هم دقیقا مثل همینه همش کار پوینتری هستش.راستش سوال شما برای منم سوالی پیش اورد، الان به سخت افزار دسترسی ندارم، اجازه بدین فردا جواب نحوه کار 32 بیت رو هم بهتون میگم مطمئن نیستم حرفی که در پست قبلی درباره 32 بیت زدم درست باشه پوزش :redface:،
            اگه شما هم چیزی دستگیرتون شد بگین خوشحال میشم.
            کد:
             volatile U16 * pWriteShort;
            	volatile U8 * pWriteTooShort;
            
            
             pWriteShort = (U16 *)SDRAM_BASE_ADDR;
             pWriteTooShort = (U8 *)SDRAM_BASE_ADDR;
            /************8 bit write***********************/
            *pWriteTooShort++=0x12;
            /************16 bit write**********************/
            *pWriteShort++=0x1234;
            *pWriteShort++=0x5678;

            The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

            دیدگاه


              #7
              پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

              نوشته اصلی توسط hessam2013
              این شمایین که ادرس ذخیره رو منیج می کنین، مثلا میگین ادرس شروع sdram باشه 0xA0000000 بعدش با استفاده از این ادرس پایه و اضافه کردن افست دلخواه محل مورد نظر ذخیره رو تعیین می کنید. پس اسن که int a خودش به خودی خود کاری انجام نمی ده مگر شما بهش مکان ذخیره بدین.
              این آدرس 0xA0000000 دلخواه نیست :

              از جمله ی رفتگان این راه دراز
              باز آمده ای کو که به ما گوید راز
              هان بر سر این دو راهه از روی نیاز
              چیزی نگذاری که نمی آیی باز

              دیدگاه


                #8
                پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                این آدرس 0xA0000000 دلخواه نیست :
                درسته این آدرس ثابت هست و نمیشه عوض کرد

                توی یه برنامه فرضی اگه قرار باشه از SDRAM استفاده بشه تعریف متغییر ها بصورت اشاره گر کارو یکم سخت و پیچیده میکنه حتی ممکنه بایتهای متغییر ها رو هم بیفته بدونه اینکه برنامه نویس بتونه تشخیص بده. در کل آیا راه حل دیگه ای بغییر از استفاده از اشاره گر وجود داره یعنی چیزی شبیه به int k

                دیدگاه


                  #9
                  پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                  تا جایی که عقل من میرسه،
                  مثلا توی Keil ، یه قسمت هست که آدرس رم رو مشخص میکنیم.
                  خوب شما اونجا جای آدرس Internal ram، آدرس SDRAM رو میدی.

                  دیدگاه


                    #10
                    پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                    نوشته اصلی توسط meerkat
                    این آدرس 0xA0000000 دلخواه نیست :
                    با تشکر از شما ، منم نگفتم دلخواهه گفتم با توجه به سخت افزار تعیین میشه، پست بعدی رو ببینید،
                    نوشته اصلی توسط plasma
                    تا جایی که عقل من میرسه،
                    مثلا توی Keil ، یه قسمت هست که آدرس رم رو مشخص میکنیم.
                    خوب شما اونجا جای آدرس Internal ram، آدرس SDRAM رو میدی.
                    پس با توجه به حرف شما emwin هیچ کاری با sdram نداره و کیل همه کار ها رو می کنه، یکم الان گیج شدم :eek: اگر این طوره توابع کار با حافظه خارجی چی هستند که emwin داره، ممنون میشم اگه اطلاعاتی دارین بگین.
                    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                    دیدگاه


                      #11
                      پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                      نوشته اصلی توسط plasma
                      تا جایی که عقل من میرسه،
                      مثلا توی Keil ، یه قسمت هست که آدرس رم رو مشخص میکنیم.
                      خوب شما اونجا جای آدرس Internal ram، آدرس SDRAM رو میدی.
                      امتحان کردام نمیشه :NO:

                      دیدگاه


                        #12
                        پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                        قسمت مخصوص اکسترنال رم رو انتخاب کردین؟
                        من اشتباهی گفتم جای رم اینترنال باید بزنین ولی رم اکسترنال خودش یه قسمت مخصوص داره.
                        الان دم دستم نیست ولی تو تنظیمات مشخصه

                        دیدگاه


                          #13
                          پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                          نوشته اصلی توسط plasma
                          قسمت مخصوص اکسترنال رم رو انتخاب کردین؟
                          من اشتباهی گفتم جای رم اینترنال باید بزنین ولی رم اکسترنال خودش یه قسمت مخصوص داره.
                          الان دم دستم نیست ولی تو تنظیمات مشخصه
                          تو قسمت IRAM1 آدرس شروع 0xA0000000 رو قرار دادم کلا میکرو از کار افتاد

                          تو مثال هایی که وجود داره آدرس SDRAM رو تو قسمت RAM1 تعریف میکنن و ازش استفاده میکنن. سوال من اینکه آیا به غیر از استفاده از اشاره گرها روشی برای تعریف و استفاده از متغییر توی SDRAM وجود داره یا نه؟

                          دیدگاه


                            #14
                            پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                            من هم بااین اس دی رم مشکل دارم.طبق برنامه ای خود emwin داره اومدم پروگرم کردم.من بااشاره گرها تاحالا کار نکردم.مفهومش رو میدونم ولی در کل ننوشتم تاحالا.برنامه و سخت افزار درسته ولی در اجرا توی یه حلقه ای میمونه و تست رمم اوکی نمیشه.باید چیکار کنم؟؟ :sad: :sad: :sad:

                            دیدگاه


                              #15
                              پاسخ : ارتباط میکروکنترلر LPC1788 با SDRAM

                              والا من هم با 1788 و رم کار کردم
                              اصلا مشکلی ندارم باهاش
                              فقط یه نکنه اینکه دونه دونه via ها و ترک ها رو چک کن که قطعی نداشته باشی

                              دیدگاه

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