اطلاعیه

Collapse
No announcement yet.

خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه برای تابلو روان

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

    خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه برای تابلو روان

    سلام
    من یه برد xmega32a4 از یک برنامه نویس برای تابلو روان گرفتم که خروجی این برد باسرعت spi ولی به صورت موازی اطلاعات رو انتقال میده روی porta
    یعنی از sram داخلی باسرعت 16 مگا بایت برثانیه خروجی میده -نحوه ارسال اطلاعات هم به این ترتیبه : یک کلاک روی portb.3 بعد یک بایت دیتا روی porta
    به همین ترتیب ادامه میده( 1 کلاک 1بایت اطلاعات)
    این هم لینک عکس سیگنال های خروجی این برد
    http://uplod.ir/bxh4q041gxcs/1.jpg.htm
    به نظر شما این چطور داره این کار رو انجام میده؟

    #2
    پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

    یک روش برای تولید کلاک 16 مگاهرتز، استفاده از مد Frequency waveform generation و قرار دادن CCA=0 با فرض کلاک 32 مگاهرتز برای CPU است. در این شرایط کلاک خروجی روی پین های خاصی قابل تولید است که شامل PB0 نمی شود. اگر مطمئن هستید که کلاک روی PB0 ایجاد می شود، در کاربرد مورد نظر شما می توان از دو کانال DMA استفاده کرد. به این ترتیب که کانال اول بصورت متوالی مقدار 0X01 از حافظه SRAM به رجیستر PORTB_OUTTGL را ارسال کند و کانال دوم هم برای خواندن اطلاعات مورد نظر از SRAM و ارسال آن به رجیستر PORTA_OUT تنظیم شود. با توجه به اینکه این سوال کاربرد های جالب و مهمی را برای XMEGA ایجاد می کند، در فرصت مقتضی سعی می کنم نمونه کدی را برای ایجاد کلاک 16 مگاهرتز و قرار دادن Data روی یکی از پورت ها بصورت عملی آزمایش کنم و نتیجه را در همین تاپیک اعلام کنم.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

      ممنون از لطف شما
      بله سیگنال کلاک رو اشتباه نوشته بودم - سیگنال کلاک روی pb3 هستش
      آیا امکانش هست با نرم افزار بسکام این کار رو انجام داد برای xmega با زبان c کار نکردم
      ممنون

      دیدگاه


        #4
        پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

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

        دیدگاه


          #5
          پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

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

          دیدگاه


            #6
            پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

            درهربار خروجی متوالی حداکثر 4096 بایت که کلاک هم به همان ترتیب - درهر ثانیه=> 4096 ضربدر 495 هرتز => 2 مگابایت بر ثانیه

            دیدگاه


              #7
              پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

              به دلیل تاخیر 10 روزه شما در پاسخگویی، این مسئله ذکر نشد که در آزمایش های انجام شده با DMA امکان رسیدن به دیتا با نرخ 16 مگابایت در ثانیه در شرایط حضور کلاک توام، بصورت مداوم و پشت سر هم محقق نشد (به جز در زمان دسترسی به طول یک Burst) و حتی در صورت overclock هم DMA برای دسترسی به حافظه به زمان بیشتری نیاز دارد.
              اما یک روش دیگر برای پیاده سازی صورت مسئله شما استفاده از برنامه نویسی اسمبلی به این صورت است که در ابتدا دیتا مورد نظر را در 4096 بایت از Sram بریزید و بعد با استفاده از دستورات store indirect بصورت متوالی، مقادیر جدول را از Sram بخوانید و در دستور بعدی در محل رجیستر PORTB.OUTTGL مقداری را بنویسید که سبب Toggle شدن پورت شود. به این ترتیب هرچند حافظه Flash زیادی اشغال می شود (16 کیلوبایت به ازای هر 4096 بایت) اما از آنجایی که هر دستور فقط یک سیکل زمان می برد، سرعت مورد نظر شما برای ایجاد 4096 بایت و تولید کلاک به راحتی در خروجی حاصل می شود.
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #8
                پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

                ممنون از لطف شما -

                دیدگاه


                  #9
                  پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

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

                  دیدگاه


                    #10
                    پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

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

                    دیدگاه


                      #11
                      پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

                      با سلام
                      مداری که دوستمون گفت یه مین برد تابلو روان است که باید با سرعت زیاد بتونه از روی رم اطلاعات رو بخونه و روی تابلو بریزه.تا با این سرعت زیاد بتونه حالت pwm رو روی ledهای تابلو پیاده کنه.یعنی اگر قرار باشه تابلو 50 فرم در ثانیه نمایش بده اگر تک رنگ باشه برای هر led در هر فریم یک بیت میفرسته اما اگر تابلو طیف دار باشه برای مثلا هشت پله طیف باید هشت بیت داشته باشیم.یعنی 50*8فریم در ثانیه.در این صورت هشت پله تن رنگ میتونیم تولید کنیم به عنوان مثال از قرمز کم نور تا پرنور.در این صورت تابلو تک رنگ ما میشه تابلو طیف دار که قابلیت پخش فیلم پیدا میکنه.مشکل سر اینه که چطور میشه به این سرعت هشت برابر رسید.عکیسی هم که دوستمون از سیگنال مدار قرار داده رو من هم از مین برد دیگه ای گرفتم.نکته جالب این مین بردها اینه که از پین های معمولی همچین سرعتی گرفتن چون بالاخره باید یه زمانی بگذره تا اطلاعات از رم خونده بشه و روی پورت ریخته بشه.اگر شما بتونید راهنماییمون کنید که چطور به این سرعت برسیم خیلی عالی میشه.

                      دیدگاه


                        #12
                        پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

                        لینک عکس موجود در پست اول معتبر نیست و دقیقا به خاطر ندارم که ترتیب سیگنال ها به چه صورت بود. اما به عنوان یک دید کلی فرض کنید مطابق پست اول قرار باشد Data روی یک پورت و کلاک روی پورت دیگر قرار داده شود، از آنجایی که در XMEGA دسترسی به SRAM داخلی که در آدرس های 0x2000 به بالا قرار دارد به حداقل 2 سیکل نیاز دارد (در توضیح دستور LD یک سیکل نوشته شده که در توضیح آن آورده شده در صورت دسترسی به SRAM داخلی، یک سیکل دیگر اضافه می شود) آنگونه که محاسبه کردم در بهترین شرایط در سه سیکل می توان یک بایت جدید را روی پورت قرار داد که برای کلاک تنظیم شده روی 48MHz این معادل با 16MBytes در هر ثانیه خواهد بود. اما اگر بنا باشد بصورت همزمان و بدون استفاده از تایمر ها پین دیگری هم بصورت متوالی 0 و 1 شود، این مسئله به دو سیکل اضافی نیاز خواهد داشت. با لحاظ این موارد و با توجه به موجود نبودن شکل پست اول، بصورت دقیق در مورد نیاز خود توضیح دهید تا راهنمایی لازم را انجام دهم.

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

                        دیدگاه


                          #13
                          پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

                          داخل تابلو روان از آی سی 74hc595استفاده می شود که یک شیفت رجیستر است و برای هر هشت عدد ال ای دی از یک شیفت رجیستر استفاده میشود و شیفت رجیسترها با هم سری میشوند و به تعداد لازم روی تابلو پشت سر هم قرار می گیرند و دیتای مربوط به تابلو که عکس یا متن است روی رم ریخته می شود و از طریق spi از ر م خوانده می شود و داخل شیفت رجیسترها ریخته میشود و وقتی تمام دیتای یک فریم شیفت داده شد با یک پالس به بایه خاصی در شیفت رجیستر اطلاعات در خروجی شیفت رجیستر نمایان میشوند و باعث خاموش یا روشن شدن ال ای دی متصل به پایه شیفت رجیستر میشوند.حالا باید بتونیم با سرعت زیاد از رم اطلاعات بخونیم و روی 74595شیفت بدیم.برای تابلوهای تک رنگ سرعت معمولی جواب میده اما وقتی قراره هشت پله تن رنگ داشته باشیم باید حجم دیتا هشت برابر بشه که سرعت کم میاره.اما بعضی دوستان خیلی راحت تونستن با xmega32تونستن به این سرعت برسن.از چهار سال پیش که مهندسیو گرفتم کارم تولید تابلو روانه.تمام قسمت ها و مهمتر از همه مین یرد های تابلوهام طراحی خودمه و یک ساله تصمیم گرفتم تابلوهام رو طیف دار کنم اما نتونستم چون نتونستم با اون سرعت زیاد از رم اطلاعات رو بخونم و روی تابلو بریزم.به نظرم باید سیستم کاری اینطوری باشه که بدون وقفه و مداوم بشه بلوکهای 512بایتی از رم خونده بشه و روی تابلو ریخته بشه

                          دیدگاه


                            #14
                            پاسخ : سوال در مورد خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه

                            برای ارسال متوالی Data به 74hc595 با سرعت بالا، یک روش استفاده از واحدهای spi موجود (شامل Master spi در usart) است که در سوال ابتدایی این تاپیک چنین فرضی مد نظر نیست. روش دیگر هم خواندن متوالی اطلاعات از sram و قرار دادن آن روی یک پورت و ایجاد کلاک با اجرای دستور العمل است. برای این روش دوم مطابق توضیحاتی که در پست قبل ارائه کردم، اگر فرض کنیم 8 عدد shift register به 8 پین یک پورت متصل باشند و به ازای هر بایت جدید لازم باشد یک کلاک ایجاد شود و در انتهای هر 8 بایت هم به یک کلاک اضافی روی پین دیگری برای قرار گرفتن محتوا در خروجی نیاز باشد، در این شرایط جمعا به 42 سیکل برای انتقال این 8 بایت زمان نیاز است (3 سیکل برای دسترسی به sram و قرار دادن روی پورت و دو سیکل برای هر کلاک و دو سیکل برای کلاک مجزا روی پین دیگر). آیا چنین زمانی پاسخگوی نیاز موجود هست؟
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              #15
                              پاسخ : خروجی موازی دیتا از sram با نرخ انتقال 16 مگابایت بر ثانیه برای تابلو روان

                              با سلام
                              برای یک تابلو معمولی حداقل باید بتوان 1500کیلوبایت رو در عرض یک ثانیه از رم(منظور رم میکرو اس دی) خواند و روی 74595 ها شیفت داد.داخل تابلو روان از هشت عدد 74595 استفاده نشده بلکه از 3200 عدد آی سی 74595 استفاده شده .تابلو روان از بلوکهای ال ای دی تشکیل شده که هر بلوک دارای 16عدد 74595 است و کل تابلو از کنار هم قرار گرفتن این بلوکها درست میشود

                              دیدگاه

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