اطلاعیه

Collapse
No announcement yet.

بحث راجع به فیوز بیتهای میکروکنترلر AVR

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

    بحث راجع به فیوز بیتهای میکروکنترلر AVR

    سلام به همه دوستداران میکروکنترلر و به ویژه دوستداران مبحث فیوز بیت ها. :bye

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

    مطالبی که ارائه می شود عمومی می باشد و مختص کامپایلر خاصی نیست و مرجع اصلی دیتا شیت قطعات است

    خوب حالا از کجا شروع کنیم :question: :question:



    ویرایش تاریخ 1393/05/25
    لینک زیر جهت دنلود کلیه مطالب ذکر شده می باشد

    http://s5.picofile.com/d/20f42dcf-6c...%D8%B1_AVR.pdf
    فایل های پیوست شده

    #2
    پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

    اصلاً فیوز بیت چیست؟؟؟؟

    فیوز بیتها در واقع وسیله ی تنظیمات سخت افزاری میکروکنترلرها می باشندکه فقط با پروگرم کردن قابل دسترسی هستند. در فیوز بیتها عدد یک به معنی برنامه ریزی نشدن و عدد صفر به معنی برنامه ریزی شدن فیوزها می باشند. ساده بگم فیوز بیت فرض کنید شما بخواهیید یک سری از امکانات سخت افزاری و نرم افزاری میکرو کنترلر رو فعال کنید باید با مقدار دهی این فیوز بیت ها این کار رو انجام بدید. مثلاً اگر بخواید کریستال رو داخلی یا خارجی کنید، یا اینکه خازن های داخلی اسیلاتور رو فعال یا غیر فعال کنید و .... از این فیوز بیت ها استفاده میکنیم.

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

    حالا از کدم نوع میکرو شروع کنیم؟؟؟ :question: :question: :question:

    دیدگاه


      #3
      پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

      حمید جان ( ) من فکر کنم با ATmega16 یا ATmega32 شروع کنیم بد نباشه چون اکثر بچه ها از این ای سی ها استفاده میکنن. خوب اگر کسی ای سی خاصی رو مد نظر داشت بگه تا ما اونو هم کامل توضیح میدیم.

      فیوز بیت های ATmega32 و ATmega16

      ATmega16 دارای 2 ریجیستر 8 بیتی برای تنظیمات فیوز بیت ها است. شکل زیر رو نگاه کنید:




      خوب اول بریم سراغ تشریح هر کدوم از این فیوز بیت ها بعد هم سراغ تنظیم کردنشون.
      ببخشید که یک کم غیر منظم توضیح داده میشه،.



      فیوز بیتهای CKSEL0، CKSEL1 ، CKSEL2 ، CKSEL3:

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





      به ستاره های نوع کلاک دقت کنید:

      توضیحات:
      * اگر میخواهید کلاک میکرو را مانند شکل زیر تولید کنید باید از این گزینه استفاده کنید:


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


      *** در زمان استفاده از کریستال خارجی می بایست مقدار فرکانس آن مشخص باشد. در ضمن تفاوت عمده بین حالتهای کریستال خارجی در مدت زمان بالا آمدن میکرو پس از reset می باشد که دیگه تو این قسمت مدت زمانها رو توضیح نمیدیم و به همین اکتفا میکنیم. دقت داشته باشید که فیوز بیت های SUT که بعداً بهشون میرسیم نیز واسه همین کار تعبیه شده اند.



      فیوز بیت های SUT0 ، SUT1 :
      همونطور که گفتیم این فیوز بیت ها سرعت ریست میکروکنترلر را مشخص می کنند. که طبق جدول زیر برنامه ریزی می شوند.



      نکته مهم : توصیه می شود که هنگام تغییر فیوز بیت ها SUT0=0 و SUT1=1 قرار داده شود.


      فیوز بیت های BODEN وBODLEVEL
      فیوز بیتBODEN قابلیت Detection Brown –out آی سی را فعال می کند. این قابلیت بدین صورت است که اگر ولتاژ تغذیه آی سی از حدی پایین تر آید، میکروReset می شود. این ولتاژاز طریق فیوز بیت BODLEVEL تعیین می شود.



      فیوز بیت BOOTRST :
      این فیوز بیت در صورت برنامه ریزی شدن آدرس بردار Reset را به ابتدای حافظه Boot انتقال می دهد.

      فیوز بیت های BOOTSZ0 و BOOTSZ1:
      این فیوز بیتها برای تعیین اندازه و مکان شروع حافظه Boot بکار می روند که طبق جدول زیر تعیین می شود.



      فیوز بیت EESAVE:
      اگر این فیوز بیت برنامه ریزی شود در هنگام Erase کردن، فقط حافظه Flash پاک می شود و حافظه EEPROM آن ثابت باقی می ماند.


      فیوز بیت CKOPT:
      با برنامه ریزی کردن این فیوز بیت، خازنهای داخلی میکرو با مقدار 36pf فعال می شوند و دیگر نیازی به استفاده از خازنهای خارجی در روی کریستال نیست. همچنین با فعال کردن این فیوز بیت دامنه ولتاژ اسیلاتور چندین برابر می شود.

      فیوز بیت JTAGEN
      اگر از رابط JTAG برای پروگرم کردن استفاده می کنید باید این فیوز بیت فعال شود. دقت داشته باشید که اگر این فیوز بیت فعال شده باشد دیگر قادر به استفاده از پورتی که بیت های JTAG برروی آن می باشد (مثلاً پورت C در ATmega16 ) نیستیم. به طور پیش فرض این فیوز بیت فعال می باشد و برای استفاده از پورت C باید این فیوز بیت را غیرفعال کنیم.

      فیوز بیت SPIEN :
      اگر این فیوز بیت فعال باشد میکرو قابلیت اتصال پروگرمرهایی که با رابط SPI کار میکنند (به طور مثال پروگرمر STK200 ) را پیدا میکند.( در نرم افزار code vision و بسکام این فیوز بیت در اختیار کاربران قرار نمیگیرد)

      فیوز بیت OCDEN :
      اگر این فیوز بیت فعال شود میکرو قابلیت debug شدن را پیدا می کند.


      [color=blue]خوب فکر کنم مبحث فیوز بیت های ATmega16 و ATmega32 تموم شده باشه نظر شما چیه؟؟؟



      اگر IC خاصی در نظر دارید بگید تا فیوز بیتهاش رو در بیاریم و بذاریم.

      دیدگاه


        #4
        پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

        اگر کسی اطلاعات کاملی در مورد کار با محیط پروگرمر خود برنامه بسکام( منظورم دستکاری فیوز بیتها تو این محیط) داره در اختیار بذاره خیلی خوب میشه :rolleyes:
        Reveng will surely come... Your hard time are ahead
        // - - - - - - - - - -
        برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
        // - - - - - - - - - -
        اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
        // - - - - - - - - - -

        دیدگاه


          #5
          پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

          سلام

          کلیت ش همینه که آقا حمید گفتن

          اما تو بسکام کار با فیوز بیت درد سر داره
          با کد وبژن بهتره

          من می رم در مورد بسکام یه مقاله آماده میکنم.
          زندگی یه فرصته

          دیدگاه


            #6
            پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

            سلام دوستان

            همونطور که می بینید این تایپیک جزء تایپیکهای مهم قرار گرفته پس اطلاعاتی رو که اینجا میزارین همه ازش استفاده خواهند کرد. در ضمن اگر مشکل یا سوالی درباره پروگرم کردن میکرو در محیطهای بسکام ، code vision ، AVR CCG ، AVR Studio و ... دارید میتونید تو هم قسمت مطرح کنید.

            از آقای [glow=red,2,300]بلورچیان[/glow] هم ممنون که اهمیت موضوع رو درک کردن و این تایپیک رو جزو تایپیکهای مهم قرار دادن.

            دیدگاه


              #7
              فیوز بیت های ATmega8

              مجدد سلام.

              خوب حالا بریم سراغ یکی دیگه از معروفترین میکرو کنترلرهای AVR به نام ATmega8 .

              این ای سی 28 پینه دارا 8 کیلو حافظه فلش و یک سری امکانات خاصه که تو مبحث ما نمیگنجد. بحث مهم واسه ما همون فیوز بیت هاشه که دارای دو تا ریجیستر 8 بیتی برای تنظیم فیوز بیت هاست. تقریباً 14 فیوز بیت کم ارزش mega8 دقیقاً مانند mega16 است ولی فرقشون تو 2 تا فیوزبیتهای آخره که ما اینجا مجدد تمامی فیوز بیت ها رو مورد بررسی قرار میدیم.




              فیوز بیت هایAtmega8

              ATmega8 دارای 2 ریجیستر 8 بیتی برای تنظیمات فیوز بیت ها است. شکل زیر رو نگاه کنید:




              فیوز بیتهای CKSEL0، CKSEL1 ، CKSEL2 ، CKSEL3:
              این فیوز بیتها منبع کلاک سیستم را تعیین می کنند. در واقع نوع کلاک سیستم مطابق جدول زیر تعیین می شود. توجه داشته باشیدکه تیک زدن هرکدام از فیوز بیتها به معنای صفر شدن آن فیوز بیت تلقی می گردد. خوب حالا به این جدولی که در آوردیم نگاه کنید:





              به توضیحات mega16 مراجعه شود.





              فیوز بیت های SUT0 ، SUT1 :
              همونطور که گفتیم این فیوز بیت ها سرعت ریست میکروکنترلر را مشخص می کنند. که طبق جدول زیر برنامه ریزی می شوند.



              نکته مهم : توصیه می شود که هنگام تغییر فیوز بیت ها SUT0=0 و SUT1=1 قرار داده شود.


              فیوز بیت های BODEN وBODLEVEL
              فیوز بیتBODEN قابلیت Detection Brown –out آی سی را فعال می کند. این قابلیت بدین صورت است که اگر ولتاژ تغذیه آی سی از حدی پایین تر آید، میکروReset می شود. این ولتاژاز طریق فیوز بیت BODLEVEL تعیین می شود.




              فیوز بیت BOOTRST :
              این فیوز بیت در صورت برنامه ریزی شدن آدرس بردار Reset را به ابتدای حافظه Boot انتقال می دهد.

              فیوز بیت های BOOTSZ0 و BOOTSZ1:
              این فیوز بیتها برای تعیین اندازه و مکان شروع حافظه Boot بکار می روند که طبق جدول زیر تعیین می شود.




              فیوز بیت EESAVE:
              اگر این فیوز بیت برنامه ریزی شود در هنگام Erase کردن، فقط حافظه Flash پاک می شود و حافظه EEPROM آن ثابت باقی می ماند.


              فیوز بیت CKOPT:
              با برنامه ریزی کردن این فیوز بیت، خازنهای داخلی میکرو با مقدار 36pf فعال می شوند و دیگر نیازی به استفاده از خازنهای خارجی در روی کریستال نیست. همچنین با فعال کردن این فیوز بیت دامنه ولتاژ اسیلاتور چندین برابر می شود.


              ATmega8 فاقد رابط JTAG است بنابراین فیوز بیت JTAGEN را ندارد.

              فیوز بیت SPIEN
              اگر این فیوز بیت فعال باشد میکرو قابلیت اتصال پروگرمرهایی که با رابط SPI کار میکنند (به طور مثال پروگرمر STK200 ) را پیدا میکند.( در نرم افزار code vision و بسکام این فیوز بیت در اختیار کاربران قرار نمیگیرد)


              فیوز بیت WDTON
              اکثر میکروکنترلرهای AVR دارای شمارنده Watchdog هستند که می توان آنها را به صورت نرم افزاری فعال یا غیر فعال کرد. اگر این فیوز بیت فعال شود شمارنده watchdog دائماً روشن خواهد بود.(شمارنده watchdog به منظوری برای کم کردن تاثیر نویز استفاده میشود. بدین صورت که با هر بار سر ریز شدن این شمارنده میکرو یکبار ریست میشود.)

              فیوز بیت RSTDISBL:
              در حالت عادی پایه 1 میکرو(PC6) پایه ریست است که اگر این فیوز بیت را فعال کنیم پایه 1 به ورودی خروجی (I/O) تبدیل میشود.

              دیدگاه


                #8
                پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                آی سی بعدی mega128 که دارم آماده میکنم





                منتظر باشید

                ان شااله بعد از سری mega میرم سراغ tiny و بعد ......

                در ضمن بحث نحوه پروگرم کردن و در محیطهای code vision و بسکام نیز حتماً گنجانده میشه. فقط از
                آقای خلیلی خواهش میکنم هر چه زودتر این مطالبی رو که قولشو دادن بزارن(فیوز بیت ها در بسکام).

                دیدگاه


                  #9
                  پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                  سلام ببخسید با کفش اومدم داخل :mrgreen:
                  من میخاستم بدونم چرا در مگا 128 چرا یه فیوز بیت وجود داره که میشه میکرو رو 103 یا 128 گذاشت و میخاستم بدونم چه فرق های دارن
                  :nerd:
                  انجام پروژه هاي برنامه نويسي اندرويد
                  [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                  http://cafebazaar.ir/app/?id=com.atxdroid

                  دیدگاه


                    #10
                    پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                    نوشته اصلی توسط mohsen.HEX
                    سلام ببخسید با کفش اومدم داخل :mrgreen:
                    من میخاستم بدونم چرا در مگا 128 چرا یه فیوز بیت وجود داره که میشه میکرو رو 103 یا 128 گذاشت و میخاستم بدونم چه فرق های دارن
                    :nerd:
                    سلام. من داشتم اینا رو آماده میکردم بزارم ولی مثل اینکه یک کم طول بکشه.

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

                    اینم دیتا شیتاشون. صفحه اول هر کدوم رو بخونی متوجه اختلافات و مشابهاتشون میشی.

                    http://datasheet4u.com/download.php?id=219533


                    http://datasheet4u.com/download.php?id=219527

                    دیدگاه


                      #11
                      فیوز بیت های ATmega128:

                      فیوز بیت های ATmega128:

                      شکل زیر رو نگاه کنید:



                      فیوز بیتهای CKSEL0، CKSEL1 ، CKSEL2 ، CKSEL3:
                      این فیوز بیتها منبع کلاک سیستم را تعیین می کنند. در واقع نوع کلاک سیستم مطابق جدولی که در قسمت بالا (فیوز بیت های mega16 ) تعیین می شود.

                      فیوز بیت های SUT0 ، SUT1 :
                      همونطور که گفتیم این فیوز بیت ها سرعت ریست میکروکنترلر را مشخص می کنند. که طبق جدولی که قبلاً ارائه شده برنامه ریزی می شوند.

                      فیوز بیت های BODEN و BODLEVEL:
                      فیوز بیتBODEN قابلیت Detection Brown –out آی سی را فعال می کند. این قابلیت بدین صورت است که اگر ولتاژ تغذیه آی سی از حدی پایین تر آید، میکروReset می شود. این ولتاژاز طریق فیوز بیت BODLEVEL تعیین می شود.


                      فیوز بیت BOOTRST :
                      این فیوز بیت در صورت برنامه ریزی شدن آدرس بردار Reset را به ابتدای حافظه Boot انتقال می دهد.

                      فیوز بیت های BOOTSZ0 و BOOTSZ1:
                      این فیوز بیتها برای تعیین اندازه و مکان شروع حافظه Boot بکار می روند که طبق جدول زیر تعیین می شود.



                      فیوز بیت EESAVE:
                      اگر این فیوز بیت برنامه ریزی شود در هنگام Erase کردن، فقط حافظه Flash پاک می شود و حافظه EEPROM آن ثابت باقی می ماند.

                      فیوز بیت CKOPT:
                      با برنامه ریزی کردن این فیوز بیت، خازنهای داخلی میکرو با مقدار 36pf فعال می شوند و دیگر نیازی به استفاده از خازنهای خارجی در روی کریستال نیست. همچنین با فعال کردن این فیوز بیت دامنه ولتاژ اسیلاتور چندین برابر می شود.

                      فیوز بیت JTAGEN :
                      اگر از رابط JTAG برای پروگرم کردن استفاده می کنید باید این فیوز بیت فعال شود. دقت داشته باشید که اگر این فیوز بیت فعال شده باشد دیگر قادر به استفاده از پورتی که بیت های JTAG برروی آن می باشد (مثلاً پورت C در ATmega16 ) نیستیم. به طور پیش فرض این فیوز بیت فعال می باشد و برای استفاده از پورت F باید این فیوز بیت را غیرفعال کنیم.

                      فیوز بیت SPIEN:
                      اگر این فیوز بیت فعال باشد میکرو قابلیت اتصال پروگرمرهایی که با رابط SPI کار میکنند (به طور مثال پروگرمر STK200 ) را پیدا میکند.( در نرم افزار code vision و بسکام این فیوز بیت در اختیار کاربران قرار نمیگیرد)

                      فیوز بیت OCDEN :
                      اگر این فیوز بیت فعال شود میکرو قابلیت debug شدن را پیدا می کند.

                      فیوز بیت WDTON:
                      اکثر میکروکنترلرهای AVR دارای شمارنده Watchdog هستند که می توان آنها را به صورت نرم افزاری فعال یا غیر فعال کرد. اگر این فیوز بیت فعال شود شمارنده watchdog دائماً روشن خواهد بود.(شمارنده watchdog به منظوری برای کم کردن تاثیر نویز استفاده میشود. بدین صورت که با هر بار سر ریز شدن این شمارنده میکرو یکبار ریست میشود.)

                      فیوز بیت M103C:
                      میکروکنترلرهایmega128 و mega103 شباهت های خیلی خیلی زیادی دارند ولی دارای اختلافات کوچکی نیز هستند که ما می توانیم با فعال کردن این فیوز بیت ، اختلافات موجود را نیز بر طرف کنیم تا این دو میکرو دقیقاً مانند هم کار کنند.

                      دیدگاه


                        #12
                        پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                        سلام دوستان

                        بچه ها من به جز برنامه ی بسکام از چه برنامه ای میتونم برای دستکاری فیوز بیتا استفاده کنم؟ با STK200/300 کار میکنم ...
                        Reveng will surely come... Your hard time are ahead
                        // - - - - - - - - - -
                        برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                        // - - - - - - - - - -
                        اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                        // - - - - - - - - - -

                        دیدگاه


                          #13
                          پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                          سلام دوستان

                          بچه ها من به جز برنامه ی بسکام از چه برنامه ای میتونم برای دستکاری فیوز بیتا استفاده کنم؟ با STK200/300 کار میکنم ...
                          Reveng will surely come... Your hard time are ahead
                          // - - - - - - - - - -
                          برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                          // - - - - - - - - - -
                          اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                          // - - - - - - - - - -

                          دیدگاه


                            #14
                            پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                            code vision :biggrin:

                            دیدگاه


                              #15
                              پاسخ : بحث راجع به فیوز بیتهای میکروکنترلر AVR

                              سلام به دوستان عزیز
                              برای قفل کردن میکرو باید چیکار کنیم؟باید کدوم فیوز بیت فعال یا غیرفعال بشه؟ :biggrin:
                              ممنون :applause:

                              دیدگاه

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