ΣSigmaStudio Ask AI Русский Log in

How do I generate a production-ready data file for my target system's self-boot EEPROM?

SigmaDSP & SigmaStudio ADIApproved Jul 23, 2009 00:00 16 replies Original on forum ↗
Subscribe
ADIApproved Question
Jul 23, 2009 00:00

I am using a SigmaDSP with self-boot functionality (such as the ADAU1701, ADAU1702, ADAU1401, ADAU1442, ADAU1445, and ADAU1446).

How do I generate a production-ready data file for my target system's self-boot EEPROM?

Audio Signal Processors

adau1702

adau1401

adau1446

eeprom

adau1442

adau1445

usbi

SigmaDSP Audio Processors

adau1701

self-boot

Show More

ADIApproved Reply
Jul 23, 2009 00:00

EEPROM .hex file generation method:
(NOTE: your hardware does not need to be connected to complete this task)

- Load up your .dspproj signal flow file in SigmaStudio
- Go to the Hardware Configuration tab

- Add a USBi to the project from the communications channel list
- Add an E2Prom to the project from the IC list (usually it will be auto-named as "IC 2")
- Connect the EEPROM to the USBi communications channel (it will be assigned the address 0xA0)
- Click the Link-Compile-Download button to compile your project
- Still in the Hardware Configuration tab, right click on the SigmaDSP (usually the DSP is called "IC 1")
- Select the option "Write Latest Compilation to EEPROM"

- If your hardware is connected, the target EEPROM will be written at this time
- Now, navigate in Windows Explorer to the folder where your project is saved
- Find the sub-folder called "IC2"
- In this folder, you will find the E2Prom.Hex file

You can download this file directly to an EEPROM with an appropriate EEPROM downloader program.

awgibbons Reply
Sep 22, 2009 00:00

My EEPROM burner won't read the hex file that SigmaStudio exports. What I've been doing is burning and EEPROM with the AD board, and then reading it with a 3rd party EEPROM reader as a binary file and using that for mass production. Is there a way to get a binary file from SigmaStudio or convert the hex to binary without burning an EEPROM?

The hex file I am getting is in this format:

0X0F , 0XD9 , 0X99 , 0X9A ,
0X0F , 0X8C , 0XCC , 0XCD ,
0X00 , 0X0C , 0XCC , 0XCD ,
0X00 , 0X80 , 0X00 , 0X00 ,

...

ADIApproved Reply
Sep 22, 2009 00:00

Different EEPROM manufacturers use varying file formats for the data that is burned to the EEPROM. ADI recommends using a text editor (UltraEdit seems to be the industry standard) to re-format the data file to a suitable form for your particular EEPROM burning hardware.

We plan to support the Intel Hex format in the near future.

parleam08.extc Reply
Feb 1, 2010 00:00

Is there any free software which can be used to convert the hex file generated by sigmastudio to intel hex. UltraEdit is costly for a student.

Or is there any reference on what the file format of hex generated by sigmastudio is based so that I could write my own software?

ADIApproved Reply
Feb 1, 2010 00:00

The EEPROM file generated by SigmaStudio is just a comma-delimited hex file. A couple example lines from an E2Prom.hex file from SigmaStudio looks like this:

0x01 , 0x00 , 0x05 , 0x00 , 0x08 , 0x1C , 0x00 , 0x58 ,
0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 ,

vocomotion Reply
May 5, 2011 00:00

I'm running into the same problem. I'm programming my EEPROM using the Microchip MPLAB Starter Kit, but MPLAB is requiring Intex format. I downloaded a small command-line conversion utility called BIN2HEX and the resulting file imports successfully into MPLAB, but it doesn't look like the values are right to me. Manually converting this file using UltraEdit or something does not make sense at all since the Intex format requires address and other information in this file. So I'm pretty stuck, eh?

ADIApproved Reply
May 6, 2011 00:00

Fred,

I have not actually used this software, so I am hesitant to endorse it, but I suggest you look into an open source software package called SRecord. It converts between many different file formats for EEPROM data. The software developer is a Unix loyalist, so there's no Windows executable available, but he provides tools and instructions for creating your own build on Windows.

By the way, I have entered a request for Intel Hex output format on our feature request list. However, there are many items on the list already and I don't imagine that this will be given high enough priority to be implemented in the near future.

vocomotion Reply
May 6, 2011 00:00

Thanks!

I'm not really a Windows guy anyways. I'm running SigmaStudio on Windows XP under Parallels on my MacBookPro. Works great!

I was able to convert the file using a Python script I found online to convert from binary to intex (bin2hex).

--> freddie

ADIApproved Reply
May 6, 2011 00:00

Hi Freddie,

I'm just curious if you could share some information to help out people who might be in the same situation as you. Did you have to do any special formatting to the E2PROM.hex file after you exported it from SigmaStudio? I'm guessing that you'd have to first remove the "0x" and comma delimiters, as well as spaces. Did you then save the file in a special format in order to prepare it for the bin2hex conversion program?

I'd like to try this out myself, but I don't have an EEPROM programmer around that accepts intex format.

vocomotion Reply
May 6, 2011 00:00

Here's what I had to:

1) Generate the production file (comma-delimited hex values) as described earlier.

2) Go to the Hardware Configuration tab, then IC 2 (WinE2PromLoader)

3) Click in the white text box to browse files.

4) Find the new hex file I had just created in step 1

5) Click "Display File" button.

6) All of the hex values are now displayed at the right, but without "0x" or commas. Highlight the whole thing with your mouse and copy to clipboard.

7) Open a hex editor like "0xED" (Mac app) and paste the clipboard data into it.

8) Save the file with a ".bin" extension

9) Feed this new .bin file into a python script like Intelhex (bin2hex.py) and spit it out as a .hex file (intex hex).

10) Import this new .hex file into MPLAB and burn to EEPROM.

--> freddie

ADIApproved Reply
May 6, 2011 00:00

Great, thanks!

SteveL Reply
Oct 14, 2011 00:00

Further to the previous advice, anyone who (like me) finds a free, Windows-based solution the most convenient might like to try the freeware HxD hex editor from http://mh-nexus.de/en/

Copy the hex data from the SigmaStudio WinE2PromLoader window as above, then launch HxD and select File>New. Paste the data into the window, then File>Export as whatever flavour of Intel Hex or S-Record you prefer.

Of course, it would be even better if SigmaStudio could export IntelHex directly, so I hope it is making its way towards the top of the Requested Features list...

Hope this helps - best regards,

Steve L.

ADIApproved Reply
Oct 14, 2011 00:00

Thanks a lot for the great tip, SteveL. IntelHex format is definitely on the requested features list…

From: SteveL analog@sgaur.hosted.jivesoftware.com

Sent: Friday, October 14, 2011 8:49 AM

To: Gildersleeve, Brett

Subject: New message: "How do I generate a production-ready data file for my target system's self-boot EEPROM?"

Analog Devices EngineerZone<https://ez.analog.com/index.jspa>;

How do I generate a production-ready data file for my target system's self-boot EEPROM?

reply from SteveL<https://ez.analog.com/people/SteveL>; in SigmaDSP Processors - View the full discussion<https://ez.analog.com/message/34306#34306

J3627 Reply
Mar 14, 2013 00:00

Looks like SigmaStudio WinE2PromLoader exports in a different format than it imports?

Export format is:

01

00

05

00

08

1C

00

...

But if you try to import this format, it crashes:

---------------------------

Application Exception

---------------------------

Object reference not set to an instance of an object.

at ADICtrls.WinE2PromLoader.downLoadButton_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

---------------------------

Abort Retry Ignore

---------------------------

You can use a text editor's "Search and Replace" function to change this into the format required for import:

0x01 , 0x00 , 0x05 , 0x00 , 0x08 , 0x1C , 0x00 , 0x58 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , 0x03 , ...

Then it can be downloaded into the EEPROM.

To convert the "export format" into binary:

srec_cat.exe" %1 --guess -o "%~dpn1.bin" -binary

SRecord doesn't understand the "import format":

srec_info.exe" %1 --guess

rszemeti Reply
Jul 29, 2015 00:00

It looks like 6 years have gone by and there is still no simple way to get production data out of SigmaStudio

Two ways that kinda work ... build a small board with a EEPROM on it, and use the "write latest compilation to EEPROM" option ... you'll need to figure out how to power the EEPROM and the right connections to get it to go ...

then when it's done, plug it into your EEPROM programmer, read the chip and store the file ... crude, but it works. I was using the USBi adaptor to program my development boards anyway, so I was half way there.

There is a useful utility on this guys page:

http://www.360customs.de/en/2015/01/sigmadsp-programmieren-sigma-studio-adau17011401a-eeprom-standalone-self-boot/

I guess he gave up waiting for anyone to update SigmaStudio to write data in a useable form, so he wrote a convertor. It works fine, you just have to use the the "write latest compilation to ..." option and it creates the E2Prom.hex file ... and this utility will convert it to an Intel HEX format file for you

EZAdministrator Reply
Apr 29, 2019 00:00

This question has been closed by the EZ team and is assumed answered.