اطلاعیه

Collapse
No announcement yet.

سوزاندن یک قسمت از حافظه eeprom

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

    سوزاندن یک قسمت از حافظه eeprom

    سلام
    هگز یه برنامه دارم که توی آدرس مشخصی از eeprom دیتا میریزه 100 بار که کار کرداز کار میافته دوباره باید پروگرام کرد
    حالا من توی همون قسمت حافظه 2 روز دیتا ریختم و خوندم که از کار بیافته . ولی مثل روز اول کار میده و دیتا ذخیره میکنه
    توی دیتاشیت ظاهرا نوشته 100 هزار بار ولی من بالای 10 میلیون بار دیتا ریختم و خوندم . مشکل از کجاست ؟؟؟ نکنه هر بار که ریختم باید تغذیه قطع و وصل کنم ؟؟؟

    #2
    پاسخ : سوزاندن یک قسمت از حافظه eeprom

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

    دیدگاه


      #3
      پاسخ : سوزاندن یک قسمت از حافظه eeprom

      نوشته اصلی توسط sepehr63 نمایش پست ها
      هگز یه برنامه دارم که توی آدرس مشخصی از eeprom دیتا میریزه 100 بار که کار کرداز کار میافته دوباره باید پروگرام کرد
      با سلام و احترام
      اون برنامه در ساده ترین حالت ممکن یه عددی مثل همون عدد 100 رو که گفتید در خانه ایی از حافظه میریزه و بعد هر دفعه موقع اجرا اون خونه حافظه را میخونه و تا زمانی که عدد بزرگتر از 0 هست در ابتدای هر اجرا، یکی از اون عدد کم میکنه و مجددا در اون خونه حافظه مینویسه. و وقتی هم که عدد صفر شد دیگه برنامه رو اجرا نمیکنه و میاد بیرون. به همین سادگی! دلیل کار نکردن اون برنامه این نیست که بلای سخت افزاری خاصی سر اون خونه حافظه میاره!
      موفق باشید.

      دیدگاه


        #4
        پاسخ : سوزاندن یک قسمت از حافظه eeprom

        نوشته اصلی توسط evergreen نمایش پست ها
        با سلام و احترام
        اون برنامه در ساده ترین حالت ممکن یه عددی مثل همون عدد 100 رو که گفتید در خانه ایی از حافظه میریزه و بعد هر دفعه موقع اجرا اون خونه حافظه را میخونه و تا زمانی که عدد بزرگتر از 0 هست در ابتدای هر اجرا، یکی از اون عدد کم میکنه و مجددا در اون خونه حافظه مینویسه. و وقتی هم که عدد صفر شد دیگه برنامه رو اجرا نمیکنه و میاد بیرون. به همین سادگی! دلیل کار نکردن اون برنامه این نیست که بلای سخت افزاری خاصی سر اون خونه حافظه میاره!
        موفق باشید.
        دو روز پشت سر هم دیتا رایت و رید کردم . باز 1 هفته دیگه میزارم
        فرم برنامه اینه که توی حالت اول عدد EEPROM 0XFF هست . اینجور که متوجه شدم چک میکنه اگه بشتر از مثلا 100 بود عدد 0 میکنه و با هر بار روشن شدن مدار یکی به اون اظاف میکنه تا وقتی عدد دقیقا مساوی 100 بشه اون موقع دیگه اظافه نمیکنه و توی اون حلقه گیر میکنه

        دیدگاه


          #5
          پاسخ : سوزاندن یک قسمت از حافظه eeprom

          نوشته اصلی توسط sepehr63 نمایش پست ها
          دو روز پشت سر هم دیتا رایت و رید کردم . باز 1 هفته دیگه میزارم
          فرم برنامه اینه که توی حالت اول عدد EEPROM 0XFF هست . اینجور که متوجه شدم چک میکنه اگه بشتر از مثلا 100 بود عدد 0 میکنه و با هر بار روشن شدن مدار یکی به اون اظاف میکنه تا وقتی عدد دقیقا مساوی 100 بشه اون موقع دیگه اظافه نمیکنه و توی اون حلقه گیر میکنه
          با سلام مجدد
          در عملکرد کلی فرق خاصی نداره که شما از صفر شروع کنید و هر بار مقدار را اضافه کنید تا به 100 برسید و یا از 100 شروع کنید و هر بار مقدار را کم کنید تا به صفر برسید.
          موفق باشید.

          دیدگاه


            #6
            پاسخ : سوزاندن یک قسمت از حافظه eeprom

            1-شروع بخوان حافظه اول را
            2- اگر 255 (ّّXFF) بود بنویس در حافظه 00 یک حافظه eeprom بایت و بصورت خام همشون اخرین 11111111 هستند یعنی 255 یا ff
            3-حافظه اول را بخوان
            4-اگر حافظه اول کوچکتر از 100 (x64) بود یکی به تعداد استفاده اضافه کن ... متغییر محلی مثلا use
            5- اگر تعداد استفاده بیشتر از 100 بود برو به مجموعه اخطار ....همان اخطار اتمام استفاده و از کار افتادن کلی البته ممکنه در حافظه دیگری نیز عدد 0 را یک کنند !
            6 -اگر تعداد استفاده کمتر (use) از 101 بود تعداد استفاده را بنویس در حافظه اول eeprrom
            کدهای بالا در استارت میکرو قبل از ورود به حلقه اصلی برنامه یکبار با هر روشن شدن یا هر ریست انجام میشه این الگوریتم ها را دمو می گویند بطور مثال همچین کدی برای فلزیاب فلزجو نوشته شده شما برای دور زدن این روال نیازی نیست اون حافظه را بسوانی باید داخل هگز قسمتی که دستور اضافه کردن به حافظه را داره پیدا از کار بندازیش اینجوری یکسره میشه همان بلایی که سر فلزجو اومد این اواخر یکسرش کردن مثلا خط 4 یا 5 یا 6 جامپ بخوره یا حذف بشه این عملکرد از کار می افته

            دیدگاه


              #7
              پاسخ : سوزاندن یک قسمت از حافظه eeprom

              نوشته اصلی توسط saeidssm نمایش پست ها
              1-شروع بخوان حافظه اول را
              2- اگر 255 (ّّXFF) بود بنویس در حافظه 00 یک حافظه eeprom بایت و بصورت خام همشون اخرین 11111111 هستند یعنی 255 یا ff
              3-حافظه اول را بخوان
              4-اگر حافظه اول کوچکتر از 100 (x64) بود یکی به تعداد استفاده اضافه کن ... متغییر محلی مثلا use
              5- اگر تعداد استفاده بیشتر از 100 بود برو به مجموعه اخطار ....همان اخطار اتمام استفاده و از کار افتادن کلی البته ممکنه در حافظه دیگری نیز عدد 0 را یک کنند !
              6 -اگر تعداد استفاده کمتر (use) از 101 بود تعداد استفاده را بنویس در حافظه اول eeprrom
              کدهای بالا در استارت میکرو قبل از ورود به حلقه اصلی برنامه یکبار با هر روشن شدن یا هر ریست انجام میشه این الگوریتم ها را دمو می گویند بطور مثال همچین کدی برای فلزیاب فلزجو نوشته شده شما برای دور زدن این روال نیازی نیست اون حافظه را بسوانی باید داخل هگز قسمتی که دستور اضافه کردن به حافظه را داره پیدا از کار بندازیش اینجوری یکسره میشه همان بلایی که سر فلزجو اومد این اواخر یکسرش کردن مثلا خط 4 یا 5 یا 6 جامپ بخوره یا حذف بشه این عملکرد از کار می افته
              روال کار خودم میدونم توی پروتئوس حافظه ایپرام دیدم به خاطر همین میخواستم انقدر توی اون قسمت از حافظه read و رایت کنم تا خراب بشه بعد اون برنامه خودش بریزم روش

              دیدگاه


                #8
                پاسخ : سوزاندن یک قسمت از حافظه eeprom

                نوشته اصلی توسط sepehr63 نمایش پست ها
                روال کار خودم میدونم توی پروتئوس حافظه ایپرام دیدم به خاطر همین میخواستم انقدر توی اون قسمت از حافظه read و رایت کنم تا خراب بشه بعد اون برنامه خودش بریزم روش
                امکان پذیر نیست اگه اگر اگه حافظه مورد نظر بسوزه میکرو کلش از کار می افته واگه می خوای میکرو رابسوزانی راه های دیگه ایی هم هست

                وقتی برنامه ای پی رامو احضار میکنه برای خواندن یا نوشتن اگه ایپرام بسوزه میکرو عملا هنگ و توسط واچ داک ریست میشه این الان با سوختن فرقش چیه ؟ بله اگه میکرو فلاش شود و سراغ ان ادرس نریم بازم کار خواهد کرد اما اگه با ان ادرس درگیر شویم میکرو هنگ اوت و ریست میشه و ادامه ایی نداریم مگر اینکه به قول دوستمان شما عملیات خواندن و نوشتن ان ادرس از حافظه سوخته را پرش یا حذف نمایید
                جدیدترین ویرایش توسط saeidssm; ۲۱:۲۲ ۱۴۰۱/۱۰/۰۴.

                دیدگاه


                  #9
                  پاسخ : سوزاندن یک قسمت از حافظه eeprom

                  نوشته اصلی توسط sepehr63 نمایش پست ها
                  دو روز پشت سر هم دیتا رایت و رید کردم . باز 1 هفته دیگه میزارم
                  فرم برنامه اینه که توی حالت اول عدد EEPROM 0XFF هست . اینجور که متوجه شدم چک میکنه اگه بشتر از مثلا 100 بود عدد 0 میکنه و با هر بار روشن شدن مدار یکی به اون اظاف میکنه تا وقتی عدد دقیقا مساوی 100 بشه اون موقع دیگه اظافه نمیکنه و توی اون حلقه گیر میکنه
                  با درود
                  به هر حال شما به برنامه دسترسی دارید و میتونید روی ای ای پرام بخونید و بنویسید خب یک خط برنامه اضافه کنید اول ماین
                  و اون متغییر ای ای پرام 10 کنید
                  ایا درست متوجه نیاز شما شدم ؟

                  دیدگاه


                    #10
                    پاسخ : سوزاندن یک قسمت از حافظه eeprom

                    نوشته اصلی توسط saeidssm نمایش پست ها
                    امکان پذیر نیست اگه اگر اگه حافظه مورد نظر بسوزه میکرو کلش از کار می افته واگه می خوای میکرو رابسوزانی راه های دیگه ایی هم هست
                    اگه ایپرام خراب بشه مشکلی پیش نمیاد برای کار کرد میکرو . برنامه که داخل eeprom ریخته نمیشه .
                    میکرو قرار نیست بسوزه . قراره یکی از خونه های eeprom خراب بشه و دیتا ذخیره نکنه . در این صورت یا محتوا 0 میشه یا 0xff
                    فکر این کار از مسابقه سیسوگ بود که مسابقه ای گزاشته بود که با برنامه میکرو از کار بیافته که با ریید و رایت کردن داخل فلش میکرو یه قسمت از فلش خراب کرده بود و میکرو از کار افتاده بود
                    حالا من میخوام ببینم میشه eeprom خراب کرد یا نه

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

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

                    دیدگاه


                      #11
                      پاسخ : سوزاندن یک قسمت از حافظه eeprom

                      نوشته اصلی توسط sepehr63 نمایش پست ها
                      به برنامه دسترسی ندارم به هگز دسترسی دارم . یا باید هگز تبدیل به اسمبلی کنم که وقت ندارم و این کار هم فقط برای تجربه میخواستم انجام بدم
                      یکی از دلایل خراب شدن حافظه ای ای پرام کم و زیاد شدن ولتاز حین خواندن و نوشتنه
                      دوباره خواندن نوشتن اغاز کن و رگیاری و در این هنگام ولتاز تغذیه میکرو کمی دچار دستخوش تغییرات و نواسانات کن
                      اینجوری احتمال خراب شدن این متغیر بیشتر میشه
                      حالا فرض کنیم سوخت ؟ چی میشه این متغییر ؟ اف اف یا 255 ؟ یا کلا میکرو هنگ میکنه حین خوان این متغیر ؟

                      دیدگاه


                        #12
                        پاسخ : سوزاندن یک قسمت از حافظه eeprom

                        سلام دوست عزیز،
                        دقیق متوجه نشدم که چی میخوای ولی بصورت کلی اگر میخواهی یک eeprom مثلاً مدل at24c16 رو با یک برنام خاص چک کنی که سورسش رو نداری واین ای سی روی یک سوکت قرار داره روشهای دیگه هم هست.مثلاً پین wp که کار write protect رو میکنه ومثلاً اگر فلان شرط برقرار شد به vcc به این پین میده وکلاً eeprom فقط خواندی میشه یا شما فکر میکنی خراب میشه.

                        روش دیگر که کلاً غلط است برای خراب کردن eeprom خواندن/نوشتن روی آن طبق دیتاشیت تا 100000 بار هست.این بصورت تستی برای نوع خاص آن کارخانه هست ودقت کنید منظورشون فقط نوشتن هست یعنی خواندن از روی eeprom بصورت نامحدود بوده وتاثیری در طول عمرش نداره واینکه باید حتماً 100000 بار همه خانه هاش رو بنویسید نه فقط یک یا چند بایتش رو.

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

                        دیدگاه

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