[SOLVED] I2C programming EEprom with Flasher ATE

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hello Bjarne,

    it is possible to directly program this EEPROM using the Universal Flashloader:

    segger.com/products/production…e/#universal-flash-loader

    (24C512 should work)

    It is also possible to indirectly program the EEPROM, but this requires a custom Flashloader. You can develop this Flashloader by yourself:

    wiki.segger.com/Open_Flashloader

    Best regards
    Arne
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello Bjarne,

    maybe you'd need to download the recent version.
    Just put "24C512" into the device search mask:
    ibb.co/Rzvkdpd

    Best regards
    Arne
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi
    I manage to use the universal flash loader.
    I have downloaded to the Flasher ATE with success
    These files are placed at folder "module002"
    6051.dat
    FLASHER.UNI
    I2CEEPRO.PEX

    I try flash the EEPROM (24LC512) via Telnet

    In telnet I do:
    #status => OK
    #select 2 6051 => OK => ACK
    #selmodule 2 => SELCTED 2
    #auto 2 => ERR255: ERROR while flashing.

    If I FTP to flasher ATE, I can see a file "Flasher.log". In the log is writhed "SN: 1 - Failed"
    Also the flasher has produced another file "Flasher.ini". Inside is writhed:
    [FILES]
    DataFile = "6051.DAT"
    ConfigFile = "6051.CFG"



    What am I doing wrong?

    Attached The 5 file on Flasher ATE

    Thanks in advance
    Bjarne
    Files
    • Flasher.zip

      (2.6 kB, downloaded 351 times, last: )

    The post was edited 3 times, last by Ronald ().

  • Hello Bjarne,

    for more details, please connect a second terminal to port 42 before #auto.
    At a first glance, you might have used the wrong #select command. "#select 2 flasher.uni" might work.

    Regards
    Arne
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Arne

    I tried #select 2 flasher instead but it didn't help.
    Log file says:

    ERROR: Failed to open flasher config file
    SN: 1 - Failed

    Is "port 42" the serial port on Flasher ATE?

    I don't have a serial device. Need to get one before I can do it.(tomorrow).

    Regards
    Bjarne
  • Hi Bjarne,

    could you please enter the full text and not leave the extension?

    #select 2 flasher.uni

    Regards
    Arne
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • If I do this:
    #select 2 flasher.uni (instead of only #select 2 flasher)
    It still fails, but in log file it says only:
    SN: 0 - Failed

    and the flasher ATE has produced a file more called "Serial.txt"!

    Regards Bjarne
  • Hi
    According to the manual AN08007, extension is not needed:

    You can check if the Flasher ATE is ready to accept commands using the command #status.
    If yes the answer is #STATUS:READY.
    First, choose the project file taht shall be flashed. Use the command: #select [modulenumber]
    [project file name], e.g. #select 1 FLASHER. Repeat the step for every module.
    Note
    The file extensions are added by the firmware.
  • Hi Bjarne,

    file extensions are not to be added for universal flashloader projects, because it uses an .uni file instead of cfg/dat.
    So the extension .uni needs to be added to tell the flasher not to add wrong file extensions.

    Port 42 means the TCP port 42.
    Every module has a target channel on port 40+[module no.]
    This channel is used to get detailed information about the programming process.

    Regards
    Arne
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Arne

    This is programming commands and respond from Flasher:
    #status
    #ACK
    #STATUS:READY
    #selmodule 2
    #ACK
    #SELECTED:2
    #Select 2 flasher.uni
    #ACK
    #OK
    #auto 2
    #ACK
    #RESULT:2:ERR255:Error while flashing
    #DONE

    Here is output from port 42:

    #STATUS:INITIALIZING
    #STATUS:ERASING
    #STATUS:PROGRAMMING
    #STATUS:VERIFYING
    #ERR100:Verify error at page address: 0x00000000
    #ERR255:Error while flashing
    #STATUS:READY

    I have attached the files located on Flasher ATE

    Regards Bjarne
    Files
    • Serial.zip

      (2.7 kB, downloaded 349 times, last: )
  • Hi Bjarne,

    We checked your file. We found two points:
    1) the page size should be 128 byte as the spec says. But should not be the root cause.
    2) the error, reported in the last post, looks like the write protect pin is set to protected. Can you check that on your hardware?

    Best regards,
    Michael
  • Hi Michael
    According to Data sheet for 24LC025 microchip, the page size is 16! See attachment.
    The HW setup is not write protected. See attachment

    The board with the EEPROM is powered up and supplying the eeprom with 5V
    My connection from flasher is on SCL, SDA and GND. Should I connect 5V pin from flasher too?

    Another thing: Is it possible to get Flasher ATE to add a line feed after each response on telnet?


    Regards Bjarne
    Images
    • 24LC025 data.PNG

      56.24 kB, 481×717, viewed 394 times
    • 24LC025 Schematic.PNG

      9.78 kB, 285×350, viewed 468 times
  • Hello Bjarne,

    the lines SDA, SDL, GND, VTref need to be connected.

    The 24LC512, you mentioned in all posts before, has 128 bytes / page. In case of the 24LC025 the page size should be 16 bytes and you should use the 24C02 device in the Universal Flash Loader project.

    The ASCII command protocol is defined without the LF and only the CR at the end of the line. Most terminal can switch to CR mode only.


    Best regards,
    Michael
  • Hi Arne and Michael

    I'm very pleased. It works now. 5V is king :)

    Now to the next question:

    My data layout is a little bit special:
    For every DUT i have to program, a lot of the data is different. Not only serial number.
    My data layout is 64 byte long and repeated 3 times.
    At byte 2 and 3 there's a Checksum
    At byte 40, 42, 42, 43, 44, 45, 46, 47 i got date and serial number.
    This repeated from byte 64 and from 128

    How is the best way to change these bytes on the flasher. Can I go into the Flasher.dat file on the Flasher ATE and change in these bytes or is there a CRC for this file? (attached flasher_data.png)


    Thanks in advance

    Bjarne
    Images
    • Flasher_data.PNG

      61.22 kB, 717×732, viewed 576 times
  • Godmorning Michael

    I tried the patch way, but it didn't work.

    I have added Patches.txt and Serial.txt Module2 directory. Then did:
    #status
    #selmodule 2
    #select 2 flasher.uni
    #auto 2
    It did program the DUT, but did not use the patches.
    I can see that the Serial.txt was incremented by 1.

    ?:
    Should the flasher ATE not patch all lines in the Patches.txt?
    I can see that despite it has incremented the serial.txt, it has not patched the first line.

    attachment: files from Flasher ATE

    Regards Bjarne
    Files
    • Serial.zip

      (2.97 kB, downloaded 350 times, last: )
  • Hello Bjarne,

    the Flasher programs only one line per target device. If you want to apply more than one patch to a target all patches must be in one line. Or you use the "#auto patch" command and add the patch data after the command.

    Best regards,
    Michael