اطلاعیه

Collapse
No announcement yet.

طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

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

    طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

    طریقه ی کارو تقریبا میدونم فقط یه کد نمونه با شماتیک می خواستم

    #2
    پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

    این یک شماتیک ساده.
    اگر زبان برنامه نویسی و کامپایلر مربوطه رو هم مشخص کنین برنامه اش کاری نداره. فقط بیت SRE رو در MCUCR باید ست کنین.
    فایل های پیوست شده

    دیدگاه


      #3
      پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

      ممنون با codevison کار میکنم ممنون میشم کد نمونشم شم بزارید

      دیدگاه


        #4
        پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

        من با این کامپایلر خیلی اخت نیستم. فقط دیدم که میشه در منوی project/configuration حجم رم خارجی رو ست کرد ولی آدرس شروعش کجاست؟ نمیدونم بخاطر همین من بطور سنتی کار میکنم. در شماتیکی که ارسال کردم رم خارجی به حجم 32 کیلو بایت از آدرس 0x8000 بود. حالا اگر بخوام تا حجم 32 کیلو بایت داده تعریف کنم اینطوری تعریف میکنم:


        typedef struct
        {
        int bigArray[5000];
        }xram_t;

        #define xram ((xram_t *)0x8000U)


        usage:

        for(i=0; i<5000; i++)
        xram.bigArray[i] = 10;


        حالا هر چی داده میخوایین داخل اون struct اضافه کنین و با استفاده از متغیر فرضی xram بهش دسترسی پیدا کنین.

        دیدگاه


          #5
          پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

          سلام
          اینجا یه چیز های از اش هست
          http://www.eca.ir/forum2/index.php?topic=55445.0

          دیدگاه


            #6
            پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

            codevision فقط این 2 خط اضاقه میکنه

            // External SRAM page configuration:
            // - / 0000h - 7FFFh
            // Lower page wait state(s): None
            // Upper page wait state(s): None
            MCUCR=0x80;
            XMCRA=0x00;
            که یعنی رم خارجی فعال و یک قسمتی باشه
            در مورد شروع و بقیه چیزاش چیزی نگفته!!!!

            2-این برنامتون یه مقدار منو گیج کرده
            typedef ائنجا چیکار میکنه؟
            اصلا Structer گذاشتنش الزامیه؟
            این جمله درستش این نیست؟

            for(i=0; i<5000; i++)
            xram.bigArray[i] = 10;

            واینکه مقدار این عبارت 5000 در 0x8000 که برای پدا کردن تعداد خونهای اشغال شده استفاده شده؟

            #define xram ((xram_t *)0x8000U)

            3-من بخاطر این خط مجیورم که رم اضافه کنم چون بیشتر از 1600 تا ارایه جواب نمیده و منم به 8000 تا احتیاج دارم
            unsigned char data[6][1300=]

            4-من پورت a,f,c,d,و 2تا پورت G بعنوان خروجی دارم ازشون استفاده میکنم Sram به بقیه پایه ها وصل کنم درسته؟

            دیدگاه


              #7
              پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

              ببین آقا جون!
              داشتن رم خارجی به خود برنامه خیلی ربطی نداره. اما به کامپایلر چرا. چون کامپایلر هست که باید برای متغیر های تعریف شده فضای حافظه تخصیص بده و این هم چیزی نیست جز فرض این نکته که مثلا آدرس متغیر a آدرس 1000 هست یا 100 یا 32768. کامپایلر محترم جنابعالی هم هیچ راهی نداره که بشه بهش حالی کرد این 32 کیلو بایت حافظه اش از کدوم آدرس شروع میشه. بنا براین عملیات باید دستی انجام بشه.
              به خاطر همین مسئله من یک ساختار تعریف کردم بنام xram_t که میتونه تا 32 کیلو بایت هم گسترش پیدا کنه. و چون ابتدای رم هم در آدرس 0x8000 هست من فرض کردم اشاره گری دارم که به یک همچین ساختاری اشاره میکنه و آدرس داخل این اشاره گر هم همون 0x8000 هست.
              منتهی یک سوتی دادم و اونم اینه که برای دسترسی به اعضای این ساختار باید از اپراتور <- استفاده کرد.

              یعنی طبق نیاز شما:


              typedef struct
              {
              unsigned char data[6][1300];
              }xram_t;

              #define xram ((xram_t *)0x8000U)


              usage:

              for(i=0; i<1300; i++)
              xram->data[ 0 ][ i ] = 10;


              متاسفانه اندیس آرایه ها رو در پست قبلی؛ سایت محترم در هنگام نمایش بلعیده بود!!
              ضمنا برای استفاده از رم خارجی باید از خیر پورت های A و C و G (البته 3 بیت G) بگذرین.

              دیدگاه


                #8
                پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                دستت دردنکنه
                90 درصد قضیه حل شد
                من فقط باید این کدارو توبرنامم وارد کنم

                // External SRAM page configuration:
                // - / 0000h - 7FFFh
                // Lower page wait state(s): None
                // Upper page wait state(s): None
                MCUCR=0x80;
                XMCRA=0x00

                typedef struct
                {
                unsigned char data[6][1300];
                }xram_t;

                #define xram ((xram_t *)0x8000U)
                ویه سوال دیگه شماره RAm بده که بخرم و ببندمو مدارو تست کنم که اگه جواب نگرفتم بیام بازم اذیتت کنم

                دیدگاه


                  #9
                  پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                  اگه بنا به اذیت هست؛ یک مادربرد آشغالی 486 یا پنتیوم 133 گیر بیار 8 تا آی سی رم از جنس CY7C199 روشه.
                  اگر میخوایی پول خرج کنی آی سی UM61512 هم هست. البته این یکی 64 کیلو بایتیه. که روی مگا 64 حدود 4 کیلو بایتش میپره.

                  دیدگاه


                    #10
                    پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                    این ای سی که کلا تو بازار نیست ای سی دیگه نبود؟
                    یا مادر برد 485 از کجا گیر بیارم

                    دیدگاه


                      #11
                      پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                      بیام بازم اذیتت کنم
                      خودت اول شروع کردی! جواب های! هوی هست! :twisted:

                      این یکی کارت رو راه میندازه. فکر میکنم توی بازار هم هست:
                      UM61512

                      فقط این یکی 64 کیلو بایتی هست. تمام فضای حافظه خارجی تو میتونه پوشش بده. دیگه مسخره بازی آدرس ست کردن و اینا رو هم نداره. فقط کافیه حجم حافظه خارجی رو در منوی مربوطه ماکزیمم کنی.

                      دیدگاه


                        #12
                        پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                        نوشته اصلی توسط رضا آقازاده
                        خودت اول شروع کردی! جواب های! هوی هست! :twisted:

                        این یکی کارت رو راه میندازه. فکر میکنم توی بازار هم هست:
                        UM61512

                        فقط این یکی 64 کیلو بایتی هست. تمام فضای حافظه خارجی تو میتونه پوشش بده. دیگه مسخره بازی آدرس ست کردن و اینا رو هم نداره. فقط کافیه حجم حافظه خارجی رو در منوی مربوطه ماکزیمم کنی.
                        ما که نفهمیدیم الان اذیت کردی یا حواست نبود اینو قبلا معرفی کردی

                        دیدگاه


                          #13
                          پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                          راسیتش من خودم یه 30 - 40 تایی از این آی سی ها برای تست نگه داشتم. اینجا خیابون جمهوری نداره که همه چی توش گیر بیاد. یادم هم به اون آی سی نبود. تنها تغییری هم که توی شماتیک داده میشه اینه که CS رو کامل زمین کنی و خط A15 رو هم مستقیما به SRAM وصل کنی. باقیش حله.

                          دیدگاه


                            #14
                            پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                            نوشته اصلی توسط رضا آقازاده
                            اگه بنا به اذیت هست؛ یک مادربرد آشغالی 486 یا پنتیوم 133 گیر بیار 8 تا آی سی رم از جنس CY7C199 روشه.
                            اگر میخوایی پول خرج کنی آی سی UM61512 هم هست. البته این یکی 64 کیلو بایتیه. که روی مگا 64 حدود 4 کیلو بایتش میپره.
                            سلام آقای آقا زاده
                            میشه ماجول رم کامپیوتر رو با میکروکنترلر یا FPGA راه انداخت؟
                            من برای کاری به چند ده مگابایت رم با سرعت 20MBps احتیاج دارم. شما چی پیشنهاد میکنید؟

                            دیدگاه


                              #15
                              پاسخ : طریقه ی اتصال Sram خارجی به atmega 64 کسی میدونه چجوریه؟

                              میشه ماجول رم کامپیوتر رو با میکروکنترلر یا FPGA راه انداخت؟
                              شما میتونی با وسیله ای که من ساختم پرواز کنی؟

                              برای راهنمایی ممکنه این وسیله دوچرخه - هلی کوپتر - هواپیما یا حتی یک بشقاب پرنده باشه!

                              بدون دونستن نوع رم که نمیشه چیزی گفت.
                              ولی اگر مشکلتون با این چند ده مگا بایت رو بشه به نزدیک 10 الی 15 مگا بایت رسوند که با XMEGA میشه SDRAM رو هم کنترل و استفاده کرد. ولی سرعت 20 مگا بایت در ثانیه میشه زمان دسترسی 50 نانو ثانیه. و پایه سرعتی در حدود 60 مگا هرتز احتیاجه. که از عهده خیلی از میکرو ها خارجه. باید دید این 20 مگا بایت در ثانیه رو چجوری حساب کردین؟ شاید با استفاده از یک سری تکنیک بشه خیلی کاهشش داد.

                              دیدگاه

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