Title: Export file contains addresses of second DSP
Description: The project contains two DSPs, ADAU1442 (IC1) and ADAU1452 (IC2). After a "Link Compile Download" and Export, the generated parameter XML file contains entries of IC1 in the IC2 section. For example address 57888 (0xE220) is included for both ICs with the name "IC 1.Start_Pulse_Select". This was not the case when using Sigma Studio 4.1. Furthermore I cannot find the address in the data sheet of IC2.
To sum up:
SigmaStudio Version: 4.2. Build 1, Rev. 1764
OS: Windows 7 64Bit, Service Pack 1
I will discuss this screenshot:
In this example I setup two DSPs in this project. This would be where there are two DSPs on the same comms bus, in this case an I2C bus.
They are set to different addresses of course.
Note under the ADAU144x and ADAU1452, the GUI objects have IC numbers. IC1 and IC2. This is what it refers to. So this has nothing to do with the datasheet or the addresses inside the part. It is the way SigmaStudio keeps track of which IC to try to talk to and where in that IC the object parameters are located. So if you are using a microcontroller, it will also need to know which control is located on the 1442 and which is on the 1452 and then where in those ICs the control is located. Then using the pull-down box on the USBi Interface GUI you select which address the device can be found on the bus.
So the XML file lists the object addresses using the IC numbers that are shown in SigmaStudio.
Hello Dave,Thank You for the explanation. Maybe my description was not clear enough. I am aware of the fact that IC1 and IC2 are just the names for the two DSPs in my system and that they might get an address by USB (or in my case TCP). What confuses me is the following part from the exported XML file:
<Schematic> <IC> <Name>IC 1</Name> <PartNumber>Sigma200</PartNumber> ... <Register> <Name>IC 1.Start_Pulse_Select</Name> <Address>57888</Address> <AddrIncr>0</AddrIncr> <Size>2</Size> <Data>0x00, 0x1C, </Data> </Register> ... <Register> <Name>IC 1.Start_Pulse_Select</Name> <Address>57888</Address> <AddrIncr>0</AddrIncr> <Size>2</Size> <Data>0x00, 0x00, </Data> </Register> </IC> <IC> <Name>IC 2</Name> <PartNumber>ADAU1452</PartNumber> ... <Register> <Name>IC 1.Start_Pulse_Select</Name> <Address>57888</Address> <AddrIncr>0</AddrIncr> <Size>2</Size> <Data>0x00, 0x1C, </Data> </Register> ... <Register> <Name>IC 1.Start_Pulse_Select</Name> <Address>57888</Address> <AddrIncr>0</AddrIncr> <Size>2</Size> <Data>0x00, 0x00, </Data> </Register> ... </IC></Schematic>
And while we are having a closer look at the file I also wonder:
OK, I understand. First of all, the numbers in the output file are in decimal not Hex as they should be. So address 57888 = 0xE220. This is the Core Rate Select register in the ADAU1442. This is where you set the start pulse rate.
The reference to the Sigma200 is the generation of the SigmaDSP core being used. Here is a bit of a history lesson. The first SigmaDSP core did not have a number but we call it the first generation. The second generation core is called a Sigma100. This is what is in the ADAU1701. The third generation core is the Sigma200 which is in the ADAU1761 and the ADAU1442 family of parts. The fourth generation core is called the Sigma300. This is the ADAU1452 family of parts. Then we made some small changes around the 300 core and we call that the Sigma350. This is the ADAU1467 family of parts. So that is what Sigma200 means. It is simply writing out the generation of core that is being used.
Now I see your confusion. The Start Pulse register is set several times. There may be a reason for it or it may be just a repetition. It is also strange that the compiler placed a few instructions to IC2 in the middle of the IC1 register writes. I looked way down and eventually, you start seeing the IC2 register writes and they look correct.
My best explanation is that I see that sometimes SigmaStudio will produce extra writes because it wants to place the part into a known state and it has no idea the actual state of the part. So it assumes it might be running some program and shuts it down more gracefully before writing the new program. If the part was just powered up it would not be required. However, I have found, and reported, some instances where it just sends a lot more data then is required. So it can be a place for optimization.
So is your controller able to start up the parts? Is your system working? If it is not then what are you seeing for symptoms?
Hi Dave,thank You for Your patience, the details and the history. I think we are getting much closer to the core of my questions.Please note that the third and fourth writes to Start_Pulse_Select are in the section of IC2, eventhough the register is called "IC 1....". Therefore this write is performed to address 57888 (0xE220) of IC2 by my microcontroller. Is it correct to identify the target IC by the XML section or do we also have to consider the names of the registers?
I would expect that XXXXXX is to be written to IC1, while YYYYYYY is to be written to IC2 in:
<IC> <Name>IC 1</Name> ... <Register> <Name>XXXXXX</Name> ... </Register> </IC><IC> <Name>IC 2</Name> ... <Register> <Name>YYYYYYYY</Name> ... </Register> </IC>
Is my assumption (understandable and) correct? If so, "IC 1.Start_Pulse_Select" should not be in the IC2 section.
Furthermore IC2 is a ADAU1452. ADAU1452 has no register Start_Pulse_Select and no address 57888 (0xE220). This DSP has memory available from 0x0000 to 0xDFFF (with gaps), registers from 0xF000 to 0xF890, but neither memory nor registers at 0xE220. So I would like to make sure that I can identify the correct target IC. There are several more registers with the name IC1.... in the IC2 section. Please also note that this was not the case with Sigma Studio 4.1. I am using the Start_Pulse_Select register as an example. There are more IC1 registers in the IC2 section. They are visible if You download the attached two XML files and compare them.
From Your second to last paragraph I understand that the XML file is a kind of a script that has to be written to the DSP from top to bottom. Is that correct? I always thought the order was unimportant.
For our microcontroller we have to preprocess the XML files. During changes in this process I noticed the differences in the files generated by Sigma Studio 4.1. and 4.2. The microcontroller is able to start the DSPs, the system is working and we have not yet noticed any symptoms. I am just afraid that this might change if the compiler (Sigma Studio) has strange or misunderstood behavior.