This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Programming EEPROM directly, DS100BR111 SMBus Master Mode

Other Parts Discussed in Thread: DS100BR111, USB2ANY

Apologies for not supplying the part number in the specified field. For some reason doing so would allow me to only select "Ethernet" as the targeted forum.

I have a DS100BR111 set up for SMBus Master Mode with an appropriate EEPROM. I am trying to understand how to program that EEPROM so that the DS100BR111 can read from it. I have tried writing the values directly to the EEPROM. That is, EEPROM address 0x00 contains the first value from Table 6 the datasheet (or Table 1 of SNLA228). This does not seem to work as the DONE pin remains high. I can read the register values of DS100BR111 but cannot write to them - I suppose write is disabled until DONE goes low. Further investigation suggests that I need to create a hex file and write that to the EEPROM. Can I write the values of the hex file manually? Can you please elaborate on this procedure?

I checked out SigCon Architect but do not have a USB2ANY device. I will need to program the EEPROM without if possible. Thank you.

  • I did just figure out that I can hit the "Apply" button in SigCon Architect to use the features that allow me to generate hex files. The question of how to program to EEPROM and whether or not a hex file is necessary remains. Thank you.
  • Hi Mark,

    Yes, the .hex EEPROM file for the DS100BR111 can be programmed by the SigCon Architect tool while in Demo Mode (no live device connected). However, note that the .hex file must then be taken and programmed into the EEPROM by an EEPROM programming tool such a the TotalPhase Aardvark:

    SigCon Architect does not have the capability of burning the values into an EEPROM per se.

    To create the .hex file, implement the following:

    1. Write all register values you wish to change from the default in the High or Low Level Page. Click "Apply" for changes to take effect.

    2. Go to the EEPROM Page. Assuming you are only programming one device, click "Update Slot from Device." This will map EEPROM-specific register values to their appropriate place in the EEPROM .hex file.

    3. When done, click "Write to EEPROM Hex," and a hex file will be generated.

    The above procedure works for programming a single device in Slot 0. If you have multiple DS100BR111 devices, you will need to do the following additional steps:

    4. Navigate to the Low Level page and update any register values that are different for the next device. Click "Apply."

    5. Go back to the EEPROM Page and increase "No. of Device" to the appropriate number. If you are unable to increase the No. of Devices to the number you need, this is because the EEPROM Size must be increased. Increase the EEPROM Size to enable more devices. Note that the limit for devices per EEPROM is 16.

    6. Double-click on "Slot #" for each Device Address and type in the desired slot number as necessary. Devices sharing the same settings can share the same Slot #.

    7. Click on the Slot # you wish to update, then click "Update Slot From Device." In the below example, I m updating Device No. 7 in Slot #6:

    After you have created your .hex file, use an EEPROM programming tool to burn the EEPROM value into the EEPROM. Ensure that the EEPROM you have chosen is comparable to the Atmel AT24C01C/02C/04C/08C/16C EEPROMs.

    Thanks,

    Michael

  • Thank you for the information. I have an I2C connection between the circuit and my computer, it just isn't a USB2ANY device.

    Can you tell me what exactly is burned onto the EEPROM? In other words, what do you mean by "... burn the EEPROM value into the EEPROM?" Is it the hex file itself? Or a binary file created from it? As I mentioned above, I tried the raw data with no luck, so I'm guessing that a hex file is necessary.

    Thanks again.
  • Hi Mark,

    It depends on the programming tool. I only have experience with the Total Phase Aardvark tool, which allows me to input a .hex file that it then knows how to program to the EEPROM (which should have a 7-bit Device Address of 0x50).

    In other customer use cases, I have seen them require a .bin file. If this is the case, there's a nifty tool called hex2bin that allows you to do this. Please refer to the following thread for more details: e2e.ti.com/.../2315878

    Thanks,

    Michael
  • Hi Michael,

    I was able to successfully program the EEPROM by passing the generated .hex file through hex2bin, opening that .bin file with a hex editor, and writing the values within, in hex, to the EEPROM over I2C. Thank you for your help!