اطلاعیه

Collapse
No announcement yet.

تعویض mega8 با mega328

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

    تعویض mega8 با mega328

    سلام دوستان
    من یک کد برای mega8 تو محیط آروینو نوشتم و به خوبی کار میکنه و حالا چون قیمت mega8 با mega328 تقریبا یکیه و حافضه mega328 خیلی بیشتره و مشخصات فیزیکیشون هم کاملا یکسانه میخواستم کد رو روی mega328 آپلود و اجرا کنم من فایل هگز رو از آردوینو ای دی ای میگیرم و progisb آپلود میکنم ، میخواستم ببینم اگر این چیپ رو تعویض کنم مشکلی پیش نمیاد ؟؟؟؟

    #2
    Re: تعویض mega8 با mega328

    سلام اگه روی مگا 8 جواب داده روی مگا 328 هم جواب میده از لحاظ ساختاری و ترتیب پایه ها دقیقا عین همند و فقط 8kb به 32kb ارتقا یافته

    دیدگاه


      #3
      پاسخ : Re: تعویض mega8 با mega328

      نوشته اصلی توسط Behzad PRV نمایش پست ها
      سلام اگه روی مگا 8 جواب داده روی مگا 328 هم جواب میده از لحاظ ساختاری و ترتیب پایه ها دقیقا عین همند و فقط 8kb به 32kb ارتقا یافته
      ممنون ، نحوه پروگرام کردنش که تفاوتی نداره ؟

      دیدگاه


        #4
        پاسخ : Re: تعویض mega8 با mega328

        نه مگا 8 با مگا 328 متفاوته. مگا 8 جزو خونواده مگا 8، مگا 16 و مگا 32 ه
        مگا 328 جزو خونواده جدیدتر مگا 48، 88، 168 و 328 ه
        آپلود کنید احتمال زیاد کار نمیکنه. خیلی چیزای ساختاریشون مث وقفه های پین (که مگا8 نداره اصن) با هم متفاوته.
        Si vis pacem, para bellum

        دیدگاه


          #5
          پاسخ : Re: تعویض mega8 با mega328

          کد رو در محیط ide برای آردویینو uno کمپایل و بیلد کنین و هگز رو روی 328 بریزین






          امیرحسین ضیا

          دیدگاه


            #6
            پاسخ : Re: تعویض mega8 با mega328

            نوشته اصلی توسط azjaguar نمایش پست ها
            کد رو در محیط ide برای آردویینو uno کمپایل و بیلد کنین و هگز رو روی 328 بریزین
            خیلی ممنون

            دیدگاه


              #7
              Re: پاسخ : Re: تعویض mega8 با mega328

              اگر برعکس بود گفته شما صحیح بود البته در صورت استفاده از اون اینتراپت های خارجی
              برنامه قبلی ایشون رو مگا8 جواب داده اگر احیانا وقفه خارجی هم استفاده کرده باشن از وقفه های محدود مگا 8 بوده پس جواب میده و نیازی به فامیل بودن با مگا 328 نداره

              دیدگاه


                #8
                پاسخ : Re: پاسخ : Re: تعویض mega8 با mega328

                نوشته اصلی توسط Behzad PRV نمایش پست ها
                اگر برعکس بود گفته شما صحیح بود البته در صورت استفاده از اون اینتراپت های خارجی
                برنامه قبلی ایشون رو مگا8 جواب داده اگر احیانا وقفه خارجی هم استفاده کرده باشن از وقفه های محدود مگا 8 بوده پس جواب میده و نیازی به فامیل بودن با مگا 328 نداره

                صفحه ی 309 دیتاشیت اتمگا 8، register summary رو آدرس هاش رو مقایسه کنید با register summary خانواده 328، صفحه ی 427 دیتاشیت. اینا باید مو به مو یکی باشن. که نیستن. مثال میزنم :

                رجیستر به آدرس 0x33 :
                برای اتمگا 328 و فک و فامیلاش : رجیستر SMCR
                برای اتمگا 8 : TCCR0

                همینجا به وضوح مشخصه که کدی که قراره تایمر 0 رو تنظیم کنه، توی 328 بجاش رجیستر SMCR رو تنظیم میکنه که مربوط به حالت های کم مصرف و استند بای و خواب میکروه



                رجیستر به آدرس 0x66
                برای اتمگا 328 : کالیبره کردن اسیلاتور
                اتمگا 8: اصن نداره این آدرس رجیستر رو

                رجیستر به آدرس 0x38
                برای اتمگا 8: رجیستر فلگ وقفه های تایمر
                برای اتمگا 328 : غیرفعال

                رجیستر 0x27
                برای اتمگا 8: اینپوت کپچر تایمر 1
                برای اتمگا 328 : آوتپوت کامپیر تایمر 0 (یعنی همه چیش برعکسه)


                نتیجه اینکه حتا اگر این بار کار کرد، یا حتا اگر 1000 کد مختلف رو امتحان کردید و شد، کاملا شانسی بوده.
                Si vis pacem, para bellum

                دیدگاه


                  #9
                  پاسخ : Re: پاسخ : Re: تعویض mega8 با mega328

                  نوشته اصلی توسط tiranoid نمایش پست ها
                  صفحه ی 309 دیتاشیت اتمگا 8، register summary رو آدرس هاش رو مقایسه کنید با register summary خانواده 328، صفحه ی 427 دیتاشیت. اینا باید مو به مو یکی باشن. که نیستن. مثال میزنم :

                  رجیستر به آدرس 0x33 :
                  برای اتمگا 328 و فک و فامیلاش : رجیستر SMCR
                  برای اتمگا 8 : TCCR0

                  همینجا به وضوح مشخصه که کدی که قراره تایمر 0 رو تنظیم کنه، توی 328 بجاش رجیستر SMCR رو تنظیم میکنه که مربوط به حالت های کم مصرف و استند بای و خواب میکروه



                  رجیستر به آدرس 0x66
                  برای اتمگا 328 : کالیبره کردن اسیلاتور
                  اتمگا 8: اصن نداره این آدرس رجیستر رو

                  رجیستر به آدرس 0x38
                  برای اتمگا 8: رجیستر فلگ وقفه های تایمر
                  برای اتمگا 328 : غیرفعال

                  رجیستر 0x27
                  برای اتمگا 8: اینپوت کپچر تایمر 1
                  برای اتمگا 328 : آوتپوت کامپیر تایمر 0 (یعنی همه چیش برعکسه)


                  نتیجه اینکه حتا اگر این بار کار کرد، یا حتا اگر 1000 کد مختلف رو امتحان کردید و شد، کاملا شانسی بوده.
                  آیا نیازی هست توی محیط آردویینو تک تک این رجیستر ها بیت دهی بشن؟ یا با انتخاب بورد مناسب این رجیستر ها سامان دهی میشن؟ من فکر میکنم با انتخاب بورد این رجیستر ها به حالت دیفالت میرن. مگر اینکه برنامه ی نوشته شده به حدی پیچیده باشه که بخوایم این تنظیمات رو هم تغییر بدیم(ایشون میخوان توی arduino ide کد بزنن/و کد قبلی رو احتمالا برای arduino ng نوشتن و الان میخوان برای uno بنویسن)
                  به هر حال توصیه اینه که اگر تنظیمات دیفالت این رجیستر هارو تغییر دادین و میخواین از کد های اختصاصی avr ( و نه آردویینو!) در محیط کامپایلر arduino ide استفاده کنین بهتره توی اتمل استادیو یبار دیگه برنامه رو برای 328 بازنویسی کنین






                  امیرحسین ضیا

                  دیدگاه


                    #10
                    پاسخ : Re: پاسخ : Re: تعویض mega8 با mega328

                    نوشته اصلی توسط azjaguar نمایش پست ها
                    آیا نیازی هست توی محیط آردویینو تک تک این رجیستر ها بیت دهی بشن؟ یا با انتخاب بورد مناسب این رجیستر ها سامان دهی میشن؟ من فکر میکنم با انتخاب بورد این رجیستر ها به حالت دیفالت میرن. مگر اینکه برنامه ی نوشته شده به حدی پیچیده باشه که بخوایم این تنظیمات رو هم تغییر بدیم(ایشون میخوان توی arduino ide کد بزنن/و کد قبلی رو احتمالا برای arduino ng نوشتن و الان میخوان برای uno بنویسن)
                    به هر حال توصیه اینه که اگر تنظیمات دیفالت این رجیستر هارو تغییر دادین و میخواین از کد های اختصاصی avr ( و نه آردویینو!) در محیط کامپایلر arduino ide استفاده کنین بهتره توی اتمل استادیو یبار دیگه برنامه رو برای 328 بازنویسی کنین

                    نه اینا مربوط به کامپایل دوباره نیست. بعد از عوض کردن برد، یا انتخاب یه میکروی دیگه اگر محیط دیگه ایه، و کامپایل دوباره، مقادیر درست میشن.

                    سوال این بود :
                    فایل هگزی که برای اتمگا 8 کامپایل شده، مستقیما (بدون کامپایل مجدد) روی یه میکروکنترلر دیگه ریخته بشه کار میکنه یا نمیکنه ؟
                    که پاسخ بنده مربوط به این سواله.

                    مشخصه که وقتی دوباره کامپایل بشه برای یه میکروی دیگه مشکلی نیست . اصن دوباره کامپایل بشه تو مثلا آردویینو، پروگرام بشه روی ESP8266 یا STM32 یا هرچی. بدیهیه مشکلی نخواهد بود
                    Si vis pacem, para bellum

                    دیدگاه


                      #11
                      Re: پاسخ : Re: پاسخ : Re: تعویض mega8 با mega328

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

                      دلیل: ادغام دو پست برای جلوگیری از اسپم

                      البته منظور از پاسخ من برای کامپایل مجدد بود
                      کاملا بدیهیه بدون کامپایل مجدد و فایل هگز جدید امکانش نیست که درست بتونه کار کنه حتی اگه توو موارد کمی از رجیسترها تفاوت داشته باشند بازم بدون هگز جدید در سطح سخت افزاری ( پردازنده مرکزی) ناهماهنگی هایی ایجاد میشه که مانع از کار کردن درست برنامه میشه
                      ولی همونطور که گفتین در هر صورت کار درست و حساب شده ای نیست و باید برنامه برای میکروی مورد نظر بهینه سازی بشه حتی اگه جواب هم بده باگ های متفاوتی در آینده از خودش نشون میده
                      جدیدترین ویرایش توسط Behzad PRV; ۱۹:۲۲ ۱۳۹۸/۰۵/۱۲.

                      دیدگاه

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