UM1545 STMICROELECTRONICS | Alldatasheet
Document overview
- Manufacturer or author: Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
- PDF pages: 64
Technical content
Datasheet sections
- 1 Getting started
- 1.1 Supported devices
- 1.2 Supported interface
- 1.3 Customer requirements
- 1.3.1 Installation notes
- 1.4 Quick start
- 2 APW walkthrough
- 2.1 Introduction
- 2.2 Preferences
- 2.3 Operations logging
- 2.4 Registers Bank
- 2.5 Equalizer Editor
- 2.6 Scripts
- 2.7 Command shell
- 2.8 Importing a filter
- 2.9 Exporting filter coefficients
- 2.10 Miscellaneous controls
- 3 Device-specific controls
- 4.1 Questions & procedures
- 4.2 Problems
June 2012 Doc ID 023225 Rev 1 1/64 UM1545 User manual Using the Audio Processor Workbench (APWorkbench) Introduction The Audio Processor Workbench (APW) has been designed as a multi-device software control panel supporting all the products in the Sound Terminal® family from STMicroelectronics. APW has been developed to fit the needs of both the beginner and the experienced user. The tool is quite flexible and its configuration can be simple or more advanced in order to access the multitude of features offered by the Sound Terminal ® products. Features of the APW include: ■ I2C register control: direct R/W access to all I2C registers of the device. ■ Equalizer editor: a powerful graphic tool to design filters (or a chain of them) and to download their coefficients directly into the device. APW makes the use of any other external tool unnecessary, thus simplifying device operation. ■ Configuration presets: the capability of storing up to 8 device configurations that can be loaded just by pushing a button. Thanks to this feature the configuration process becomes a rare activity making device testing, measuring or listening faster than ever. ■ Device common controls: embedded or external bridge power-up, device reset, power-up and initialization. ■ Device-specific controls: the ST Sound Terminal® product family includes many devices. APW offers the control of all the various device-specific features (proprietary audio effects, I/O configuration and routing and so on). For the complete list of the supported devices please refer to Section 1.1: Supported devices.
1 Getting started
1.1 Supported devices
The products actually supported by the APW, all belonging to the ST Sound Terminal® family, include:
- STA308A
- STA309A
- STA321
- STA323W
- STA326
- STA333BW
- STA333W
- STA339BW
- STA339BWS
- STA350BW
- STA369BW
- STA369BWS
- STA381BW
- STA381BWS
- STA529
- STA559BW
- STA559BWS Other customer-specific products are supported by the APW but require an activation code. For further information please contact your local ST sales office.
1.2 Supported interface
The APW needs an interface to interact with the various devices it supports. At the present time the supported interface is:
- APWLink™ interface (via FTDI© USB UART/FIFO I.C.), see AN4118, “APWLink™ USB interface board for Sound Terminal® demonstration boards” for further information.
1.3 Customer requirements
Figure 1. APW package folder
- A supported interface (i.e. APWLink™). If this interface is not available, the tool will run in SIMULATION mode only and no communication with either the target device or the demonstration board will be possible.
- A demonstration board of one of the Sound Terminal® supported products. The software requires:
- A complete APW package (a complete package consists of the files shown in Figure 1, please note that the structure might change according to the list of supported devices).
- MS Windows operating system (from Windows XP to Windows 7), no other OS is supported.
- The FTDI© driver (this driver is free and can be downloaded from http://www.ftdichip.com/Drivers/D2XX.htm). This driver will only be required to communicate with a target device or demonstration board through the APWLink™
interface. APW will run in SIMULATION mode only when the FTDI driver is not installed or the APWLink™ interface is not connected to the PC.
- Microsoft Visual C++ 2008 Feature Pack Redistributable package, if not already available on the target PC. These libraries can be downloaded for free from the Microsoft web site (see below Section 1.3.1: Installation notes).
1.3.1 Installation notes
- Microsoft Visual C++ 2008 Feature Pack Redistributable Package (x86) To properly run APWorkbench on some machines the user may be required to install the updated Microsoft VC++ 2008 Feature Pack redistributable libraries, available at no cost from the Microsoft web page at: http://www.microsoft.com/en-us/download/details.aspx?id=10015
- FTDIChip USB communication driver (APWLink™ interface) Concerning USB communication (APWLink™ interface), proper OS drivers must be installed, available for free from the FTDI website below. Note that different versions are available depending on the installed OS, either x86 (32-bit) or x64 (64-bit). All Windows versions, including Vista and Win 7 64-bit are supported. http://www.ftdichip.com/Drivers/D2XX.htm
1.4 Quick start
Figure 2. Startup settings, device selection
Figure 3. Startup settings, interface selection ports or the available COM ports will be enumerated in the drop-down menu on the right. connected to an interface (APW evaluation and testing only).
Figure 4. APW main dialog, device controls the APW main dialog, the Device controls frame (Figure 4, highlighted in red) is displayed. will be switched on as well), then use the other controls (Reset, Initialize, …) as needed.
Figure 5. Status bar Section Appendix F: Shortcuts quick reference.
2 APW walkthrough
2.1 Introduction
considered and referred to as the device configuration.
2.2 Preferences
Figure 6. Tools menu, preferences
Figure 7. Preferences dialog
- Coefficient reading
- Coefficient writing
- Register reading
- Register writing
- Miscellaneous operations on registers
- Register modifications As a last tracing option the user can also choose to trace all the operations occurring between the PC and the interface by selecting the Trace I/O Events flag. The log file can be provided with an automatic line numbering feature that can be enabled, if needed, through the Print Line Number in Log flag.
- Coefficient Settings: – Allow Editing Coefficients: this option enables the editing of the filter’s coefficients. – Show Value in Hexadecimal: this option allows toggling between the hexadecimal and the decimal notation when displaying the coefficient’s value. Please note that in case of decimal notation, the values are displayed with ten numbers after the comma. For this reason and for space constraints they might not be completely displayed.
- Filter Editor Settings: – Show Information in EQ Graphic: shows gain and frequency information when moving with the pointer over the graphic.
- Miscellaneous: – Load Preferences on Startup: the APW loads the preferences used the previous time. – Save Preferences on Exit: when quitting the APW, saves a copy of the current preferences setup.
- Startup Operations: this option modifies how the APW interacts with the device at startup. The APW can read the device configuration from the DUT (Device Under Test) or set it from its local banks (in this latter case the device defaults will be applied). A No Operation option is also available. If chosen, the APW will not perform any operation on the DUT at startup. Please note that by choosing this latter option the device configuration stored in the APW and the one stored in the device might not be the same. On the bottom left side of the dialog are grouped all the preferences concerning the register I/O setup. Since these options will customize how the APW will behave when performing any I 2C operation, do not modify them unless strictly needed.
- I2C Options – Check for ACK Events: if selected, the APW will check for I2C operations acknowledge, otherwise it will be ignored. – Warn for ACK Failures: through this option the user can choose whether to be informed in case of I2C failures or not. The check for ACK events option has to be checked first. Please note that when this option is set, a pop-up message (Figure 8) will warn the user at each I 2C failure, offering the user the possibility of aborting the operation, retrying it or ignoring any subsequent warning. If this last option is chosen, the APW will automatically disable the warn for ACK Failures option. To re-enable it, access the Preferences window as described above.
Figure 8. I
2.3 Operations logging
Figure 14. Real-time logger window The APW offers the possibility of logging many of the events generated through its controls. logged both in hexadecimal and binary notation for easier interpretation.
2.4 Registers Bank
Figure 15. Registers Bank tab The Registers Bank tab offers the user direct access to the device I2C registers (Figure 15).
- Register description: the register extended name
- Address: the register address (in hexadecimal notation)
- Data: the actual value of the register (in hexadecimal notation)
- R/W: register access type (if read/write or read only). Read-only or reserved registers are displayed in grey.
- Default (the register defaults are defined according to the device datasheet) As additional information, the list of registers highlights in violet every register whose value in the local bank is not aligned with the value stored in the device bank, thus allowing to visualize all the modifications applied only the to local bank. Figure 16 shows an example of this feature. A small reminder of the colors and their meanings is provided in the bottom right corner of the panel.
Figure 16. Registers modified in the local bank
- Read All: reads all the registers from the device bank (in this case the Auto Retrieve option is bypassed).
- Write All: writes the content of the local registers bank (the values shown in the Data column) into the device bank (in this case the Auto Apply option is bypassed).
- Verify All: compares the contents of the local banks with those of the device banks. If any difference is detected, the register is displayed in violet.
- Load Defaults: loads the registers default settings in the APW local register bank. To apply these default settings to the device bank, press Write All.
- Enable Check vs Defaults: enabling this option, the register values stored in the local bank are compared with the default values. If any difference is detected, the registers are displayed in red, otherwise they are displayed in green (Figure 17).
access the device information. the desired bits by left clicking on the binary visualization (Figure 18, highlighted in blue). Figure 19. Local bank register values dumped in the log viewer
2.5 Equalizer Editor
Figure 20. Equalizer Editor tab
- Peak
- High-pass
- Low-pass
- High-shelf
- Low-shelf The upper part of the tab is occupied by the graphical editor and by the design tools (Figure 21). To design a filter by defining its graph, follow the steps described below: 1. Select the kind of filter to be designed by pressing the button on the right side of the graph. It is also possible to select which biquadratic filter of the DUT to write in (Figure 21, highlighted in red). 2. After selecting the filter type, a default gr aph will be plotted. A red dot indicates the filter handler (Figure 21). Move the mouse over this point, left click with the mouse and keep pressed. While doing so, move the mouse pointer around the graph to modify the filter drawing as needed. Release the left button of the mouse when the filter fits the requirements. The filter handler may vary according to the filter type. In Figure 21 a low-pass filter has been selected. For this kind of filter a red vertical line is used to clearly identify the frequency whose gain is -3 dB (i.e. the cutoff frequency).
(Figure 21, highlighted in blue) are coherently updated. Figure 21. Equalizer Editor tab, the upper part (graphing and design tools)
- Select the kind of filter to be designed by pressing the appropriate button on the right
in (Figure 21, highlighted in red).
- Enter the desired parameters in their corresponding fields on the right side of the graph
input field to another control of the panel.
- The graph is immediately plotted, the filter coefficients are computed and they are
desired graph or to adjust the filter graph generated from a set of qualitative parameters. selected biquadratic filter, the table of coefficients is updated coherently.
- Single filter gain limitation: the gain applicable with a single filter can be set between a range varying from +15 dB to -30 dB. This range is fixed and cannot be changed. The limits of this range are marked on the graph with a red line as shown in Figure 21. If a higher gain is desired, this limitation can be bypassed using a chain of two or more filters.
- Auto-scaler: APW offers also the possibility of limiting the overall maximum positive gain applicable with any chain of filters. This is done by enabling the Enable auto-scaler checkbox. This feature automatically computes the difference between the overall filter
Figure 25. Generic processing block
- Select the processing channel
- Select a specific filter among the ones available in the selected channel. Each button of the row at the bottom of the controls corresponds to a filter. Moreover each button, rather than indicating the biquad number, indicates the kind of filter in use according to the following abbreviations: – P: peak filter – F: flat, all-pass – L: low-pass – H: high-pass – < : low-shelf – > : high-shelf – R: reserved (a biquad is reserved when it is used for an alternate function such as a bass enhancement, de-emphasis filter, …)
- Auto-align two or more processing channels. Two or more channels are aligned when their biquadratic filters are configured in the same way. In other words, once a filter or a set of filters has been defined for a processing channel, the Auto-Aligned Channels option allows automatically applying the configuration to all the other linked channels, thus speeding up the setup process. The only exception concerns the reserved biquads. If a filter is reserved, its setting will not be applied to, or will not be changed from, another linked filter. Please be aware that this is a software option offered by the APW that is not related in any way to the physical implementation of the IC under test (thus it is available for every device). Depending on the Sound Terminal ® product, similar options might be available also as hardware-implemented features that can be managed through a dedicated set of device-specific controls. The controls described above will necessarily vary according to the device architecture and may slightly differ from those shown in Figure 24. The center area of the lower part of this tab is occupied by the Equalization Presets (if available for the selected device) and the Channel Controls described above. OUTPUT MIXER Processing Channel 1 BIQ 1 BIQ 2 BIQ N Processing Channel M BIQ 1 BIQ 2 BIQ N INPUT MIXER
button has to be used. Please be aware that this button bypasses the Auto Apply option. overlapped by the graphs of the two filters (green lines) contributing to it. Figure 26. Equalizer Editor tab, miscellaneous options
- By right clicking with the mouse on the graph area, a menu will pop-up (Figure 26): – Add/Delete PEQ Point: a shortcut to add/delete a peak filter in the point selected with the mouse. – Set Ranges: allows setting the ranges shown in the graph. – Show Coordinates Info: when this option is enabled, the coordinates of the point of the graph on which the mouse is located, will pop up. – Show fixed-point plot: by default (option) the APW plots the filter’s frequency response using a floating point notation. Use this option to generate the plots using the 24-bit fixed point notation as used by the Sound Terminal ® products. – Show PEQ Curves: the Equalizer Editor shows by default the whole frequency response of the selected processing channel. Since, as stated before, this curve
APW to plot also the graph of each single filter (Figure 26). – Zoom Out: resets the zoom setup to the default. – Copy To Clipboard: copies the graph to the clipboard. – Show Usage: displays a short explanation about the usage of the Equalizer Editor.
- Moving the mouse wheel on a filter handler will increase or decrease its Q.
- Moving the wheel on any other point of the graph will vary the zoom. Please note that the Sound Terminal® products support different processing sampling frequencies and obviously this frequency is a key factor when plotting the filter graphs or computing the coefficients. The APW is able to take into account this parameter, thus plotting the correct frequency response. Depending on the selected device, this is performed either automatically or by setting manually the sampling frequency. In any case, the frequency in use is shown in the APW status bar.
2.6 Scripts
Another powerful tool offered by the APW is the capability of writing and running a script. Figure 27. Running a script coefficients to their default values (in the local banks).
P <pause> Pauses the execution of the script for the time in milliseconds described by pause. This argument must be an integer value (decimal notation). SECTION_BEGIN <n_iterations> /SECTION END Defines a section of code that has to be cycled n_iteration times (decimal notation). RW <address> <value> Writes values into the I2C register address (hexadecimal notation). RR <address> Reads the I2C register address (hexadecimal notation). RCMP <address> <value> Reads the I2C register address and compares it with value (hexadecimal notation). CWA <address> <coeff 1> <coeff 2> <coeff 3> <coeff 4> <coeff 5> Writes all five coefficients of a biquadratic filter at the location address (hexadecimal notation). CWAF <address> <coeff 1> <coeff 2> <coeff 3> <coeff 4> <coeff 5> The same as CWA (floating point notation). CW1 <address> <coeff> Writes a single coefficient (hexadecimal notation). CW1F <address> <coeff> The same as CW1 (floating point notation). CR1 <address> Reads a single coefficient located at address (hexadecimal notation). CRA <address> Reads five consecutive coefficients starting from location address (hexadecimal notation). CCMP1 <address> <coeff> Reads the coefficient located at address and compares it with coeff (hexadecimal notation). CCMPA <address> <coeff 1> <coeff 2> <coeff 3> <coeff 4> <coeff 5> Reads five consecutive coefficients starting from location address and compares them with coeff 1, …, coeff 5 (hexadecimal notation). APWLINK_INIT_ADC Initializes the APWLink onboard ADC (see AN4118, “APWLink™ USB interface board for Sound Terminal® demonstration boards” for further information).
Reads the I2C register address of the APWLink onboard ADC (hexadecimal notation). Clears the log viewer contents. Dumps all the device registers. Displays a list of the available commands in the Log Viewer. It is the comment token. Every word after this tag will be ignored by the command parser. Figure 28. Events in logger upon completion of a script
- Green: the operation has ended successfully.
- Red: the operation failed.
- Orange: the operation has been performed with anomalous parameters (e.g. 5 coefficients have been written, starting from an address not corresponding to a biquadratic filter).
2.7 Command shell
be displayed in the Log Viewer. The Command Shell will appear as depicted in Figure 31. Figure 29. Location of Command Shell button Figure 30. Drop-down menu Figure 31. Command Shell window
2.8 Importing a filter
option that can be found in the File menu (Figure 32). Figure 32. File menu, Filter import wizard Figure 33. Filter import wizard
- Enable auto-scaler (manual gain adjustment): the user is given the choice of the attenuation to apply. The resulting global frequency response envelope will be preserved, although attenuated by the selected gain. Under these circumstances the attenuation might be compensated using the volume controls.
- Disable auto-scaler (skip invalid filters, if any): the scaling procedure is disabled and the filters that cannot be applied are skipped. The overall frequency response will differ from the desired response.
Figure 35. Filter import options Once the scaling options are set, the filters are imported by pressing the Import filter button. process please refer to Appendix D: Filter import wizard.
2.9 Exporting filter coefficients
- C/C++ arrays format (.c file)
- Matlab® arrays format (.m file) The first format is very useful for MCU programming, while the second one might be used for in-depth filter analysis. Left click on the File menu to enable these features (Figure 36).
Figure 36. Exporting coefficients
2.10 Miscellaneous controls
Figure 39. Miscellaneous controls
- Device power-up: controls the device standby. This control physically handles the device standby pin.
- Reset: controls the reset of the device. This control physically handles the device reset pin (thus it forces the reset). It also writes the device default values into the local bank as described in the datasheet. It performs the same operations performed by the RESET token in the script (50 milliseconds reset pulse).
- Initialize: applies the minimum group of settings to bring the device to an operational status (these settings may vary from product to product).
- Bridge power-up: controls the power-up of the bridge. Below these controls is located the Configuration frame (highlighted in blue). The APW, indeed offers the possibility of saving or loading a device configuration in order to avoid repeating long setup procedures. According to the definition given in the Introduction, the device configuration will comprise the registers bank, the coefficients bank and the filters
bank. Each configuration is saved in a file with extension .apc. The functionalities of each button include:
- New: resets the APW controls and the device to allow the user to specify a new setup starting from the device default settings.
- Open: opens a configuration file and, if the Auto Apply option is set, it also applies the configuration to the device banks.
- Save: saves the device configuration in a configuration file (see Appendix B: Audio processor configuration file).
- Apply: applies the configuration loaded with the Open button (this control bypasses the Auto Apply preference). Once the configuration has been applied, a window will pop up to inform the user of the modifications.
- Retrieve: reads the device configuration and sets the APW control coherently (this control bypasses the Auto Retrieve preference). Finally, the Presets frame offers the possibility of storing more than one configuration and switching between them on the fly, thus avoiding the Load/Apply procedure. Eight presets are available, the store and recall procedures are as follows:
- To Store: 1. Press the Store button 2. Select the memory in which the user wants to store the configuration
- To Load: 1. Press the Recall button 2. The APW will show the available presets 3. Select the memory from which the user wants to load the configuration Please note that for each supported device the APW has a dedicated presets folder (Figure 1), thus ensuring that different presets for different devices will not be overwritten. The device configuration and presets options are also available through the File and Presets menu of the APW main window. The lower part of the miscellaneous controls includes the Logs Viewer, the Exit and the Help buttons.
UM1545 Device-specific controls Doc ID 023225 Rev 1 39/64
3 Device-specific controls
Apart from the controls described in Section 2: APW walkthrough, the APW offers, for each supported device, a dedicated set of tabs. Since these controls will vary significantly from product to product, a dedicated Help menu will be provided for each device.
F.A.Q.s UM1545 40/64 Doc ID 023225 Rev 1 4 F.A.Q.s In this section we provide a few guidelines to answer the most common questions.
4.1 Questions & procedures
Q: "I need to interface with a device that has been already set from an external controller. How do I retrieve these settings with the APW?" A: Follow this procedure: 1. Be sure that the interface is not connected to the device, start the APW and set the no operation option in the Startup Preferences. Save the preferences and close the program. 2. Connect the interface and start the APW. 3. Press the Retrieve button. 4. Press the Save button to save the configuration. Q: "I want to apply all the settings at once and not step-by-step. How do I set the APW?" A: Follow this procedure: 1. Uncheck the Auto Apply option in the preferences dialog. 2. Apply all the desired settings using the controls offered by the APW. 3. Select the Registers Bank tab and press the Write All button. Q: "I'm not familiar with the device but I'd like to know what registers are changed when I configure it using the APW, is this possible?" A: Follow this procedure: 1. Uncheck the Auto Apply option in the preferences dialog. 2. Apply all the desired settings using the controls offered by the APW. 3. Select the Registers Bank tab and move along the register list. Those R/W registers marked in violet are the ones you're interested in. or this one: 1. Configure the device as needed. 2. Go to the Registers Bank tab and enable the Enable Check vs Defaults option. 3. Now the modified registers are displayed in red, move along the list and check. Q: "This device has too many registers and moving along their list to find those I want to modify takes too much time, is it possible to show only those I'm interested in?" A: Of course it is. Use the Register List Filter drop-down menu to filter the device registers depending on their function. Q: "I'm setting up the device but I do not get the expected results. How do I check if the configuration of the device is coherent with the one depicted in the APW controls?" A: Follow this procedure: 1. Go to the Register Bank tab and press the Verify All button. 2. When the previous operation is over, move along the registers list. The APW will display in violet the register whose value is different from the expected one.
UM1545 F.A.Q.s Doc ID 023225 Rev 1 41/64 Q: "I'm not comfortable with hexadecimal notation when editing the coefficient values in the control panel. Can I use the floating point one?" A: Of course: uncheck Show Values in Hexadecimal in the preference window and you'll be able to enter the values in decimal notation. Please be aware that the floating point notation implies a long number of significant decimal digits that cannot be displayed all at once. As a result some digits might be hidden from view but can be easily displayed by highlighting the whole number with the mouse. Please remember that the coefficients range is from -1 to 1. Q: "The reset pulse length applied by default using the RESET command in the script does not fit my needs. Can I set a different value?" A: "There's no direct way to change the reset pulse length in a script. However, the reset procedure can be manually executed using the SET_RST command to move the reset line. Just use the following syntax: The reset pulse will now last 200 milliseconds. This value can be changed as needed. Q: "I want to add a note in the log to mark a section of interest for my work. How do I do that?" A: Follow this procedure: 1. Press the Add Note button in the Log Viewer window. 2. Write the note and press enter. The note will be immediately displayed.
4.2 Problems
Q: "The device does not respond to the APW controls" A: The possible causes are: a. The device might be in standby. b. The device may need to be initialized. c. The Auto Apply option is unchecked. Q: "I do not get any I 2C failure message, but I keep reading 00h or FFh. What's wrong?" A: The possible causes are: a. The interface board is not properly connected to the ST Sound Terminal® device board. b. The interface board is not correctly powered. Q: "I'm importing a LinearX LEAP© generated file but the import procedure always skips a filter. What's wrong?" A: The possible causes are: a. The Disable auto-scaler option is selected and one of the coefficients is out of range. b. One filter might be unstable and to avoid dangerous effects it is not applied to the device. SET_RST 0 # set RESET line at 0 (low_level) P 200 # pause 200 ms SET_RST 1 # set RESET line at 1 (high level)
F.A.Q.s UM1545 42/64 Doc ID 023225 Rev 1 Q: "I'm using an APWLink interface board but it is not listed in the APW startup dialog". A: The possible causes are: a. APWLink is a USB device: once such a device is connected, a short amount of time is required by the OS to recognize and initialize it. This time varies, depending on the computer. Close the APW and wait a few seconds, then start it again. b. Another APW might be opened and using the APWLink. Close every APW session and try again. Q: "The DUT stopped reacting to I 2C commands in the middle of an APW session" A: "A short-circuit either on the DUT board or on the APWLink board might have occurred. Under such circumstances the FTDI© chip on the APWLink board might hang. Close the APW, unplug the interface board and restart from the beginning".
Figure 44. High-shelf filter (gain -10 dB, freq 1 kHz, slope 1) positive also. In any case, the gain of the low frequencies is always null.
Audio processor configuration file UM1545 46/64 Doc ID 023225 Rev 1 Appendix B Audio processor configuration file The following example of a device configuration file has extension .apc. Moving along the text, the registers bank, the coefficients bank and the filters bank, that together comprise the device configuration as described in the introduction of Section 2.1: IntroductionSection 2: APW walkthrough, can be easily identified. # Date: Wednesday, 12/November/'08 # Interface: Simulation (NONE) # Product: STA339BWS Reg[00h] = 63h ## Configuration Register A Reg[01h] = 80h ## Configuration Register B Reg[02h] = 97h ## Configuration Register C Reg[03h] = 40h ## Configuration Register D Reg[04h] = C2h ## Configuration Register E Reg[05h] = 5Ch ## Configuration Register F Reg[06h] = 10h ## Master Mute Reg[07h] = FFh ## Master Volume Reg[08h] = 60h ## Channel 1 Volume Reg[09h] = 60h ## Channel 2 Volume Reg[0Ah] = 60h ## Channel 3 Volume Reg[0Bh] = 80h ## Audio Preset Register 1 Reg[0Ch] = 00h ## Audio Preset Register 2 Reg[0Dh] = 00h ## Reserved Reg[0Eh] = 00h ## Channel 1 Config Reg[0Fh] = 40h ## Channel 2 Config Reg[10h] = 80h ## Channel 3 Config Reg[11h] = 77h ## Bass and Treble Tone Control Reg[12h] = 6Ah ## Limiter 1 Attack/Release Rate Reg[13h] = 69h ## Limiter 1 Attack/Release Threshold Reg[14h] = 6Ah ## Limiter 2 Attack/Release Rate Reg[15h] = 69h ## Limiter 2 Attack/Release Threshold Reg[16h] = 00h ## Coefficient Address Bits 5..0 Reg[17h] = 00h ## Coefficient b1 Data Bits 23..16 Reg[18h] = 00h ## Coefficient b1 Data Bits 15..8 Reg[19h] = 00h ## Coefficient b1 Data Bits 7..0 Reg[1Ah] = 00h ## Coefficient b2 Data Bits 23..16 Reg[1Bh] = 00h ## Coefficient b2 Data Bits 15..8 Reg[1Ch] = 00h ## Coefficient b2 Data Bits 7..0 Reg[1Dh] = 00h ## Coefficient a1 Data Bits 23..16 Reg[1Eh] = 00h ## Coefficient a1 Data Bits 15..8 Reg[1Fh] = 00h ## Coefficient a1 Data Bits 7..0 Reg[20h] = 00h ## Coefficient a2 Data Bits 23..16 Reg[21h] = 00h ## Coefficient a2 Data Bits 15..8 Reg[22h] = 00h ## Coefficient a2 Data Bits 7..0 Reg[23h] = 00h ## Coefficient b0 Data Bits 23..16 Reg[24h] = 00h ## Coefficient b0 Data Bits 15..8 Reg[25h] = 00h ## Coefficient b0 Data Bits 7..0
UM1545 Audio processor configuration file Doc ID 023225 Rev 1 47/64 Reg[26h] = 00h ## Coefficient Write Control Reg[27h] = 1Ah ## Max Power Correction Config Msb Reg[28h] = C0h ## Max Power Correction Config Lsb Reg[29h] = F3h ## Variable Distortion Compensation Msb Reg[2Ah] = 33h ## Variable Distortion Compensation Lsb Reg[2Bh] = 00h ## Fault Detect Recovery Bits Msb Reg[2Ch] = 0Ch ## Fault Detect Recovery Bits Lsb Reg[2Dh] = 7Fh ## Device Status Reg[2Eh] = 00h ## Bist Activate Reg[2Fh] = 00h ## Bist End Reg[30h] = 00h ## Bist Bad Reg[31h] = 00h ## EQ Coeff and DRC Configuration Reg[32h] = 30h ## Limiter 1 Ext.Attack Threshold Reg[33h] = 30h ## Limiter 1 Ext.Release Threshold Reg[34h] = 30h ## Limiter 2 Ext.Attack Threshold Reg[35h] = 30h ## Limiter 2 Ext.Release Threshold Reg[36h] = 00h ## Extended Configuraton Register Reg[37h] = 00h ## EQ Soft Volume Config (fade-in) Reg[38h] = 00h ## EQ Soft Volume Config (fade-out) Reg[39h] = 01h ## DRC RMS Filter Coefficient C0 Bits 25..16 Reg[3Ah] = EEh ## DRC RMS Filter Coefficient C0 Bits 15..8 Reg[3Bh] = FFh ## DRC RMS Filter Coefficient C0 Bits 7..0 Reg[3Ch] = 7Eh ## DRC RMS Filter Coefficient C1 Bits 25..16 Reg[3Dh] = C0h ## DRC RMS Filter Coefficient C1 Bits 15..8 Reg[3Eh] = 26h ## DRC RMS Filter Coefficient C1 Bits 7..0 Reg[3Fh] = 00h ## Reserved Coef[000h] = 000000h ## Coefficient 0x00 - C1H10 (b1/2) Coef[001h] = 000000h ## Coefficient 0x01 - C1H11 (b2) Coef[002h] = 000000h ## Coefficient 0x02 - C1H12 (a1/2) Coef[003h] = 000000h ## Coefficient 0x03 - C1H13 (a2) Coef[004h] = 400000h ## Coefficient 0x04 - C1H14 (b0/2) Coef[005h] = 000000h ## Coefficient 0x05 - C1H20 (b1/2) Coef[006h] = 000000h ## Coefficient 0x06 - C1H21 (b2) Coef[007h] = 000000h ## Coefficient 0x07 - C1H22 (a1/2) Coef[008h] = 000000h ## Coefficient 0x08 - C1H23 (a2) Coef[009h] = 400000h ## Coefficient 0x09 - C1H24 (b0/2) Coef[00Ah] = 000000h ## Coefficient 0x0A - C1H30 (b1/2) Coef[00Bh] = 000000h ## Coefficient 0x0B - C1H31 (b2) Coef[00Ch] = 000000h ## Coefficient 0x0C - C1H32 (a1/2) Coef[00Dh] = 000000h ## Coefficient 0x0D - C1H33 (a2) Coef[00Eh] = 400000h ## Coefficient 0x0E - C1H34 (b0/2) Coef[00Fh] = 000000h ## Coefficient 0x0F - C1H40 (b1/2) Coef[010h] = 000000h ## Coefficient 0x10 - C1H41 (b2) Coef[011h] = 000000h ## Coefficient 0x11 - C1H42 (a1/2) Coef[012h] = 000000h ## Coefficient 0x12 - C1H43 (a2) Coef[013h] = 400000h ## Coefficient 0x13 - C1H44 (b0/2) Coef[014h] = 000000h ## Coefficient 0x14 - C2H10 (b1/2) Coef[015h] = 000000h ## Coefficient 0x15 - C2H11 (b2) Coef[016h] = 000000h ## Coefficient 0x16 - C2H12 (a1/2) Coef[017h] = 000000h ## Coefficient 0x17 - C2H13 (a2) Coef[018h] = 400000h ## Coefficient 0x18 - C2H14 (b0/2) Coef[019h] = 000000h ## Coefficient 0x19 - C2H20 (b1/2)
Audio processor configuration file UM1545 48/64 Doc ID 023225 Rev 1 Coef[01Ah] = 000000h ## Coefficient 0x1A - C2H21 (b2) Coef[01Bh] = 000000h ## Coefficient 0x1B - C2H22 (a1/2) Coef[01Ch] = 000000h ## Coefficient 0x1C - C2H23 (a2) Coef[01Dh] = 400000h ## Coefficient 0x1D - C2H24 (b0/2) Coef[01Eh] = 000000h ## Coefficient 0x1E - C2H30 (b1/2) Coef[01Fh] = 000000h ## Coefficient 0x1F - C2H31 (b2) Coef[020h] = 000000h ## Coefficient 0x20 - C2H32 (a1/2) Coef[021h] = 000000h ## Coefficient 0x21 - C2H33 (a2) Coef[022h] = 400000h ## Coefficient 0x22 - C2H34 (b0/2) Coef[023h] = 000000h ## Coefficient 0x23 - C2H40 (b1/2) Coef[024h] = 000000h ## Coefficient 0x24 - C2H41 (b2) Coef[025h] = 000000h ## Coefficient 0x25 - C2H42 (a1/2) Coef[026h] = 000000h ## Coefficient 0x26 - C2H43 (a2) Coef[027h] = 400000h ## Coefficient 0x27 - C2H44 (b0/2) Coef[028h] = 000000h ## Coefficient 0x28 - C12H0 (b1/2) Coef[029h] = 000000h ## Coefficient 0x29 - C12H1 (b2) Coef[02Ah] = 000000h ## Coefficient 0x2A - C12H2 (a1/2) Coef[02Bh] = 000000h ## Coefficient 0x2B - C12H3 (a2) Coef[02Ch] = 400000h ## Coefficient 0x2C - C12H4 (b0/2) Coef[02Dh] = 000000h ## Coefficient 0x2D - C3H0 (b1/2) Coef[02Eh] = 000000h ## Coefficient 0x2E - C3H1 (b2) Coef[02Fh] = 000000h ## Coefficient 0x2F - C3H2 (a1/2) Coef[030h] = 000000h ## Coefficient 0x30 - C3H3 (a2) Coef[031h] = 400000h ## Coefficient 0x31 - C3H4 (b0/2) Coef[032h] = 7FFFFFh ## Coefficient 0x32 - Channel 1 Pre-scale Coef[033h] = 7FFFFFh ## Coefficient 0x33 - Channel 2 Pre-scale Coef[034h] = 7FFFFFh ## Coefficient 0x34 - Channel 1 Post-scale Coef[035h] = 7FFFFFh ## Coefficient 0x35 - Channel 2 Post-scale Coef[036h] = 7FFFFFh ## Coefficient 0x36 - Channel 3 Post-scale Coef[037h] = 5A9DF7h ## Coefficient 0x37 - Twarn/Oc Limit Coef[038h] = 7FFFFFh ## Coefficient 0x38 - Channel 1 Mix 1 Coef[039h] = 000000h ## Coefficient 0x39 - Channel 1 Mix 2 Coef[03Ah] = 000000h ## Coefficient 0x3A - Channel 2 Mix 1 Coef[03Bh] = 7FFFFFh ## Coefficient 0x3B - Channel 2 Mix 2 Coef[03Ch] = 400000h ## Coefficient 0x3C - Channel 3 Mix 1 Coef[03Dh] = 400000h ## Coefficient 0x3D - Channel 3 Mix 2 Coef[03Eh] = 000000h ## Reserved Coef[03Fh] = 000000h ## Reserved Filt[Ch:0][00] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 0 Filt[Ch:0][01] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 1 Filt[Ch:0][02] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 2 Filt[Ch:0][03] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 3 Filt[Ch:0][04] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 4 Filt[Ch:0][05] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 5 Filt[Ch:0][06] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 6 Filt[Ch:0][07] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 7 Filt[Ch:1][00] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 0 Filt[Ch:1][01] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 1 Filt[Ch:1][02] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 2 Filt[Ch:1][03] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 3 Filt[Ch:1][04] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 4 Filt[Ch:1][05] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 5 Filt[Ch:1][06] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 6 Filt[Ch:1][07] = type:F gain:+0.000000 freq:01000 q:1.414000 ## BiQuad 7
The following example of a script file has extension .aps. # Test script used to show available commands # and their usage. # This is a comment line # Note: all values are in hex but the SECTION # repeat counter. # List of available commands # "RW" Register Write # "CW1" Coefficient write single (hex value) # "CW1F" Coefficient write single (float value) # "CWA" Coefficient write all (5 coeffs. - hex values) # "CWAF" Coefficient write all (5 coeffs. - float values) # "CR1" Coefficient read single # "CRA" Coefficient read all (5) # "CCMP1" Coefficient compare single # "CCMPA" Coefficient compare all (5) # "P" Pause # "SECTION_BEGIN" Section begin marker (then repeat) # "SECTION_END" Section end marker # "RESET" Device reset (high->low->high cycle) # "SET_RST" Set RESET line # NOTE: The CWA/CWAF commands make use of the multi-write coeffs. # capability only if the coeff. start index is aligned with # a bi-quadratic starting address. Single-write operation is # used otherwise. In any case coeffienct order on the command line # is the same as per the relevant device RAM mapping. # For instance:
RESET # reset the device P 125 # pause 125 ms SET_RST 0 # set RESET line at 0 (low_level) P 200 # pause 200 ms SET_RST 1 # set RESET line at 1 (high_level) P 200 # pause 200 ms RW 01 23 # write value 23h in reg. 01h CW1 002 123456 # write value 123456h in coeff. 02h CR1 002 # read coeff. 02h CW1F 003 0.500 # coefficient single write with float value CW1F 004 -1.00 # coefficient single write with float value CW1F 005 1.00 # coefficient single write with float value SECTION_BEGIN 100 RR 0A RW 0A CC RCMP 0A CC CWA 005 ABCDEF 123456 6789AB 315683 987654 CWA 00A ABCDEF 123456 6789AB 315683 987654 CCMPA 005 ABCDEF 123456 6789AB 315683 987654 CCMPA 00A ABCDEF 123456 6789AB 315683 987654 CWA 005 347267 ABEFCD 937583 AFEBCD 268439 CWA 00A 347267 ABEFCD 937583 AFEBCD 268439 CCMPA 000 347267 ABEFCD 937583 AFEBCD 268439 CCMPA 005 347267 ABEFCD 937583 AFEBCD 268439 SECTION_END CWA 005 347267 ABEFCD 937583 AFEBCD 268439 CWA 00A 347267 ABEFCD 937583 AFEBCD 268439 #RESET
UM1545 Filter import wizard Doc ID 023225 Rev 1 51/64 Appendix D Filter import wizard A complete description of the LinearX LEAP© suite file import procedure is as follows: 1. Press the File menu and select the Filter import wizard 2. Press the Browse button and select the file to import 3. Check the outcome of the filter analysis, three cases are possible: a) All coefficients are in range ( Figure 45). In this case the auto-scaler feature is not required and the filters can be imported without hesitation. However, the user is given the option to apply a user-definable attenuation. b) One or more coefficients exceeds the allowable range, the scaling is possible and the required attenuation can be compensated (Figure 46). In this case the auto- scaler feature is recommended. Choose between the automatic gain (to preserve the overall frequency response), or the manual gain (to preserve its envelope, but not the gain). The auto-scaler can be disabled as well. Under these circumstances the invalid filters are skipped and the overall frequency response is unpredictable. c) One or more coefficients exceeds the allowable range, the scaling is possible but the attenuation required cannot be compensated (Figure 47). In this case the auto-scaler feature is recommended. Choose between the automatic gain (to minimize the gain mismatch between the desired overall frequency response and the actual response and to preserve the response envelope), or the manual gain (to preserve the envelope, but not minimize the gain mismatch). The auto-scaler can be disabled as well. Under these circumstances the invalid filters are skipped and the overall frequency response is unpredictable. In the case of processing frequency mismatch (Figure 48), use the LinearX LEAP © suite to recompute the coefficients at a sampling frequency supported by the device in use, then repeat the analysis with the new coefficients.
Figure 45. Filter import wizard, all coefficients in range
Figure 46. Filter import wizard, adjustable attenuation (one coefficient out of range)
Figure 47. Filter import wizard, gain not adjustable (one coefficient out of range)
Figure 48. Filter import wizard, wrong processing frequency
Exporting coefficients UM1545 56/64 Doc ID 023225 Rev 1 Appendix E Exporting coefficients The following two examples of the available formats are respectively the C/C++ arrays and the Matlab® arrays. In the C/C++ syntax example, the stability information shows the magnitude of the filter poles and is provided to avoid exporting unstable filters with unpredictable behaviors. Speaker_EQ_Table_48000[] = { {0x00,0x809120},{0x01,0x7EE0FE},{0x02,0x7F6EE0},{0x03,0x8118C8},{0x04,0x4045D5}, // 48KFs, Biquad1, Address: 0x00~0x04 (stability: 0.995706) {0x05,0x80D639},{0x06,0x7F2974},{0x07,0x7F28A8},{0x08,0x80F10F},{0x09,0x3F95F0}, // 48KFs, Biquad2, Address: 0x05~0x09 (stability: 0.996315) {0x0A,0x8786A9},{0x0B,0x77CE73},{0x0C,0x787957},{0x0D,0x8A9AF7},{0x0E,0x412486}, // 48KFs, Biquad3, Address: 0x0A~0x0E (stability: 0.957677) {0x0F ,0x81EFC8},{0x10,0x7BD84F},{0x11,0x7E1038},{0x12,0x83ADC1},{0x13,0x403CEF}, // 48KFs, Biquad4, Address: 0x0F~0x13 (stability: 0.985525) {0x14,0x8005C8},{0x15,0x6EF977},{0x16,0x4FEB18},{0x17,0xBA3B90},{0x18,0x58B9B3}, // 48KFs, Biquad5, Address: 0x14~0x18 (stability: 0.738280) {0x19,0x841969},{0x1A,0x785560},{0x1B,0x7BE697},{0x1C,0x8825A7},{0x1D,0x403D7B}, // 48KFs, Biquad6, Address: 0x19~0x1D (stability: 0.992950) {0x1E,0x8533B0},{0x1F ,0x75AB4A},{0x20,0x7ACC50},{0x21,0x881BD5},{0x22,0x3F8A7B} // 48KFs, Biquad7, Address: 0x1E~0x22 (stability: 0.967807)
UM1545 Exporting coefficients Doc ID 023225 Rev 1 57/64 % Coefficient array for 96 KHz processing frequency % Creation date: Wednesday, 04/March/'09 % Selected product: STA339BWS % Note: only channel 0 is exported % Biquad 00 FILT00_B = [1.004262 -1.991142 0.991241]; FILT00_A = [1.000000 -1.991142 0.991431]; FILT00_B0 = 1.004262; % Hex: 4045D5h Address: 04h FILT00_B1 = -1.991142; % Hex: 809120h Address: 00h FILT00_B2 = 0.991241; % Hex: 7EE0FEh Address: 01h FILT00_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT00_A1 = -1.991142; % Hex: 7F6EE0h Address: 02h FILT00_A2 = 0.991431; % Hex: 8118C8h Address: 03h % Biquad 01 FILT01_B = [0.993526 -1.986925 0.993453]; FILT01_A = [1.000000 -1.986856 0.992643]; FILT01_B0 = 0.993526; % Hex: 3F95F0h Address: 09h FILT01_B1 = -1.986925; % Hex: 80D639h Address: 05h FILT01_B2 = 0.993453; % Hex: 7F2974h Address: 06h FILT01_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT01_A1 = -1.986856; % Hex: 7F28A8h Address: 07h FILT01_A2 = 0.992643; % Hex: 80F10Fh Address: 08h % Biquad 02 FILT02_B = [1.017854 -1.882406 0.935988]; FILT02_A = [1.000000 -1.882406 0.917146]; FILT02_B0 = 1.017854; % Hex: 412486h Address: 0Eh FILT02_B1 = -1.882406; % Hex: 8786A9h Address: 0Ah FILT02_B2 = 0.935988; % Hex: 77CE73h Address: 0Bh FILT02_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT02_A1 = -1.882406; % Hex: 787957h Address: 0Ch FILT02_A2 = 0.917146; % Hex: 8A9AF7h Address: 0Dh % Biquad 03 FILT03_B = [1.003719 -1.969740 0.967539]; FILT03_A = [1.000000 -1.969740 0.971260]; FILT03_B0 = 1.003719; % Hex: 403CEFh Address: 13h FILT03_B1 = -1.969740; % Hex: 81EFC8h Address: 0Fh FILT03_B2 = 0.967539; % Hex: 7BD84Fh Address: 10h FILT03_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT03_A1 = -1.969740; % Hex: 7E1038h Address: 11h FILT03_A2 = 0.971260; % Hex: 83ADC1h Address: 12h
Exporting coefficients UM1545 58/64 Doc ID 023225 Rev 1 % Biquad 04 FILT04_B = [1.386334 -1.999647 0.866988]; FILT04_A = [1.000000 -1.248724 0.545057]; FILT04_B0 = 1.386334; % Hex: 58B9B3h Address: 18h FILT04_B1 = -1.999647; % Hex: 8005C8h Address: 14h FILT04_B2 = 0.866988; % Hex: 6EF977h Address: 15h FILT04_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT04_A1 = -1.248724; % Hex: 4FEB18h Address: 16h FILT04_A2 = 0.545057; % Hex: BA3B90h Address: 17h % Biquad 05 FILT05_B = [1.003752 -1.935949 0.940105]; FILT05_A = [1.000000 -1.935949 0.936351]; FILT05_B0 = 1.003752; % Hex: 403D7Bh Address: 1Dh FILT05_B1 = -1.935949 % Hex: 841969h Address: 19h FILT05_B2 = 0.940105; % Hex: 785560h Address: 1Ah FILT05_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT05_A1 = -1.935949; % Hex: 7BE697h Address: 1Bh FILT05_A2 = 0.936351 % Hex: 8825A7h Address: 1Ch % Biquad 06 FILT06_B = [0.992827 -1.918720 0.919290]; FILT06_A = [1.000000 -1.918720 0.936651]; FILT06_B0 = 0.992827; % Hex: 3F8A7Bh Address: 22h FILT06_B1 = -1.918720; % Hex: 8533B0h Address: 1Eh FILT06_B2 = 0.919290; % Hex: 75AB4Ah Address: 1Fh FILT06_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT06_A1 = -1.918720 % Hex: 7ACC50h Address: 20h FILT06_A2 = 0.936651; % Hex: 881BD5h Address: 21h % Biquad 07 FILT07_B = [1.000000 0.000000 0.000000]; FILT07_A = [1.000000 0.000000 0.000000]; FILT07_B0 = 1.000000; % Hex: 400000h Address: 2Ch FILT07_B1 = 0.000000; % Hex: 000000h Address: 28h FILT07_B2 = 0.000000; % Hex: 000000h Address: 29h FILT07_A0 = 1.000000; % Hex: 7FFFFFh Address: ---- FILT07_A1 = 0.000000; % Hex: 000000h Address: 2Ah FILT07_A2 = 0.000000; % Hex: 000000h Address: 2Bh
The following table lists the key shortcuts implemented in the APW. Table 1. Shortcut table
Software license agreement and disclaimer UM1545 60/64 Doc ID 023225 Rev 1 Appendix G Software license agreement and disclaimer Copyright (C) STMicroelectronics N.V. ("ST") 2008. Notice: This Software (including, as the case may be, software in binary form, documentation and other related items) is provided by ST under the terms of this license. By using this Software, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. All rights not expressly granted under this license are reserved. License Agreement Grant: Permission to install, use and display the Software on a computer which is owned by you and which is located at your premises, is hereby granted to you on a free and non-exclusive basis, to evaluate and configure Sound Terminal devices. It is understood that use of the Software installed at your premises by your subcontractors, associates and affiliates, shall be considered as use by you for the purpose of this license agreement. Restrictions: Unless explicitly stated otherwise herein, no permission is granted to copy, and/or modify the Software for any purpose whatsoever. The Software is non-transferable, non sub- licensable, and may not be distributed in any way by you. Any modification of the Software by you requires prior written approval by ST. Except as explicitly authorized herein, you agree not to: c. Sell, assign, sublicense, lease, rent, timeshare, grant a security interest in, distribute or otherwise make available or transfer the Software; d. Copy or reproduce the Software; e. Modify, translate, adapt, reverse engineer, decompile, disassemble (except and only to the extent applicable law specifically prohibits such restriction) or otherwise attempt to (i) discover any source code (to the extent the Software is provided in object code), or (ii) create derivative works based on the Software or (iii) merge the Software into any other software; ST reserves all rights not expressly granted to you hereunder, and your use of the Software for any other purpose is expressly prohibited. Copyright statements, trademarks and publications: The name and trademarks of ST may NOT be used in advertising or publicity pertaining to the Software or results obtained therefrom without specific, written prior permission by ST. Title to copyright in this Software will at all times remain with ST. Y ou shall not without prior written permission by ST publish documents referring to the Software or to results based on the Software. Y ou shall ensure that all Software references, copyright statements and license conditions are not altered or removed from the Software.
UM1545 Software license agreement and disclaimer Doc ID 023225 Rev 1 61/64 No warranty: THIS SOFTWARE IS PROVIDED BY ST "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, OF SATISFACTORY QUALITY, AND FITNESS FOR A PARTICULAR PURPOSE OR USE ARE DISCLAIMED. ST MAKES NO REPRESENTATION THAT THE SOFTWARE WILL NOT INFRINGE ANY PATENT, COPYRIGHT, TRADE SECRET OR OTHER PROPRIETARY RIGHT OF A THIRD PARTY. ST does not warrant that use in whole or in part of the Software will be uninterrupted or error free, will meet your requirements, or will operate with the combination of hardware and software selected by you. ST is under no obligation to provide bug fixes, patches, upgrades or other enhancements or derivatives of the features, functionality or performance of this Software. ALL WARRANTIES, CONDITIONS OR OTHER TERMS IMPLIED BY LAW ARE EXCLUDED TO THE FULLEST EXTENT PERMITTED BY LAW. Y ou acknowledge that the Software, and processes and products related thereto are not designed nor authorized for use in life supporting devices. Y ou agree to hold ST free and harmless from any liability in connection with the use of the Software and products or processes related in any way thereto. No liability: ST SHALL HAVE NO LIABILITY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA OR PROFITS, OR BUSINESS INTERRUPTION, HOWEVER CAUSED AND ON ANY THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Intellectual property protection: Y ou may not include this Software in whole or in part in any patent or patent application in respect of any use or application of the Software by you. Termination: This license shall terminate without any compensation, with immediate effect and without notice if you fail to comply with any of the terms of this license, or if you institute litigation against ST or any Affiliate of ST. Upon termination of this license, you agree not to use the Software for any purpose whatsoever, to destroy the Software and any copies thereof in your possession. Compliance with laws: Y ou agree to comply with all applicable laws, regulations, decrees, ordinances and the like, and shall hold ST free and harmless from, and indemnify ST for any loss or damage, including legal costs, arising from their infringement.
Software license agreement and disclaimer UM1545 62/64 Doc ID 023225 Rev 1 Applicable Law: This Agreement shall be governed by and construed and enforced in accordance with the laws of Switzerland without regard to its rules on conflict of laws or any other rules that would result in the application of a different body of law or to the United Nations Convention on Contracts for the International Sale of Goods. Y ou hereby consent to the exclusive jurisdiction of the courts of Geneva, Switzerland. Entire license: This license, constitutes the entire agreement between you and ST with respect to the Software, and ST shall not be bound by any conditions, definitions, warranties, understandings or representations with respect to the Software other than as expressly provided herein.
5 Revision history
Table 2. Document revision history 22-Jun-2012 1 Initial release.