Post Go back to editing

Critical feature from SS4.7 removed in SS+: No way in SS+ to directly observe status of I2C download activity to a device.

Category: Software
Product Number: SigmaStudio+
Software Version: 2.2

This bug was buried in old issue about XML download  SigmaStudioPlus generic I2C device: how to download xml and read/write fails with EVAL-AD2437A1NZ/B1NZ the XML part was solved.

However this bug / deficiency / removed capability (call it what you want)  is still a problem and I have not been able to figure out any reasonable workaround.

Assume something like this:

 

I need to be able to download a .xml file to the EEPROM and know that it worked.  (or ADC, DAC, whatever)

In 4.7 it produced this very easy to read log right in the dialog.

This was removed in SS+ and SS+ now shows all I2C activity for ever device in the system.  In SS+ it's filled with error messages (beats me from what) even when the device programmed correctly.

In 4.7 you can tell in a few seconds if the I2C sequence worked (i.e. no red FAILs show up).  

In SS+ there seems to be no way to do this.

What are the options to add a way to tell I2C/XML sequences worked?

Thanks,

Brewster



wording fixup
[edited by: Brewster at 6:40 PM (GMT -4) on 8 Jul 2024]
Parents Reply Children
  • Hi Arun,

    Sorry for the slow answer, had to set this aside for a bit.

    If you do a download

    and look at the capture window it's what I will politely call "full of crud" versus the very easy to understand display that SS4.7 has.  For example, here's the results of the attached .xml:

    <?xml version="1.0" standalone="no"?>
    <ROM>
      <page modetype="Mode 0">
        <action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="0" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">00</action>
    	<action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="1" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">00</action>
    	<action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="2" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">00</action>
    	<action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="3" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">00</action>
        <action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="read" addr_width="2" data_width="1" len="3" addr="0" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="1" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="2" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="3" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="0" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">FF</action>
    	<action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="1" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">FE</action>
        <action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="2" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">0D</action>
        <action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="writeXbytes" addr_width="2" data_width="1" len="3" addr="3" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register">0C</action>
        <action instr="delay" ParamName="Delay">00FF</action>
    	<action instr="read" addr_width="2" data_width="1" len="3" addr="0" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="1" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="2" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
        <action instr="read" addr_width="2" data_width="1" len="3" addr="3" i2caddr="80" AddrIncr="0" CellName="EEPROM1" ParamName="Peripheral Register" />
      </page>
    </ROM>

    In SS4.7 it was one operation per line and a very clean SUCCESS or FAIL status (see screen capture in orig. post). I could look at the status log and in a literal second know whether it worked or not.  This is being used for more than EEPROMs, i.e. ADC, DAC, port expanders, etc., I'm just using EEPROM to describe the issue as it's something everyone knows.

    In SS+ there is no way to understand what worked without reading it line by line.  For some reason, every write results in "Error" though apparently is actually does complete the I2C write.

    Unlike SS4.7, SS+ is showing each I2C bus transaction and NOT the operation, which means there's multiple lines displayed instead of just READ or WRITE.

    Can you look at that SS+ screen capture and in one second say "yup, no errors here" and the data written matches what got read back?

    It certainly would be nice for a SigmaStudio something to show all the gory details as an option, but not as the only way to see if something worked.

    With SS4.7 I could have a tech hit the download button to test a small batch of things and it was easy to explain what to look for, i.e. the big red FAIL message.  Now it's very difficult even for me to notice when something isn't right in an I2C sequence.

    If it was just this one thing about SS+ I might be more forgiving.  There's a huge list of functional regressions in SS+ that make it painful to use compared to SS4.7.  I know it's not your fault but someone that's specifying this stuff needs to start talking to users and listening.

    I stick to SS4.7 unless it's AD2437 where I have no choice.  I may start defaulting to AD242x over AD2437 just to avoid SS+...

    Thanks,

    Brewster