8.5.1 Device Configuration and Programming
From the factory, the device contains the sequencing and monitoring firmware. It is also configured so that all GPOs are high-impedance (except for FPWM/GPIO pins 17-24, which are driven low), with no sequencing or fault-response operation. See Configuration Programming of UCD Devices, available from the Documentation & Help Center that can be selected from the Fusion GUI Help menu, for full UCD90160 configuration details.
After the user has designed a configuration file using Fusion GUI, there are three general device-configuration programming options:
- Devices can be programmed in-circuit by a host microcontroller using PMBus commands over I2C (see the UCD90xxx Sequencer and System Health Controller PMBus Command Reference).
Each parameter write replaces the data in the associated memory (RAM) location. After all the required configuration data has been sent to the device, it is transferred to the associated nonvolatile memory (data flash) by issuing a special command, STORE_DEFAULT_ALL. This method is how the Fusion GUI normally reads and writes a device configuration.
Because this method may cause unexpected behaviors on GPIO pins which can disable rails that provide power to device, it is not recommended for production programming.
- The Fusion GUI (Figure 27) can create a PMBus or I2C command script file that can be used by the I2C master to configure the device. This method may cause unexpected behaviors on GPIO pins which can disable rails that provide power to device. It is not recommended for production programming.
- Another in-circuit programming option is for the Fusion GUI to create a data flash image from the configuration file (Figure 28). The configuration files can be exported in Intel Hex, Serial Vector Format (SVF) and S-record. The image file can be downloaded into the device using I2C or JTAG. The Fusion GUI tools can be used on-board if the Fusion GUI can gain ownership of the target board I2C bus. It is recommended to use Intel Hex file or data flash script file for production programming because the GPIOs are under controlled states.
Devices can be programmed off-board using the Fusion GUI tools or a dedicated device programmer. For small runs, a ZIF socketed board with an I2C header can be used with the standard Fusion GUI or manufacturing GUI. The TI Evaluation Module for UCD90xxx 64-pin Sequencer and System Health Monitor (UCD90SEQEVM64-650) can be used for this purpose. The TI Evaluation Module for UCD90xxx 64-pin Sequencer and System Health Monitor (UCD90SEQEVM64-650) can be used for this purpose. The Fusion GUI can also create a data flash file that can then be loaded into the UCD90160 using a dedicated device programmer.
To configure the device over I2C or PMBus, the UCD90160 must be powered. The PMBus clock and data pins must be accessible and must be pulled high to the same VDD supply that powers the device, with pullup resistors between 1 kΩ and 2 kΩ. Do not introduce additional bus capacitance (<100 pF). Write user configuration to data flash using a gang programmer via JTAG or I2C before the device is installed in circuit. To use I2C, the clock and data lines must be multiplexed or the device addresses must be assigned by socket. The Fusion GUI tools can be used for socket addressing. Pre-programming can also be done using a single device test fixture.
Table 10. Configuration Options
|
Data Flash via JTAG |
Data Flash via I2C(recommend) |
PMBus Commands via I2C |
Off-Board Configuration |
Data Flash Export (.svf type file) |
Data Flash Export (.srec, hex type or data flash script file) |
System file I2C/PMBus script |
Dedicated programmer |
Fusion tools (with exclusive bus access via USB to I2C adapter) |
Fusion tools (with exclusive bus access via USB to I2C adapter) |
On-Board Configuration |
Data flash export |
Fusion tools (with exclusive bus access via USB to I2C adapter) |
Fusion tools (with exclusive bus access via USB to I2C adapter) |
IC |
The advantages of off-board configuration include:
- Does not require access to device I2C bus on board.
- Once soldered on board, full board power is available without further configuration.
- Can be partially reconfigured once the device is mounted.