اطلاعیه

Collapse
No announcement yet.

آزمایش eeprom و نتیجه عجیب !

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

    #16
    پاسخ : آزمایش eeprom و نتیجه عجیب !

    چی شد ؟ کسی آزمایش نکرد ؟

    دیدگاه


      #17
      پاسخ : آزمایش eeprom و نتیجه عجیب !

      اینکه پشت هم روی یه قسمت از حافظه نوشته بشه و بخونه چیز مهمی نیست و شما اعداد خیلی بیشتری هم باید بدست بیارین.
      به عنوان کسی که از همین بخش eeprom خیلی اذیت شدم باید بگم تو استفاده عملی این مقدار حتی به 1000 بار هم نمیرسه. به عنوان نمونه ما یه پروژه تولید انبوه داشتیم که توش یه اشتباهی کردیم و به جای حافظه ایپرام خارجی از ایپرام میکروکنترلر استفاده کردیم که وظیفش ذخیره آخرین وضعیت برنامه بود. بعد از یک مدتی تماما دستگاه ها هنگ کردن. هر روشی رو تست کردیم ولی جواب نداد تا اینکه کلا طی یک روندی با ایپرام داخلی دوباره نویسی کردیم و اگر حتی کد خطا میداد باز یه برنامه پیش فرض رو اجرا میکرد.
      خلاصه اینکه دیتای ایپرام میکروکنترلر بعد از یک مدتی دیگه درست نیست. این موضوع وقتی نوسانات ولتاژ زیاد باشه خیلی بیشتر رخ میده و واقعا اذیت کننده میشه. البته عمر حافظه تا همون حدود که شرکت گفته درسته ولی بعد از یک مدتی دیتا تغییر میکنه!به قول یکی از دوستان تست شما وقتی درست هست که اولا ولتاژ میکروکنترلر قطع و وصل بشه دوما به مانند یه محیط واقعی روش نویز باشه.
      در کل به عنوان یه پیشنهاد دوستانه به هیچ وجه از ایپرام داخلی استفاده نکنین که بیش از اندازه حساس هست و واقعا پروژه رو تا مرز شکست پیش میبره!پیشنهاد مناسب آی سی های حافظه سری 24XX هستن.
      Aristar Group - Always And Forever

      دیدگاه


        #18
        پاسخ : آزمایش eeprom و نتیجه عجیب !

        گارانتی 100,000 بار نوشتن و خواندن در EEPROM داخلی AVR برای هر بیت و هر بایت بصورت جداگانه صادق است
        یعنی اگر EEPROM شما 512 بایت یا 4096 بیت باشد می توانید هر بایت یا بیت را جداگانه 100,000 بار 0 و 1 کنید
        مثلاً عدد 0b11111110 در اولین آدرس از حافظه EEPROM فقط بیت صفر آن را تحت تاثیر قرار می دهد نه سایر بیت ها را
        برای تست یک بایت هم باید بصورت متوالی اعداد 0b10101010 و 0b01010101 را در یک بایت از حافظه EEPROM بنویسید و بخواهید
        تا همه بیت های آن بایت تحت تاثیر باشند ، اگر عدد خوانده شده با عدد نوشته شده برابر بود متغییر کانتر را یک واحد افزایش دهید و دفعات را بشمارید
        بایت مورد نظر هم باید در حافظه EEPROM تعریف شود مثلاً در کدویژن بصورت eeprom unsigned char test_byte
        در مورد تغییرات ولتاژ هم سوپروایزر ولتاژ داخلی AVR یا همان BROWNOUT برای همین در نظر گرفته شده است
        با استفاده از تغذیه 5 ولت و تنظیم BROWNOUT در 4 ولت استفاده از EEPROM داخلی امن تر است
        لینک زیر هم نتیجه یک تست است که بعد از 47 روز 1,230,163 بار در EEPROM داخلی یک ATmega328 نوشته و خوانده شده است
        http://hackaday.com/2011/05/16/destr...rduinos-eeprom

        دیدگاه


          #19
          پاسخ : آزمایش eeprom و نتیجه عجیب !

          سلام
          توی دیتاشیت نوشته write/erase cycle
          منظور از erase چیه؟

          فکر کنم منظورم رو همه میفهمن دیگه .....
          ولی شرکت مسلما بدون دلیل مطلبی رو نمینویسه!

          دیدگاه


            #20
            پاسخ : آزمایش eeprom و نتیجه عجیب !

            نوشتن 1 در بیتی که وضعیت قبلی آن 0 است به منزله Erase کردن آن بیت است

            دیدگاه


              #21
              پاسخ : آزمایش eeprom و نتیجه عجیب !

              نوشته اصلی توسط aie_saber
              گارانتی 100,000 بار نوشتن و خواندن در EEPROM داخلی AVR برای هر بیت و هر بایت بصورت جداگانه صادق است
              یعنی اگر EEPROM شما 512 بایت یا 4096 بیت باشد می توانید هر بایت یا بیت را جداگانه 100,000 بار 0 و 1 کنید
              مثلاً عدد 0b11111110 در اولین آدرس از حافظه EEPROM فقط بیت صفر آن را تحت تاثیر قرار می دهد نه سایر بیت ها را
              برای تست یک بایت هم باید بصورت متوالی اعداد 0b10101010 و 0b01010101 را در یک بایت از حافظه EEPROM بنویسید و بخواهید
              تا همه بیت های آن بایت تحت تاثیر باشند ، اگر عدد خوانده شده با عدد نوشته شده برابر بود متغییر کانتر را یک واحد افزایش دهید و دفعات را بشمارید
              بایت مورد نظر هم باید در حافظه EEPROM تعریف شود مثلاً در کدویژن بصورت eeprom unsigned char test_byte
              در مورد تغییرات ولتاژ هم سوپروایزر ولتاژ داخلی AVR یا همان BROWNOUT برای همین در نظر گرفته شده است
              با استفاده از تغذیه 5 ولت و تنظیم BROWNOUT در 4 ولت استفاده از EEPROM داخلی امن تر است
              لینک زیر هم نتیجه یک تست است که بعد از 47 روز 1,230,163 بار در EEPROM داخلی یک ATmega328 نوشته و خوانده شده است
              http://hackaday.com/2011/05/16/destr...rduinos-eeprom
              حتی در مورد همین پروژه هم بحثی در مورد روشن و خاموش شدن میکروکنترلر گفته نشده و صرفا به مانند دوستمون عمل کرده!من خودم این مشکل رو داشتم و با ست کردن حتی فیوز بیت Brown-Out هم درست نشد.تجربه شخصی بود و توصیه میکنم با هزار تومن هزینه بیشتر اینجور دردسرها رو از خودتون دور کنید.
              Aristar Group - Always And Forever

              دیدگاه


                #22
                پاسخ : آزمایش eeprom و نتیجه عجیب !

                نوشته اصلی توسط حسین جباری
                حتی در مورد همین پروژه هم بحثی در مورد روشن و خاموش شدن میکروکنترلر گفته نشده و صرفا به مانند دوستمون عمل کرده!من خودم این مشکل رو داشتم و با ست کردن حتی فیوز بیت Brown-Out هم درست نشد.تجربه شخصی بود و توصیه میکنم با هزار تومن هزینه بیشتر اینجور دردسرها رو از خودتون دور کنید.
                ما هم در چندین پروژه تولید انبوه از EEPROM داخلی استفاده کرده ایم مشکلی نبوده است
                نوع SMD میکروکنترلرهای ATMEGA16A و ATMEGA32A رویژن Q و I و نوع DIP میکروکنترلر ATMEGA8A رویژن N
                ببینید دوست عزیز شرکتی به بزرگی ATMEL و امثالهم که میلیاردها دلار پول و سرمایه پشت تحقیق و توسعه و تولید خود دارند و بازار جهانی دست آنها است
                نه بیکار هستند نه دغل باز نه کلاهبردار که مثلاً یک امکان با مشخصات اعلامی در دیتاشیت محصولشان ایجاد کنند و آن امکان مثلاً کار نکند
                البته همیشه محصول خروجی شان بررسی و تست و پدیت شده و ایرادات قبلی در نمونه های جدیدتر بر طرف می شود
                و صد البته تمامی این ایرادات و راهکارهای مقابله با آن ها در Errata Sheet قطعه هم ذکر می شود و چیزی پنهان نمی ماند
                ما باید همیشه از آخرین رویژن محصول ارائه شده و همچنین از خود تولید کننده اصلی محصول یا نمایندگی رسمی آن اقدام به خرید قطعه کنیم
                و تمامی ملاحضات سخت افزاری و نرم افزاری لازم را که تولید کننده اعلام کرده در طراحی و تولید بکار بگیریم
                اگر خلاف این باشد دیگر سنگ روی سنگ بند نمی شود و اصلاً نمی شود کار کرد و ATMEL و امثالهم هم باید جمع کنند بروند
                اگر ما قطعه ای را تهیه می کنیم که قدیمی است یا قطعه ای را تهیه می کنیم که اصلاً مشخص نیست کجا و توسط چه کارخانه ای تولید شده است
                یا شرایط استفاده و طرز استفاده صحیح و اصول طراحی استاندارد از لحاظ سخت افزاری و نرم افزاری را رعایت نمی کنیم و ده ها نکته دیگر
                اشکال از قطعه بدبخت و تولید کننده بدبخت تر آن نیست ، اگر قرار نبود از EEPROM داخلی AVR ها استفاده شود ATMEL اصلاً EEPROM داخلی نمی گذاشت
                این مساله برای تمامی قطعات صادق است ، قطعه الکترونیکی با مشخصات اعلامی در دیتاشیت تولید کننده باید از خود تولید کننده یا نمایندگی فروش رسمی تهیه شود نه از آشفته بازار !

                دیدگاه


                  #23
                  پاسخ : آزمایش eeprom و نتیجه عجیب !

                  بهرحال تجربه شخصی خودمون رو گفتم و اصلا روی چیزای دیگه کار ندارم.البته یک نفر دیگه هم برای کرکره برقی هم از همین موضوع استفاده کرده بود و همین مشکل رو داشت. شاید به قول شما، میکروکنترلرهای ما مشکل داشته!ولی با توجه به اینکه شما به هیچ وجه نمیتونین روی اریجینال بودن یه آی سی اطمینان کنین پس عقل حکم میکنه از دردسر خودتون رو دور کنین.در ضمن محض یادآوری ما از خیلی از میکروکنترلرها از فروشنده های مختلف(شامل فروشگاه سایت) خرید کردیم و حتی مستقیم از چین آورده بودیم و تست کردیم و کماکان مشکل بود. روی بعضی سری زود مشکل بروز میکرد و روی بعضی دیرتر ولی بهرحال مشکل بود.در نهایت من تجربه شخصی رو گفتم و اصلا روی این موضوع تعصبی ندارم و یقینا با اتمل پدرکشتگی ندارم و از محصولاتش استفاده میکنم و خلاصه اینکه صلاح ملک خویش خسروان دانند.
                  Aristar Group - Always And Forever

                  دیدگاه


                    #24
                    پاسخ : آزمایش eeprom و نتیجه عجیب !

                    نوشته اصلی توسط حسین جباری
                    بهرحال تجربه شخصی خودمون رو گفتم و اصلا روی چیزای دیگه کار ندارم.البته یک نفر دیگه هم برای کرکره برقی هم از همین موضوع استفاده کرده بود و همین مشکل رو داشت. شاید به قول شما، میکروکنترلرهای ما مشکل داشته!ولی با توجه به اینکه شما به هیچ وجه نمیتونین روی اریجینال بودن یه آی سی اطمینان کنین پس عقل حکم میکنه از دردسر خودتون رو دور کنین.در ضمن محض یادآوری ما از خیلی از میکروکنترلرها از فروشنده های مختلف(شامل فروشگاه سایت) خرید کردیم و حتی مستقیم از چین آورده بودیم و تست کردیم و کماکان مشکل بود. روی بعضی سری زود مشکل بروز میکرد و روی بعضی دیرتر ولی بهرحال مشکل بود.در نهایت من تجربه شخصی رو گفتم و اصلا روی این موضوع تعصبی ندارم و یقینا با اتمل پدرکشتگی ندارم و از محصولاتش استفاده میکنم و خلاصه اینکه صلاح ملک خویش خسروان دانند.
                    این اتفاق پیش می آید و در همین فروم و جاهای دیگر هم بحث شده .
                    مشکل هم حساسیت EEPROM به سطح ولتاژ است .
                    http://electronics.stackexchange.com...for-atmega328p
                    http://www.avrfreaks.net/forum/inter...e-else-had-any
                    http://www.avrfreaks.net/forum/eeprom-data-corruption-1
                    برای پیشگیری از این اتفاق هم گفته که چه باید کرد .
                    BROWN OUT DETECTION فعال باشد
                    در زمان استفاده از EEPROM اینتراپ غیر فعال شود .
                    بالا بردن زمان START UP (اگر ولتاژ خوبی تو استارت نداری)
                    http://atmel.force.com/support/artic...ROM-corruption
                    http://www.atmel.com/webdoc/AVRLibcR...orruption.html
                    از جمله ی رفتگان این راه دراز
                    باز آمده ای کو که به ما گوید راز
                    هان بر سر این دو راهه از روی نیاز
                    چیزی نگذاری که نمی آیی باز

                    دیدگاه

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