اطلاعیه

Collapse
No announcement yet.

برتری PIC32 نسبت به میکروهای ARM7 Cortex

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

    #16
    پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

    یه چیزی در مورد زبان اسمبلی و سی و بیسیک بگم؟

    دیدگاه


      #17
      پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

      نوشته اصلی توسط arvinfx
      یه چیزی در مورد زبان اسمبلی و سی و بیسیک بگم؟
      نه
      مرحبا همت قومی که چو دلبر گیرند
      بجـز از دلبـر خود از همه دل بر گیرند

      دیدگاه


        #18
        پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

        نوشته اصلی توسط pishraft
        نه
        باوشه حالا که اینقدر اسرار دارید میگم ، زبان برنامه نویسی فرقی نمیکنه چون همه آخرش تبدیل به کد هگز میشه که اونم اسمبلی CPU هستش. ولی خوب اسمبلی اگر بنویسید شاید بتونید با دستورات کمتری به هدفتون برسید و کمی سرعت برنامه سریعتر بشه وگر نه بیسیک هم همون قدرت سی رو داره . مهم اینه که باکدوم زبان راحتترین که برای من اونیه که کتابخونه بیشتری داره.


        دیدگاه


          #19
          پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

          نوشته اصلی توسط arvinfx
          باوشه حالا که اینقدر اسرار دارید میگم ، زبان برنامه نویسی فرقی نمیکنه چون همه آخرش تبدیل به کد هگز میشه که اونم اسمبلی CPU هستش. ولی خوب اسمبلی اگر بنویسید شاید بتونید با دستورات کمتری به هدفتون برسید و کمی سرعت برنامه سریعتر بشه وگر نه بیسیک هم همون قدرت سی رو داره . مهم اینه که باکدوم زبان راحتترین که برای من اونیه که کتابخونه بیشتری داره.
          به این میگن حرف حساب
          من اولین باری که یه میکروکنترلر رو برنامه ریزی کردم، از اسمبلی استفاده کردم، کامپایلرش رو هم خودم نوشته بودم. اسمبلی خلاف ظاهر نسبتا خشنی که داره، قلب مهربونی داره، یعنی یه کارایی باهاش می تونید انجام بدید که اگر از سی استفاده کنید، ممکنه که برنامه تو میکرو جا نشه، ولی همین اسمبلی، وقتی با سی بخواد ترکیب بشه، اونوقت حساسیت کار بالا میره، باید به خیلی چیزا توجه کرد و حتما باید با شیوه کامپایل کامپایلر آشنا بشید.
          اما در مورد pic32 و arm cortex که عموما 1768 در نظر گرفته میشه. 1768 می تونه هر دستور العمل رو حداکثر در 1/20000000 ثانیه اجرا کنه؛ مثلا شما می نویسید که پورت b رو 0xffffffff کن، به صورت زیر:
          FIO0PIN = 0xffffffff;
          این کد وقتی به اسمبلی تبدیل میشه، 4 خط برنامه اسمبلی یا 4 دستورالعمل میشه، دو تا برای ذخیره 0xffffffff در رجیستر سی پی یو و دوتا برای آدرس دهی و جایگذاری در پورت.
          علت این که 4 دستورالعمل میشه هم کاملا واضحه، چون این میکرو ها 32 بیتی هستن و پورت 32 پین دارد و آدرس ها نیز 32 بیت هستند(اگه خواستید بیشتر توضیح می دم)
          چس بعد از 1/5000000 ثانیه دیگه، پورت شما HIGH میشه.
          اما PIC32 با حداکثر سرعت 80 مگاهرتز، این عمل رو در 1/2000000 ثانیه انجام می ده، یعنی درست 4 برابر- من این رو امتحان کردم- پس اگر بخواهید که یه ال سی دی رو برنامه ریزی کنید، قطعا با PIC32 موفق تر خواهید بود.
          ***
          من ول کردم، می خوام ببینم که شما هم ول می کنین یا نه!

          دیدگاه


            #20
            پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

            سلام
            1-برای راه اندازی lcd های تاچ مثل lcd های تبلت چه مدلی رو پیشنهاد میکنید.
            2-یه مدل که برای کنترل روبات مناسب باشه مثلا تعداد pwm زیاد adc زیاد و از این جور چیزا داشته باشه چه مدلی رو پیشنهاد میکنید؟ من خودم فکر کردم مدل ds PIC30F6010 خوبه ولی گیرم نیومد.

            اگه هم هر دو کار را بتونه انجام بده که خیلی خوب میشه :mrgreen:
            AYRIC

            دیدگاه


              #21
              پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

              نوشته اصلی توسط roboreza
              سلام
              1-برای راه اندازی lcd های تاچ مثل lcd های تبلت چه مدلی رو پیشنهاد میکنید.
              2-یه مدل که برای کنترل روبات مناسب باشه مثلا تعداد pwm زیاد adc زیاد و از این جور چیزا داشته باشه چه مدلی رو پیشنهاد میکنید؟ من خودم فکر کردم مدل ds PIC30F6010 خوبه ولی گیرم نیومد.

              اگه هم هر دو کار را بتونه انجام بده که خیلی خوب میشه :mrgreen:
              برای اولی، PIC32mx460 مناسبه، پکیج 14*14 میلیمتر داره (برای لحیم کاری راحت تر) و تو بازار هستش. البته به شرطی که بخوای همه برنامه رو خودتون بنویسید؛ در غیر اینصورت، lpc1768 هست، ارزونتر هست، کتابخونه های زیادی داره، خود ما هم داریم یه تبلت و سیستم عامل، تحت همین میکرو می سازیم و به زودی به صورت رایگان در اختیار همه قرار خواهیم داد.
              در مورد دومی - PIC32mx360/460 خوبه، چون 16 تا آنالوگ داره و سرعت مناسبی داره. کار کردن با PIC32 بسیار ساده تر از ARM هست و ... .
              یه نظر شخصی در مورد اترنت:
              من به این که می گن فلان میکرو اترنت داره توجهی نمی کنم، چون یه بار می خواستم از اترنت استفاده کنم، فکر کردم الان میکرو رو مثل یو اس بی وصل می کنم به کامپیوتر و (حالا 100 مگابیت که نه، 10 مگابیت) پردازش و ... ، متوجه شدم که منظور از اترنت میکرو اینه که باید یه آی سی واسطه با میکرو و اترنت بذارم و کلی قطعه اضافه کنم و قضیه رو پیچیده تر کنم و ... - از همونجا فهمیدم که یه میکروکنترلری مثل lpc1768 که واقعا بیخودی گنده شد، حتی خودم هم ... کلا با اون سرعتی که داره uart 115200bpsرو به زور میشه باهاش پردازش کنم، چه برسه به اترنت10000000bps.
              امید وارم که هم ربات و هم تبلتتون رو بتونید به بهترین شکل ممکن بسازید - موفق باشی دوست عزیز
              ***
              من ول کردم، می خوام ببینم که شما هم ول می کنین یا نه!

              دیدگاه


                #22
                پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                مرسی از پاسختون
                نوشته اصلی توسط x.m.k
                برای اولی، PIC32mx460 مناسبه، پکیج 14*14 میلیمتر داره (برای لحیم کاری راحت تر) و تو بازار هستش. البته به شرطی که بخوای همه برنامه رو خودتون بنویسید؛ در غیر اینصورت، lpc1768 هست، ارزونتر هست، کتابخونه های زیادی داره، خود ما هم داریم یه تبلت و سیستم عامل، تحت همین میکرو می سازیم و به زودی به صورت رایگان در اختیار همه قرار خواهیم داد.
                در مورد دومی - PIC32mx360/460 خوبه، چون 16 تا آنالوگ داره و سرعت مناسبی داره. کار کردن با PIC32 بسیار ساده تر از ARM هست و ... .
                یه نظر شخصی در مورد اترنت:
                من به این که می گن فلان میکرو اترنت داره توجهی نمی کنم، چون یه بار می خواستم از اترنت استفاده کنم، فکر کردم الان میکرو رو مثل یو اس بی وصل می کنم به کامپیوتر و (حالا 100 مگابیت که نه، 10 مگابیت) پردازش و ... ، متوجه شدم که منظور از اترنت میکرو اینه که باید یه آی سی واسطه با میکرو و اترنت بذارم و کلی قطعه اضافه کنم و قضیه رو پیچیده تر کنم و ... - از همونجا فهمیدم که یه میکروکنترلری مثل lpc1768 که واقعا بیخودی گنده شد، حتی خودم هم ... کلا با اون سرعتی که داره uart 115200bpsرو به زور میشه باهاش پردازش کنم، چه برسه به اترنت10000000bps.
                امید وارم که هم ربات و هم تبلتتون رو بتونید به بهترین شکل ممکن بسازید - موفق باشی دوست عزیز
                من از سوالایی که پرسیدم مدنظرم همون pic بود
                در مورد ARM من چیزی نمیدونم و میخواستم اگه بدرد بخور باشه یه مدل از میکرو هایی که با تکنولوژی ARM هستند رو شروع به یادگیری کنم که برای یه کارایی مثل همین LCD ها و شاید جاهایی که PIC کم بیاره راحتتر باشم به نظر شما چه خوانواده ای از همه بهتره که کارکردن باهاش هم خیلی سخت (منظورم اوناییه که بیخودی سخت هستند عین تفاوت CCS و MPLAB) نباشه ؟ LPC یا CORTEX یا NXP یا ...؟
                AYRIC

                دیدگاه


                  #23
                  پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

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

                  به نظر من تو این تاپیک جناب x.m.k با مقایسه ای کاملا نابرابر (اصلا معلوم نیست چی رو با چی دارن مقایسه میکنن و این اعداد و ارقام ...) و به صورت کاملا مقرضانه و با چاشنی اغراق دارن دوستان رو به سمت PIC32 میکشن.
                  باید واقیت ها رو بیان کرد.
                  هر میکرویی توانایی ها و کاربرد خاص خودشو داره.
                  از پست های ابتدایی تاپیک مدت زیادی میگذره. اما در مورد این جمله:
                  -یکر بندی بسیار پیچیده (پیچیدگی غیر مفید)
                  کلا با این حرف معماری Cortex رو زیر سوال بردید!
                  به عنوان مثال پیچیده ترین قسمت میکرو 1768 رو (به نظر خودم) براتون مثال میزنم.
                  واحد GPDMA :
                  کد:
                  • Eight DMA channels. Each channel can support an unidirectional transfer.
                  • 16 DMA request lines.
                  • Memory-to-memory, memory-to-peripheral, and peripheral-to-memory transfers are
                  supported.
                  • GPDMA supports the SSP, I2S, UART, A/D Converter, and D/A Converter peripherals.
                  DMA can also be triggered by a timer match condition. Memory-to-memory transfers
                  and transfers to or from GPIO are also supported.
                  نکنه توقع دارید این همه قابلیت رو با تنظیم دو تا رجیستر به راحتی راه بندازید؟
                  یکم واقع بینانه تر به مساله نگاه کنید.
                  این تاپیک ایجاد شده تا در مورد مزایای این دو خانواده بحث بشه نه سلایق شخصی شما.
                  تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                  دیدگاه


                    #24
                    پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                    نوشته اصلی توسط x.m.k

                    اما در مورد pic32 و arm cortex که عموما 1768 در نظر گرفته میشه. 1768 می تونه هر دستور العمل رو حداکثر در 1/20000000 ثانیه اجرا کنه؛ مثلا شما می نویسید که پورت b رو 0xffffffff کن، به صورت زیر:
                    FIO0PIN = 0xffffffff;
                    این کد وقتی به اسمبلی تبدیل میشه، 4 خط برنامه اسمبلی یا 4 دستورالعمل میشه، دو تا برای ذخیره 0xffffffff در رجیستر سی پی یو و دوتا برای آدرس دهی و جایگذاری در پورت.
                    علت این که 4 دستورالعمل میشه هم کاملا واضحه، چون این میکرو ها 32 بیتی هستن و پورت 32 پین دارد و آدرس ها نیز 32 بیت هستند(اگه خواستید بیشتر توضیح می دم)
                    چس بعد از 1/5000000 ثانیه دیگه، پورت شما HIGH میشه.
                    اما PIC32 با حداکثر سرعت 80 مگاهرتز، این عمل رو در 1/2000000 ثانیه انجام می ده، یعنی درست 4 برابر- من این رو امتحان کردم- پس اگر بخواهید که یه ال سی دی رو برنامه ریزی کنید، قطعا با PIC32 موفق تر خواهید بود.
                    دوست عزیز درسته که دستور انتقال به پورت در Cortex به 3 تا 4 دستور اسمبلی تبدیل میشه ولی در مورد هسته PIC32 هم این قضیه صادق است. دلیلش هم کاملا واضح هست چون معماری هر دو RISC هست و به طور مستقیم نمیتوان در رجیستر های تجهیزات جانبی یا RAM دستکاری کرد. البته در سری PIC32 میشه از Atomic operation برای دستکاری سریع در رجیستر ها استفاده نمود که این ربطی به هسته پردازنده ندارد و میتوان از این مزیت در هسته های ARM هم استفاده کرد. همونطوری که در بیشتر میکروهای سری AT91 با هسته های ARM7TDMI و... از این مزیت استفاده شده. البته هدف بنده از بیان این مطلب زیر سوال بردن معماری MIPS32 در میکروهای PIC32 نیست چون واقعا این میکروها چیزی از هسته Cortex M3 کم ندارند، ولی در هر حال باید نگاه دقیقتر و منصفانه داشت.
                    به نظر شخص بنده علت فراگیر شدن هسته های ARM برتری اونها نسبت به میکروهای 32 بیتی Atmel ، Microchip یا Texas نیست بلکه سادگی معماری، طراحی بهینه جهت مصرف انرژی کمتر و هزینه پائین تر تولید ( احتمالا به دلیل استفاده از ترانزیستور کمتر در هسته) میتونه باشه.

                    دیدگاه


                      #25
                      پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                      نوشته اصلی توسط roboreza
                      مرسی از پاسختونمن از سوالایی که پرسیدم مدنظرم همون pic بود
                      در مورد ARM من چیزی نمیدونم و میخواستم اگه بدرد بخور باشه یه مدل از میکرو هایی که با تکنولوژی ARM هستند رو شروع به یادگیری کنم که برای یه کارایی مثل همین LCD ها و شاید جاهایی که PIC کم بیاره راحتتر باشم به نظر شما چه خوانواده ای از همه بهتره که کارکردن باهاش هم خیلی سخت (منظورم اوناییه که بیخودی سخت هستند عین تفاوت CCS و MPLAB) نباشه ؟ LPC یا CORTEX یا NXP یا ...؟
                      در مورد ARM دو نو میکرو کنترلر از شرکت nxp معمولا بیشتر استفاده میشه:
                      LPC1768
                      LPC2368
                      تقریبا این دو شبیه هم هستن، تفاوت های جزئی دارن، ولی اولی هم ارزون تره و هم بیشتر مورد استفاده قرار میگره. پردازنده LPC1768 هم cortexm3 هست - البته سرعت کل میکرو کنترلر هایی که به طور رایج تو بازار هست، اونقدری نیست که بشه نوع پردازنده ها رو به طور دقیق محاسبه نمود. بیشتر این که میکروکنترلر حتما 32 بیتی باشه رو در نظر بگیرید و سعی کنید با استفاده از اسمبلی و الگوریتم های کوتاه، سرعت رو بالا ببرید.
                      اما یه نوع از ای آر ام ها هست که نسبتا سرعت بالایی داره، AT91SAM9260 هست - سرعت پردازنده این میکرو تا 180 مگاهرتز میرسه و سرعت خوندن دستورالعمل های این میکرو هم فکر کنم تا 90 مگاهرتز برسه - 96 تا IO داره و تنها 4 تا adcو در کل، به نظر من، بهترین میکرو کنترلری که میشه تو بازار ایران پیدا کرد، همینه. به غیر از اینا، باس پارالل 32 بیتی داره - باس مربوط به sdcard داره - باس مربوط به image sensor داره و فکر کنم lcd controller هم داشته باشه. قیمتش هم حدود 18 تومنه، ولی لحیم کاریش پردردسره و کار کردن باهاش، تخصصی تره (از این میکرو بهتر هم تو ایران پیدا میشه، ولی دست از ما بهترونه - میکرو کنترلر پرسرعت هم مثل تکنولوژی ساخت آی سی میمونه، یه عده گیرش میارن و نمی ذارن دیگه کسی بهش نزدیک بشه)
                      -----------------------------
                      پاسخ آقای mehdi_nxp:
                      شما درست می گین - خیلی چیزا داخل 1768 نهفته، اما به کار نمیاد - شرکت nxp اینا رو نذاشته که هرکی خرید، همش رو استفاده کنه، از تکنیک همه چیز گذاری استفاده کرده، تا همه سلایق بتونن ازش استفاده کنن و فروش بالایی داشته باشه، وگرنه آنچنان مزیت محسوب نمیشه. خود من یه جاهایی 1768 رو به بقیه میکرو ها ترجیح می دم.
                      -----------------------------
                      پاسخ آقای e.fazli
                      محاسبه سرعت اجرای دستورالعمل هایی که داشتم، هم برای پی آی سی و هم برای ای آر ام ،بر مبنای همون تبدیل اون یه خط سی به 4 خط اسمبلی بوده- در مورد مصرف هم، تا اونجایی که من اطلاع داشتم، PIC32 کم مصرف تر بوده از ARM cortex m3 ، ولی اگه اشتباه می کنم، حق با شماست.
                      ***
                      من ول کردم، می خوام ببینم که شما هم ول می کنین یا نه!

                      دیدگاه


                        #26
                        پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                        برای این LPC1768 و AT91SAM9260 کامپایلری هم وجود داره؟ یه کامپایلر خوب که لایبراری های کافی رو هم داشته باشه؟
                        AYRIC

                        دیدگاه


                          #27
                          پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                          ARM سه کامپایلر بیشتر نداریم:
                          iar
                          keil
                          ARM GCC
                          من keil رو پیشنهاد میکنم
                          برای کتابخونه هم باید یا خودتون بنویسید یا جمع آوری کنید چون به صورت پیشفرض کتابخونه های lcd و... رو نداره

                          دیدگاه


                            #28
                            پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                            نوشته اصلی توسط PLASMA
                            ARM سه کامپایلر بیشتر نداریم:
                            iar
                            keil
                            ARM GCC
                            من keil رو پیشنهاد میکنم
                            برای کتابخونه هم باید یا خودتون بنویسید یا جمع آوری کنید چون به صورت پیشفرض کتابخونه های lcd و... رو نداره
                            کدومش از همه قویتر هست ؟همون keil؟
                            AYRIC

                            دیدگاه


                              #29
                              پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                              نوشته اصلی توسط roboreza
                              کدومش از همه قویتر هست ؟همون keil؟
                              من هم keil رو امتحان کردم، هم IAR رو - به نظر من IAR بهتره، البته من چون قبلا برنامه نویس بودم، از لایبراری کمتر استفاده می کنم، معمولا توابع و ... رو خودم می نویسم، ولی اگر از لایبراری و کد های از پیش نوشته شده دوست دارید استفاده کنید، فکر کنم نرم افزار keil بیشتر داشته باشه
                              ***
                              من ول کردم، می خوام ببینم که شما هم ول می کنین یا نه!

                              دیدگاه


                                #30
                                پاسخ : برتری PIC32 نسبت به میکروهای ARM7 Cortex

                                ممنون از پاسخ هاتون
                                آموزش هم هست برای این کامپایلر keil ؟ که از اول شروع کرده باشه ؟
                                اگه فارسی باشه خیلی بهتره
                                AYRIC

                                دیدگاه

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