Thank you to the guys at HEGE supporting Badcaps [ HEGE ] [ HEGE DEX Chart ]

Announcement

Collapse
No announcement yet.

EEPROM function confusion

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    EEPROM function confusion

    As far as I know the EEPROM stores user setting information.

    So what I’d like to know is, how can a bad eeprom cause things like a TV not powering on or freezing etc

    Is it because the MCU checks with the eeprom first before telling the power supply to turn on? If so, what’s it checking for exactly?

    Is the eeprom the same as a boot loader in a pc?

    Confusion stems from knowing that for example a ps_on pin is controlled by the MCU, so having trouble seeing where the eeprom ties in for TVs that don’t power up due to corrupt eeprom
    Last edited by caphair; 01-10-2018, 08:46 AM.

    #2
    Re: EEPROM function confusion

    Originally posted by caphair View Post
    As far as I know the EEPROM stores user setting information.

    So what I'd like to know is, how can a bad eeprom cause things like a TV not powering on or freezing etc

    Is it because the MCU checks with the eeprom first before telling the power supply to turn on? If so, what's it checking for exactly?

    Is the eeprom the same as a boot loader in a pc?

    Confusion stems from knowing that for example a ps_on pin is controlled by the MCU, so having trouble seeing where the eeprom ties in for TVs that don't power up due to corrupt eeprom
    Not just user settings, manufacturer settings like panel etc. and the start up sequence. Just like in laptops. Go and check the pages of people curing their laptop issues by flashing their eeproms.

    Some TVS just have a eeprom for start and a NAND that stores all the user settings etc.

    Comment


      #3
      Re: EEPROM function confusion

      Originally posted by diif View Post
      Not just user settings, manufacturer settings like panel etc. and the start up sequence. Just like in laptops. Go and check the pages of people curing their laptop issues by flashing their eeproms.

      Some TVS just have a eeprom for start and a NAND that stores all the user settings etc.
      By start up sequence is that similar to a bootloader or something else? What I'm trying to figure out is how can an eeprom stop a device from powering on, is it an intermediary between a power supply and mcu?

      Comment


        #4
        Re: EEPROM function confusion

        In most cases the microprocessor is dumb, it needs to be told what to do. That information/program is stored in the eeprom, one of the functions would be, scan port (*) for input from power button, if button is pressed turn on tv, If that simple bit of data in the eeprom is corrupt and not read, the micro will never look at that port for input.

        This is why if you use the freeze eeprom ic trick to see if the tv will function, it must be froze before the tv is pluged in. If you try freezing it after, it will not have any effect because the micro reads it right after power is applied and micro is reset.

        The eeprom can also be used for storing customer setup data like vol level etc.

        Some older tv's just used the eeprom for storing setup data, so if it got corrupt and would not let the tv turn on, you could just replace it with a blank eeprom, then go into the service menu to setup and store all the variables ie vert size, r.g.b. levels etc.
        Last edited by R_J; 01-10-2018, 11:56 AM.

        Comment


          #5
          Re: EEPROM function confusion

          Originally posted by caphair View Post
          As far as I know the EEPROM stores user setting information.

          So what I'd like to know is, how can a bad eeprom cause things like a TV not powering on or freezing etc

          Is it because the MCU checks with the eeprom first before telling the power supply to turn on? If so, what's it checking for exactly?

          Is the eeprom the same as a boot loader in a pc?

          Confusion stems from knowing that for example a ps_on pin is controlled by the MCU, so having trouble seeing where the eeprom ties in for TVs that don't power up due to corrupt eeprom
          EEPROM is just another type of memory. What gets stored in it depends on how the designers decided to use the various types of memory that are inevitably present in their product.

          Think of the things that a device (TV in this case) has to remember:
          • firmware (all of the software that makes it a TV instead of a pile of useless electronics)
          • user settings (volume, current channel, previous channel, screen mode, parental lockouts, user-assigned names for aux inputs, etc.)
          • things derived from user settings (how to tune "Channel 32-1", station call letters/network affiliate, etc.
          • performance history (PoHrs, lamp aging data, etc.)
          • IP settings (think: Smart TV)
          • favorite web sites
          • etc.


          How the designer chooses to remember these varies based on:
          • how much has to be remembered (different types of memory have different costs associated with them)
          • whether or not it has to be alterable (some memory may be permanent like a S/N)
          • how quickly the information needs to be retrieved (fetching CPU instructions obviously has to happen pretty quickly)
          • how often it needs to be updated and the number of times it conceivably might need to be "remembered" (certain technologies "wear out" with use)


          You wouldn't, for example, need to store the firmware in memory that can be updated hundreds of thousands of times -- cuz it will probably only be updated a few times. OTOH, the volume/current channel will probably change dozens of times every day! While the "panel size/geometry", MAC address, etc. will never change (set at factory).

          Some settings will reside in more than one type of memory over their lifetime.

          For example, the firmware undoubtedly mutes the volume as the device is booting (so you don't hear clicks and pops). Then, once the hardware is considered to be "stable" (power supply has come up and everything has been initialized properly), sets the volume to some nominal default value (as there will be cases where the user has never had a chance to pick a volume level, yet!). Then, apply the most recently remembered volume setting.

          This last value needs to persist across "viewing sessions". If standby power is available to the TV, the designer could choose to save this value in VOLATILE memory, knowing that the STANDBY power will remain on between viewing sessions. OTOH, he probably won't store the channel list in that memory cuz a power outage -- or the user unplugging the TV for any reason -- would cause the settings to be lost. This would involve an extra step for the user to get the TV operational, again ("scan for channels") which can be tedious (e.g., I manually edit out many of the local channels from our channel list). OTOH, if the TV happened to forget the most recent volume setting, the user would have little problem moving from the restored DEFAULT volume setting to something appropriate for "now" (chances are, he wouldn't even remember that the "current setting" was different than it happens to be, now)

          You can, no doubt, understand how forgetting the channel list would alter the behavior of the TV (by requiring a new scan). Imagine what "forgetting" the panel type would do -- the TV couldn't even display a message complaining that it didn't know what kind of display was attached!

          Many memory technologies have "wear" problems. Old fashioned core memory (little ferrite donuts strung on grids of fine wire) inherently were erased by the act of reading their contents. So, the memory system had to quickly turn around and rewrite their contents after every "read" (remember, CPU also reads instructions from that memory so every instruction fetch had a rewrite transparently tacked on behind it!).

          FLASH suffers from write wear (too many writes cause the memory cell to fail like driving too many miles on a set of tires). And, they also suffer from READ wear (reads disturb the charge stored in the memory cell requiring a refresh).

          What do you do if a memory cell intended to hold an instruction for the CPU (like "set PS_ON to HIGH") wears out? The TV might know that something in its program memory has been corrupted (because it does a hash/checksum of that memory in POST) but that doesn't mean it knows the exact nature of the problem or that it can FIX the problem!)

          And, since it doesn't know what functionality has been affected (is it the audio system? TV tuner? etc.) it doesn't know what it can rely on going forward -- it can't even complain to the user!

          [That's why we have blink codes]

          Comment


            #6
            Re: EEPROM function confusion

            Originally posted by R_J View Post
            In most cases the microprocessor is dumb, it needs to be told what to do. That information/program is stored in the eeprom, one of the functions would be, scan port (*) for input from power button, if button is pressed turn on tv, If that simple bit of data in the eeprom is corrupt and not read, the micro will never look at that port for input.

            This is why if you use the freeze eeprom ic trick to see if the tv will function, it must be froze before the tv is pluged in. If you try freezing it after, it will not have any effect because the micro reads it right after power is applied and micro is reset.

            The eeprom can also be used for storing customer setup data like vol level etc.

            Some older tv's just used the eeprom for storing setup data, so if it got corrupt and would not let the tv turn on, you could just replace it with a blank eeprom, then go into the service menu to setup and store all the variables ie vert size, r.g.b. levels etc.
            Thanks this helped. I'm curious, how does freezing let the eeprom work momentarily if the data is essentially corrupt?

            Also for smartphones, their bootloader is usually on a virtual drive part of the nand memory, but they also have an eeprom. In this instance what information is on the eeprom? Is it just Board id stuff or?

            Comment


              #7
              Re: EEPROM function confusion

              I have no idea how freezing the ic works, I suspect there could be a fault during mfg. who really knows. In normal temperature the connection to a certain part of the die could be bad, freezing it causes the package to change making the connection and restoring the operation, temporarily.

              Comment


                #8
                Re: EEPROM function confusion

                Originally posted by caphair View Post
                By start up sequence is that similar to a bootloader or something else? What I'm trying to figure out is how can an eeprom stop a device from powering on, is it an intermediary between a power supply and mcu?
                Whatever you want to call it. It has data/information stored on it that is required for start up. Like in laptops.

                Comment


                  #9
                  Re: EEPROM function confusion

                  Freezing the chip is just one method of stressing it in hopes that an internal part or connection will re-connect and start working temporarily. Heating it up, or heating individual pins might also work for troubleshooting, or nothing may work. As mentioned the chip might be used as a scratch-pad for storing temporary micro data, or it might also contain some critical parts of the program (micro didn't have enough internal memory). If the chip does contain that program data, it will not be refreshed and will be subject to corruption from heat and moisture. Seems like we are getting evidence that the useful life of this type of memory is much shorter than originally expected.
                  Sometimes you can find problems by looking for activity on the R/W, clock and SD lines just at the moment of power up. The micro has to obtain an ACK from the EEPROM, even if it doesn't need any data. It is always a good idea to make sure that the power-up reset line is doing its job and that the final voltage on that line is correct.
                  Is it plugged in?

                  Comment


                    #10
                    Re: EEPROM function confusion

                    actually you freeze a memory chip because electrons flow better at low temps.
                    so a flaky chip sometimes works fine while very cold.

                    many times, i'v frozen a flaky chip and read the code out.
                    then used the code to program a new chip.

                    Comment


                      #11
                      Re: EEPROM function confusion

                      Originally posted by Longbow View Post
                      Freezing the chip is just one method of stressing it in hopes that an internal part or connection will re-connect and start working temporarily. Heating it up, or heating individual pins might also work for troubleshooting, or nothing may work. As mentioned the chip might be used as a scratch-pad for storing temporary micro data, or it might also contain some critical parts of the program (micro didn't have enough internal memory). If the chip does contain that program data, it will not be refreshed and will be subject to corruption from heat and moisture. Seems like we are getting evidence that the useful life of this type of memory is much shorter than originally expected.
                      Sometimes you can find problems by looking for activity on the R/W, clock and SD lines just at the moment of power up. The micro has to obtain an ACK from the EEPROM, even if it doesn't need any data. It is always a good idea to make sure that the power-up reset line is doing its job and that the final voltage on that line is correct.
                      What are R/W, SD, and ACK lines?

                      Comment


                        #12
                        Re: EEPROM function confusion

                        Originally posted by stj View Post
                        actually you freeze a memory chip because electrons flow better at low temps.
                        so a flaky chip sometimes works fine while very cold.

                        many times, i'v frozen a flaky chip and read the code out.
                        then used the code to program a new chip.
                        I thought the opposite was true, electrons flow better at warmer temps?

                        Comment


                          #13
                          Re: EEPROM function confusion

                          It has nothing at all to do with electron flow, etc. It has to be with how the data gets read out. The data is still intact and not changed. If the data was changed all the freezing in the world won't make it correct. I have done a read but the chip will fail on verify, so the data read was not correct. I froze the ic did a read and verify worked. after the chip came to room temp, the chip would read but not verify again. something in the ic that controls how the data gets read and sent out in serial form screws up. Time to get out the electron microscope I guess

                          Comment


                            #14
                            Re: EEPROM function confusion

                            no, the chip interface is digital, but internally the memory cells (electron buckets) are analog.
                            they are like a big grid of capacitors that are either charged, or discharged.
                            they very slowly leak and become borderline.

                            Comment


                              #15
                              Re: EEPROM function confusion

                              Originally posted by stj View Post
                              no, the chip interface is digital, but internally the memory cells (electron buckets) are analog.
                              they are like a big grid of capacitors that are either charged, or discharged.
                              they very slowly leak and become borderline.
                              Exactly. Except they can "leak" UP or DOWN, depending on the technology employed and the states of adjacent signals.

                              You're isolating/trapping some number of electrons inside the "cell" and using the number of them detected there (you don't really COUNT them, directly, as much as sense the level of charge) to determine if the datum to be represented is a '0' or a '1'. With some newer technologies (really tiny cells and low voltages), we may be talking about 50 electrons.

                              [Do you remember your grade school science classes? ]

                              MLC FLASH typically stores two bits per "bucket" (cell). So, instead of a simple criteria like "more than this many captured electrons equals '1' and less equals '0'", its more like:
                              - 0 to 24 is '00'
                              - 25 to 49 is '01'
                              - 50 t0 74 is '11'
                              - 75 to 99 is '10'

                              [I am paraphrasing here for simplicity]

                              QLC stores 4 bits per cell (do the math)

                              The more "levels" per cell, the higher the density of the device (since the cells remain the same size, more or less so MLC gives twice the density, TLC three times, QLC four times). But, more levels means more power to operate, fewer total write-erase cycles (like an order of magnitude!) and slower access times, esp for write (like 4-fold to step up to MLC from SLC).

                              And, of course, more "management" required to ensure a cells "state" doesn't slip across a charge threshold to represent another set of bits...

                              Comment


                                #16
                                Re: EEPROM function confusion

                                I just fixed a tv with a bad eeprom. I put it into a programmer and was able to read the data without freezing it.

                                Why was this possible if it didn’t work installed in the tv? I figured I’d have to freeze it to read the data and save it to transfer to another

                                Comment


                                  #17
                                  Re: EEPROM function confusion

                                  Now that the eeprom has been out for a while, have you tried reading it again and see if the data is exactly the same as it was after you removed it? I take it you used heat to remove it from the board

                                  Comment


                                    #18
                                    Re: EEPROM function confusion

                                    i could be that the programmer used a different supply voltage.
                                    or just clocked it slower.

                                    Comment


                                      #19
                                      Re: EEPROM function confusion

                                      Originally posted by R_J View Post
                                      Now that the eeprom has been out for a while, have you tried reading it again and see if the data is exactly the same as it was after you removed it? I take it you used heat to remove it from the board
                                      I did use hot air to remove from the board. Are you asking if the original eeprom now that it's not on the board still reads fine? If so I'll have to try it later

                                      Comment


                                        #20
                                        Re: EEPROM function confusion

                                        Originally posted by stj View Post
                                        i could be that the programmer used a different supply voltage.
                                        or just clocked it slower.
                                        So normally it would need to be frozen when reading data from it or it wouldn't read properly?

                                        Comment

                                        Working...
                                        X