اطلاعیه

Collapse
No announcement yet.

فرق حافظه epromو flash در چیست؟

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

    فرق حافظه epromو flash در چیست؟

    سلا دوستان
    من تو کتاب avr از صفر تا بینهایت خوندم که حافظه flash با قطع منبع تغذیه از بین میره اما حافظه eprom هست که دائمیه
    بعد من تو avr studio حافظه eprom رو پروگرام کردم (یه برنامه خیلی ساده (روشن خاموش شدن led)) بعد مدارشو بستم اصلا کار نمیکرد
    ولی بعد از اینکه حافظه flash رو پروگرام کردم کار کرد
    ولی خوب تو اون کتاب avr از صفر تا بینهایت برعکس اینو نوشته بود
    الان گیج شدم من!!!!
    لطفا در این باره توضیح دهید

    #2
    پاسخ : فرق حافظه epromو flash در چیست؟

    نوشته اصلی توسط rezabagheri
    سلا دوستان
    من تو کتاب avr از صفر تا بینهایت خوندم که حافظه flash با قطع منبع تغذیه از بین میره اما حافظه eprom هست که دائمیه
    بعد من تو avr studio حافظه eprom رو پروگرام کردم (یه برنامه خیلی ساده (روشن خاموش شدن led)) بعد مدارشو بستم اصلا کار نمیکرد
    ولی بعد از اینکه حافظه flash رو پروگرام کردم کار کرد
    ولی خوب تو اون کتاب avr از صفر تا بینهایت برعکس اینو نوشته بود
    الان گیج شدم من!!!!
    لطفا در این باره توضیح دهید
    سلام
    تا اونجایی که من اطلاع دارم هم حافظه flash و هم حافظه eprom باقطع منبع تغذیه پاک نمیشن اون حافظه ای که باقطع برق پاک میشه sram نام داره که در واقع مقادیر متغیر هایی رو که توی برنامه تعریف می کنی توی خودش نگه میداره
    حافظه ی eprom یه نوع حافظه هست که مثل sram ه ولی با قطع برق اطلاعاتش پاک نمیشه و یه نمونه کاربرد که میشه براش مثال زد اینه که میکرو دما رو از محیط میخونه و روی eprom ذخیره می کنه اینجوری با قطع برق این حافظه خالی نمیشه و میشه از توی برنامه به راحتی بهش دسترسی پیدا کرد.
    حافظه ی flash حافظه ای هست که برنامه ای که نوشتیم رو توی خودش نگه میداره و دسترسی از توی برنامه بهش تقریبا غیر ممکنه
    اگه سوالی داشتی من در خدمتم
    با تشکر از اساتید محترم اگه چیزی رو اشتباه گفتم لطفا راهنمایی بفرمایید

    دیدگاه


      #3
      پاسخ : فرق حافظه epromو flash در چیست؟

      پس خلاصه ما باید برنامه رو توی flash بریزیم یا eprom ؟
      این جمله تون یعنی چی؟


      حافظه ی flash حافظه ای هست که برنامه ای که نوشتیم رو توی خودش نگه میداره و دسترسی از توی برنامه بهش تقریبا غیر ممکنه


      یه سواله دیگه هم داشتام
      مفهوم فیوز بیت چیه؟
      اصلا به چه دردی می خوره؟

      دیدگاه


        #4
        پاسخ : فرق حافظه epromو flash در چیست؟

        نوشته اصلی توسط rezabagheri
        پس خلاصه ما باید برنامه رو توی flash بریزیم یا eprom ؟
        این جمله تون یعنی چی؟


        حافظه ی flash حافظه ای هست که برنامه ای که نوشتیم رو توی خودش نگه میداره و دسترسی از توی برنامه بهش تقریبا غیر ممکنه


        یه سواله دیگه هم داشتام
        مفهوم فیوز بیت چیه؟
        اصلا به چه دردی می خوره؟
        ما باید برنامه رو توی حافظه flash بریزیم
        یعنی برنامه نوشته شده توسط ما یا همون فایل Hex توی حافظه فلش ذخیره میشه و برای تغییر دادنش معمولا نیاز به پروگرامر داریم
        ما مقادیر حافظه eprom رو با چند تا دستور میتونیم تغییر بدیم

        فیوز بیت ها یه قسمتی از حافظه flash هستن که بعضی از تنظیمات میکرو رو میشه با تغییر دادن اونا انجام داد
        برای مثال با فیوز بیت ها میشه منبع تامین کلاک میکرو رو تعیین کردن
        یا فعل و غیر فعال کردن پایه reset رو انجام داد
        و...

        البته شدیدا توصیه می کنم تا زمانی که به فیوز بیت ها شناخت کامل پیدا نکردی بهشون دست نزنی چون بعضی از تغییرات ، میکرو رو غیر قابل پروگرام می کنن و غیر قابل برگشت هستن
        البته با پروگرامر های universal و ... میشه یه کارایی کرد که قیمت این پروگرامر ها بسیار زیاده.

        دیدگاه


          #5
          پاسخ : فرق حافظه epromو flash در چیست؟

          RAM ها در واقع از لچ ها درست میشن و با قطع برق اطلاعاتشون از بین میره
          در مقابل اونها ROM ها هستند که توسط فیوزهای الکترونیکی اطلاعات رو ذخیره میکنن. با توجه به اینکه سوئیچها (یا همون فیوزها) حالت اکتریکی خودشون رو حتی در غیاب جریان الکتریکی حفظ میکنند بنابراین اطلاعاتشون با قطع برق از بین نمیره ولی برای خوندنشون وجود جریان الکتریکی لازمه (یعنی باید روشن بشن)
          ROM ها در زمان تولید برنامه ریزی میشن و عملا حافظه های فقط خواندنی هستند(Read Only Memory)
          برای رفع نقص ROM ها PROM ها بوجود اومدند . این ROM ها در واقع حافظه های خامی بودند که میشد یکبار اونها رو پروگرم کرد (Programable ROM)
          در ادامه پیشرفت تکنولوژی PROM هایی بوجود اومدند که بعد از پروگرم کردن میشد اونها رو توسط نور ماورابنفش پاک و دوباره برنامه ریزی کرد . به این محصولات جدید EPROM یا Erasable PROM میگفتند
          بخاطر اینکه EPROM ها برای پاک شدن نیاز به یک دستگاه جانبی (که یه لامپ مهتابی داخلش بود) داشتند EPROM هایی تولید شده که توسط اعمال جریان الکتریکی پاک میشدند به این قطعات Electrical Erasable PROM یا همون EEPROM یا E2PROM میگفتن. ولتاژ پاک کردن و پروگرم کردن در این قطعات در ابتدا کمی بیشتر از ولتاژ تغذیه بود مثلا تغذیه 5 ولتی با ولتاژ برنامه ریزی 12 ولت
          بعدها قطعاتی تولید شدند که ولتاژ برنامه ریزیشون هم همون ولتاژ تغذیه بود (که به اینها هم همون EEPROM ) میگفتند
          و در نهایت Flash ها تولید شدند که از نظر عملکردی تنها تفاوتشون با EEPROM سرعت بالای خواندن اونها بود و از این قطعات در حافظه های کد میکرو ها که نیاز به سرعت بالاتری داشتند استفاده میشد. از طرفی حافظه های flash امکان تولید در اندازه های بزرگتر رو هم دارند

          دیدگاه


            #6
            پاسخ : فرق حافظه epromو flash در چیست؟

            در لینک زیر به تفاوت های eeprom و flash اشاره شده است:

            http://www.renesas.com/support/faqs/...tech_064gl.jsp
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #7
              پاسخ : فرق حافظه epromو flash در چیست؟

              از تمامی دوستان متشکرم من جوابم رو گرفتم :nice: :nice:

              دیدگاه


                #8
                پاسخ : فرق حافظه epromو flash در چیست؟

                سلام
                من یک برنامه مینویسم که توش نیازه بعد از خاموش شدن میکرو مقدار یک متغییر حفظ شود(برای این کار متغییر را با eprom تعریف کرده ام) و بعد از روشن شدن ار این مقدار استفاده شود از طرفی هم باید برای اجرای اولین بار برنامه یک مقدار اولیه به این متغییر بدهم(فقط اولین بار قبل از خاموش شدن میکرو)
                بعد از روشن شدن میکرو آن مقدار اولیه که در نظر گرفته شده بوددر این متغییر قرار می گیرد و آن مقداری که قبل از خاموش شدن ذخیره شده بود پاک می شود
                می خواستم بپرسم چه کار کنم که این مشکل پیش نیایید و بعد از روشن شدن میکرو مقدار قبل از خاموش شدن متغییر در برنامه وارد شود و نه مقدار اولیه ای که به متغییر داده ام(لظفا با codevision جواب بدید)

                دیدگاه


                  #9
                  پاسخ : فرق حافظه epromو flash در چیست؟

                  سلام
                  من یک برنامه مینویسم که توش نیازه بعد از خاموش شدن میکرو مقدار یک متغییر حفظ شود(برای این کار متغییر را با eprom تعریف کرده ام) و بعد از روشن شدن ار این مقدار استفاده شود از طرفی هم باید برای اجرای اولین بار برنامه یک مقدار اولیه به این متغییر بدهم(فقط اولین بار قبل از خاموش شدن میکرو)
                  بعد از روشن شدن میکرو آن مقدار اولیه که در نظر گرفته شده بوددر این متغییر قرار می گیرد و آن مقداری که قبل از خاموش شدن ذخیره شده بود پاک می شود
                  می خواستم بپرسم چه کار کنم که این مشکل پیش نیایید و بعد از روشن شدن میکرو مقدار قبل از خاموش شدن متغییر در برنامه وارد شود و نه مقدار اولیه ای که به متغییر داده ام(لظفا با codevision جواب بدید)

                  دیدگاه


                    #10
                    پاسخ : فرق حافظه epromو flash در چیست؟

                    ساده ترین راه :
                    خب اون مقدار دهی اول رو از main بردار و دوباره میکرو رو پروگرم کن (نمیدونم منظورتو درست متوجه شدم یا نه!)

                    دیدگاه


                      #11
                      پاسخ : فرق حافظه epromو flash در چیست؟

                      نوشته اصلی توسط mojalan
                      ساده ترین راه :
                      خب اون مقدار دهی اول رو از main بردار و دوباره میکرو رو پروگرم کن (نمیدونم منظورتو درست متوجه شدم یا نه!)
                      آخه برای اینکه برنامم اجرا بشه باید این متغییر یک مقدار اولیه داشته باشد این مقدار اولیه رو هم خارج از main تعریف می کنم بعد از اجرای برنامه این متغییر مقادیر مختلفی پیدا می کنه من می خوام آخرین مقدار قبل از خاموش شدن رو ذخیره کنم برای همین متغییر رو با eprom تعریف کردم اما بعد خاموش شدن میکرو و روشن کردن آن مقداری که در این متغییر است همان مقدار اولیه است نه مقدار قبل از خاموش شدن

                      دیدگاه


                        #12
                        پاسخ : فرق حافظه epromو flash در چیست؟

                        فرق حافظه ی EEPROM با Flash این است که از فلش اطلاعات بلوک به بلوک (یا سکتور به سکتور یا صفحه به صفحه) خوانده می شود ولی در EEPROM اطلاعات به صورت بایتی خوانده می شود. AVR همیشه برنامه را از حافظه ی Flash می خواند و متغیر هایی را که لازم است تا با قطع برق مقدارشان پاک نشود را بجای RAM در EEPROM ذخیره می کند
                        { خلاف قوانین - پاک شد }
                        برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                        آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                        آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                        دیدگاه


                          #13
                          پاسخ : فرق حافظه epromو flash در چیست؟

                          نوشته اصلی توسط hamid1991reza
                          سلام
                          من یک برنامه مینویسم که توش نیازه بعد از خاموش شدن میکرو مقدار یک متغییر حفظ شود(برای این کار متغییر را با eprom تعریف کرده ام) و بعد از روشن شدن ار این مقدار استفاده شود از طرفی هم باید برای اجرای اولین بار برنامه یک مقدار اولیه به این متغییر بدهم(فقط اولین بار قبل از خاموش شدن میکرو)
                          بعد از روشن شدن میکرو آن مقدار اولیه که در نظر گرفته شده بوددر این متغییر قرار می گیرد و آن مقداری که قبل از خاموش شدن ذخیره شده بود پاک می شود
                          می خواستم بپرسم چه کار کنم که این مشکل پیش نیایید و بعد از روشن شدن میکرو مقدار قبل از خاموش شدن متغییر در برنامه وارد شود و نه مقدار اولیه ای که به متغییر داده ام(لظفا با codevision جواب بدید)
                          تا اونجایی که من متوجه شدم شما می خواین فقط یه بار یه مقداری رو به حافظه بدین و از اون به بعد مقدار قبل از خاموش شدن ذخیره بشه
                          برای این کار یه برنامه بنویسی که فقط اون مقدار اولیه رو توی حافظه بنویسیه بعد این برنامه رو یه بار توی میکرو اجرا کنین بعد برنامه اصلی رو روی میکرو بریزین و استفاده کنین فقط یه نکته بگم : فیوز بیت هارو یه جوری تنظیم کنین که موقع پروگرام کردن حافظه eeprom خالی نشه

                          دیدگاه


                            #14
                            پاسخ : فرق حافظه epromو flash در چیست؟

                            نوشته اصلی توسط farid.hosseinzadeh
                            تا اونجایی که من متوجه شدم شما می خواین فقط یه بار یه مقداری رو به حافظه بدین و از اون به بعد مقدار قبل از خاموش شدن ذخیره بشه
                            برای این کار یه برنامه بنویسی که فقط اون مقدار اولیه رو توی حافظه بنویسیه بعد این برنامه رو یه بار توی میکرو اجرا کنین بعد برنامه اصلی رو روی میکرو بریزین و استفاده کنین فقط یه نکته بگم : فیوز بیت هارو یه جوری تنظیم کنین که موقع پروگرام کردن حافظه eeprom خالی نشه
                            یعنی دقیقا باید فیوزبیت ها را چگونه قرار دهم؟؟؟؟؟؟؟؟؟؟؟

                            دیدگاه


                              #15
                              پاسخ : فرق حافظه epromو flash در چیست؟

                              نوشته اصلی توسط hamid1991reza
                              یعنی دقیقا باید فیوزبیت ها را چگونه قرار دهم؟؟؟؟؟؟؟؟؟؟؟
                              فیوز EESAVE رو صفر کنید اینجوری با پروگرام کردن eeprom خالی نمیشه

                              دیدگاه

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