I would like to start a discussion regarding things Fusion, as an application, needs in order to better serve its users. I’m a user of a UCD90160 and am frustrated by the inability to do many of the things I can with a simple microcontroller. Company policies force me to use a sequencer rather than a more generic and flexible solution, so I need to make the best of this choice. The UCD90160 is the closest to what I am accustom to, but Fusion leaves a bad taste in the mouth. It’s a great starting point, but having been designing power domain management systems for many years, I know there are better ways to get the data in and out of the chip.
If any of you have seen problems or see a better way for Fusion to do what it does, please add to the discussion. My hope is that TI developers will see this and can accommodate at least the low hanging fruit.
Please note that my observations and statements are based on version 2.0.50 as well as versions released over the last couple of years, and using a UCD90160. There are older versions in use and there are other sequencers supported.
Problems I have seen:
Data corruption after multiple read/write cycles. I haven’t been able to narrow this to a specific set of actions yet, because I don’t usually identify it until many steps after the corruption has actually taken place. Fortunately, I’ve been doing frequent saves and copying my saved data to differently named files so I can get back to uncorrupted work. The first few hours of work don’t suffer from this, but if I keep my session running for more than, say 5 hours, this corruption will eventually occur. It seems to only occur in online mode. A work around is to leave the app and restart mid day and in the morning.
Changes are not always retained when changing GUI pages. I have had to make certain that I write to hardware before I go to a different GUI page or those changes may be lost.
Graphic display of GPIOs is not remembered between sessions.
Improvements I would like to see: (addressing inadequacies)
Clear separation between what is global (system wide) and what is paged (rail specific). Example: Time between re-sequences on the reset page is a global parameter (meaning one setting for the system) and Time between restarts on the Fault responses page is paged (meaning one setting per rail). These two values have such similar names, its easy to confuse them. Perhaps changing the color of the entire tab and worksheet for global pages along with a “Global” title or statement would be enough.
Many of the help or popup “tool-tips” are clones from one of the data sheets and aren’t really helpful.
With 16 waveforms to look at, a parade view option on the waveform viewer would be extremely useful. It would also be nice to turn off certain voltages to improve clarity.
I would like to see input stimulus and output logic on the waveform monitor rather than in its own waveform monitor.
I would like to see dependency arrows (circle, squiggly line and arrow head) optionally shown on the waveform display(s).
I like the single output waveform viewer with the plotted limits. Can we show warn, fault, power good values specifically? Can we get more than one of these windows so we can watch more than one output at a time in relation to its limits?
I would like to see the shutdown timing (or other scenario) start from its own time zero.
I would like to see a better, more comprehensive scenario manager than simply “Event Timing”. Often, multiple signals are involved in inducing a state change and we would like to simulate each one. Being able to save each simulation as a scenario and call them up individually, or in order would be very useful. Likewise, it would be very useful to be able to draw the stimulus graphically. This should include digital, 1/0 signals and Analog stimulus that moves at very different rates and through very different voltage ranges.
Please note that some of us use GPIs as switch debouncers and GPOs as logic outputs for functions unrelated to power the power system. This is another reason for managing scenarios, so we can stimulate the “switch” input and see the output change. In one example, a logic input is used to power down a portion of the product for power savings.
The All Config page is missing a lot of data. The paged information is missing data from commands E9, ED, F5, and F6. The global information is missing data from commands D2 , D3 , D5 , DA, DD, DE, E0, E1, E2, E3, EA, EC, EF, F7, F8, F9, FA, and FB. This is very specific to the UCD90160. I don’t know what’s missing for other types of devices.
The summary report seems to only show paged data. Where is the global data?
It would be good to gather all the voltage related settings onto a single spreadsheet like page for quick entry or copying from the clipboard. I frequently have calculated all my values in a spreadsheet and would like to just paste them into my tool. The same could be said for temperatures, currents and timing, although the UCD90160 doesn’t have temperature or current capabilities. Such a thing could appear in a dedicated page or in a special dialog.
A simple, parameterized timing diagram showing how the timing values fit should be shown. I’ve found a few in the data sheet and user guides, but not all values are described. Between the manufacturer specific codes and the System Management Interface Forum’s (powerSIG.org) definition of general purpose codes, and how TI interpreted them, the chip’s behavior isn’t always obvious. Time spent tweaking the values and looking at the results with a scope are sometimes needed to gain a full understanding. If the timing related registers or values were gathered on a separate page or in a dedicated dialog, the waveform could be shown there.
I would like to get a tabular and graphic of the pinout using the assigned net/pin names. This would be used by my schematic symbol generator so I get a custom symbol of the part and avoid connection errors during implementation.
I would include/add resistor value / gain calculator for the inputs that accept values beyond the internal VREF. It not only is a great place holder for these values, but ensures the gains are calculated correctly for the VOUT_SCALE_MONITOR register. These resistors could be drawn in an “application schematic” graphic. Including the calculation for a passive low pass filter “C” across the lower resistor would be very useful. Along these lines, allow an active front end such as an active low pass filter or gain stage for measuring low voltages with high resolution against the relatively high value of VREF. Example: a 0.8V power system.
BIG PET PEVE: Negative supplies not directly supported! While the chip itself doesn’t handle negative supplies, there are techniques to map negative supplies to the chip. For the input, this involves an inverting active front end. Reference it to ground. The gain is set to the same value as a resistive divider would have been. Because this is a fractional gain amplifier, some C will likely be needed in the feedback, so this value can be calculated too. You can draw this in the “application schematic”.
Perturbation, margining, or active feedback (take your pick): This is a very powerful technology, but its not really supported by fusion. Sure, you can select the pin, and set the frequency, but little else. Provide a dialog that lets the user state what the reference voltage will be and what the bias current of the power supply chip or module is. The other necessary information was entered elsewhere. Calculate the resistor values for all four (4) resistors in the network, including both feedback resistors in the power supply. Calculate the capacitor value based on the PWM frequency. The two perturbation resistors can be scaled such that the entire PWM range is mapped to the margin range or fault rail range (whichever is greater). This way, no matter what duty cycle is selected, the supply can’t possibly be knocked out of legal range. Again, these values and circuit components can be drawn in the “application schematic”.
Perturbing negative supplies can be handled in an identical way: The negative supply will have a negative reference, meaning the ‘T’ of the network will be negative. The PWM signal needs to be inverted and perhaps amplified from its CMOS value to something that includes a negative value well beyond that reference value. Example: A -5V supply has a -1V reference, meaning its feedback node, and therefore the ‘T’ junction needs to be -1V. The PWM signal needs to be converted from 0 to 3.3V into either 0 to -3.3 or +3.3 to -3.3 or even +3.3 to -5V (to avoid having a special supply). An opamp powered by +3.3V and the very -5V being generated, a +1.65V reference on its positive input and taking in the PWM signal on its negative input will produce a +3.3 to -5V PWM signal. The 4 resistors of the network can be calculated such that over the range of the PWM, the output voltage of the supply will span across either margin range or fault rail range (whichever is greater). For no perturbation, the sequencer wants to take the output tri-state. The opamp can’t recognize or duplicate that scenario, so its best to leave the sequencer producing 50% duty cycle. During startup, the sequencer output is tri-stated and you can’t change it. Use a light pullup on the PWM input to force the opamp’s output down all the way. As the power supply’s output voltage goes down, so does the opamp’s, providing maximum perturbation like a 100% duty cycle. Crossing the power good value satisfies the power good requirements, taking the sequencer output out of tri-state. The 50% duty cycle default will bring the voltage to nominal. Again, these values and circuit components can be drawn in the “application schematic”.
Any components selected in the above calculations should be standard values. The user should be able to select 5%, 1% or 0.1% tables. The user should also be able to override any calculated value. The results using those standard or overridden values should be shown.
There are many other ways this application could speed up design of complex, multi-domain systems. The idea is to get the time from days or weeks currently needed to understand the tool and part down to minutes.
Regards,
Louis