FAQ: SigmaDSP
(last updated August 2007)
Download this FAQ in PDF format
(pdf, 63,716 bytes)
General SigmaDSP
- Which SigmaDSP parts are qualified for automotive applications?
- What 3rd-party algorithms are available for SigmaDSP?
- What is needed to boot a SigmaDSP processor?
Q: Which SigmaDSP parts are qualified for automotive applications?
A: The AD1953, AD1940, and AD1941 are all qualified and characterized over the –40° to 105° C temperature range.
Q: What 3rd-party algorithms are available for SigmaDSP?
A: There are a wide range of 3rd-party algorithms available for SigmaDSP, all of which are available as plug-ins for SigmaStudio. These algorithms include:
| Dolby | ||
| Dolby ProLogicII Dolby Virtual Speaker Dolby Headphone Dolby ProLogicIIx |
||
| SRS | ||
| Wow WowHD TruSurroundXT TruBass Focus CircleSurroundII Dialog Clarity CS Auto |
||
| Waves | ||
| MaxxBass | ||
| BBE | ||
| BBE BBE MP Viva |
In order to get these plug-ins, you must first have an evaluation agreement with the IP supplier, who will then let us know that we can send the plug-in to you.
Q: What is needed to boot a SigmaDSP processor?
A: Any of the SigmaDSPs can be booted from a system's host microcontroller. The ADAU1701 and ADAU1702 also have a selfboot feature that allows them to boot from an EEPROM without a microcontroller being present in the system.
SigmaStudio
- How can I get a copy of SigmaStudio?
- Is there a trial version of SigmaStudio?
- I already have a copy of SigmaStudio. How can I get the latest version?
- What documentation is available for SigmaStudio?
- How can I write my own algorithms in SigmaStudio?
- After I link-compile-download my project, the bar at the bottom of SigmaStudio turns green. Does this mean my program downloaded to the DSP successfully?
- How can I check that I have proper communication between SigmaStudio and the SigmaDSP hardware?
- How do I change the sampling rate of my design in SigmaStudio?
- When should I use double precision and when should I use single precision filters?
- Where can I see how much of the SigmaDSP resources my project consumes?
- My signal flow is running out of instructions. What can I do to save resources?
- When the signal input to my compressor is above 6 dB, the compression stops and my signal starts increasing. What's happening?
- My application requires that I use multiple blocks that generate many addresses that I then have to map to my microcontroller code. Can I fix specific memory addresses for specific blocks to avoid all this mapping overhead?
Q: How can I get a copy of SigmaStudio?
A: The full version of the software is provided with all SigmaDSP evaluation and demo boards. This includes everything needed to take a project from evaluation to production and includes support for the software.
Q: Is there a trial version of SigmaStudio?
A: Yes, you can download a trial version from our ftp site. For access, please send an email to sigmadsp@analog.com with a description of your application. This version is identical to the full version, except that the save function is disabled and it's provided without support.
Q: I already have a copy of SigmaStudio. How can I get the latest version?
A: To get the latest version of the SigmaStudio software, send an email to sigmadsp@analog.com.
Q: What documentation is available for SigmaStudio?
A: SigmaStudio has an extensive Help file included with the installation. This explains the operation of all of the software's features and signal processing blocks.
Q: How can I write my own algorithms in SigmaStudio?
A: SigmaStudio includes a library of low-level signal processing functions, such as adders, multipliers, feedback, and delays. These can be wired together to create a custom algorithm within SigmaStudio without having to write line-level code.
Q: After I link-compile-download my project, the bar at the bottom of SigmaStudio turns green. Does this mean my program downloaded to the DSP successfully?
A: Not necessarily. The green download bar simply means that the program compiled correctly and that the program and parameter information was sent from SigmaStudio to the communications driver. SigmaStudio does not actively do a RAM Verify check on the target DSP.
Q: How can I check that I have proper communication between SigmaStudio and the SigmaDSP hardware?
A: The easiest way to do this is to try downloading a program, and then reading back a register with known contents. For example, the DSP core control register:
AD1940/AD1941: address=0x2642, contents=0x42 0x00.
ADAU1701/ADAU1702: address=0x2076, contents=0x00 0x1C
If this fails, check that the communications link has properly been established in the Hardware Configuration Window. When SigmaStudio is plugged into the hardware and properly recognizes the driver, the Communications Channel block in the design will turn from red to white. If this block is orange, then you may have one processor properly connected, but another may still be disconnected.
Q: How do I change the sampling rate of my design in SigmaStudio?
A: If you have a new design (empty schematic), then you just need to set the sampling rate in the drop-down box at the top of the SigmaStudio window. Then, every block placed in the design after that has been set will use that sample rate for its calculations. If you have already placed blocks in your design, you still need to first set the drop-down box for any future blocks that may be added. Also, you will need to right-click on all input blocks (inputs, tone generators, etc.), select "Set Sampling rate," and enter the appropriate frequency.
Q: When should I use double precision and when should I use single precision filters?
A: For most filters in your design, you probably will not see a difference between single and double precision processing. Double precision becomes necessary when using low-frequency filters (center frequency approximately 0.005*fs and below), especially ones with high Q.
Q: Where can I see how much of the SigmaDSP resources my project consumes?
A: Every time you compile your project, SigmaStudio creates a folder called IC1 within the folder in which you've saved the project. In this folder, you will find a file called compiler_output.txt. This file details the amount of program, parameter, data, and slew (where applicable) RAM that has been used by your design.
Q: My signal flow is running out of instructions. What can I do to save resources?
A: First, make sure that you are using double precision filters only where necessary. Also, some static gain blocks can be incorporated into other blocks that you might already have in the system, such as filters.
Q: When the signal input to my compressor is above 6 dB, the compression stops and my signal starts increasing. What's happening?
A: Some of the dynamics processors with a lower instruction count continue the gain from the last point in the lookup table (+6 dB), which could result in the output signal increasing in gain or clipping. In order to avoid this situation, make sure that your maximum input levels do not exceed the selected block's limits. If you need your dynamics processors to operate with signals larger than +6 dB, consider using the Full Range dynamics processor or completely limiting the signal output from the dynamics processor by using the limiter.
Q: My application requires that I use multiple blocks that generate many addresses that I then have to map to my microcontroller code. Can I fix specific memory addresses for specific blocks to avoid all this mapping overhead?
A: SigmaStudio requires memory mapping flexibility in order to link blocks at compile time, therefore it does not allow you to set fixed memory addresses. However, when you generate the parameter memory map (by clicking on the "Generate Parameter File" button), a .h (header) file is also generated. This file has unique names for all parameters in the design. By using these header files in your microcontroller you will not have to manually map microcontroller parameters to addresses. Simply use the header file names in the microcontroller code to indirectly assign the required memory address.
AD1953
Q: What's the difference between the AD1953 and AD1954?
A: The AD1953 can do everything that the AD1954 can do, but also includes some extra features. These include things such as more volume controls and a TDM output mode. Most importantly, SigmaStudio supports the AD1953, but not the AD1954. The price for these two parts are the same, so the AD1954 should not be used for any new designs.
AD1940, AD1941
- What is the difference between the AD1940 and AD1941?
- What evaluation boards are available for the AD1940 and AD1941?
Q: What is the difference between the AD1940 and AD1941?
A: The AD1940 has an SPI control interface and the AD1941 has an I2C control port. Otherwise, the parts are identical.
Q: What evaluation boards are available for the AD1940 and AD1941?
A: There is a full evaluation board for both the AD1940 and AD1941 that allows complete access to all of the functions of the part and has a full array of analog and digital I/Os. The ordering part numbers for these are EVAL-AD1940EB and EVAL-AD1941EB. There is also a mini demo system available for the AD1940, part number EVAL-AD1940MINIB. This demo board has the AD1940 paired with the AD1938 codec and provides 2-channel analog input and 6-channel analog output. For most users, the mini demo system will be fine for evaluating the AD1940. Both types of boards fully support an interface to SigmaStudio.
ADAU1701, ADAU1702
- What is the difference between the ADAU1701 and ADAU1702?
- How can I tune my own hardware design using SigmaStudio?
- Can I use selfboot to load multiple different programs?
Q: What is the difference between the ADAU1701 and ADAU1702?
A: Functionally, these two parts are identical. The differences are in the sizes of the program and data RAMs. The ADAU1701 has 1024 instructions/cycle in the program RAM and 2k words of data memory, while the ADAU1702 has 512 instructions/cycle and 0.5k words of data memory.
Q: How can I tune my own hardware design using SigmaStudio?
A: The application note AN-923 is available to address this issue.
Q: Can I use selfboot to load multiple different programs?
A: This is not directly supported by the selfboot function, but could be done by having two EEPROMs on the I2C bus, each with a different address. The address pins of each could be changed by a switch or microcontroller so that the proper EEPROM is loaded at start-up.
