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

Flash programming methodology for ADAU1860 EVB

Processors & DSP KrisC Aug 10, 2026 00:00 4 replies Original on forum ↗
Subscribe
KrisC Question
Aug 10, 2026 00:00

Hello,

I'm struggling to understand the methodology to program configuration registers of the ADAU1860 into the flash on the evaluation board. I can use Lark Studio to get a valid set of configuration registers, and it will allow me to export C code. However, what I dont understand is how to generate the necessary binary file for EEPROM programming. There are jumpers on the EVB for the FTDI to connect to the flash - is this how we program, or should I use an external tool on the header?

With the help of AI, and the AudioPathAPI.zip file that I found, I'm able to compile a project with my register output from Lark, and generate a hex file, but I'm unsure of the exact flow to use and if there is already a guide or step by step, that would really help me rather than hunting blind.

Thanks

Kris

programming

software

Lark Studio 2.4.4

flash

processors and dsp

Processors and Microcontrollers

ADAU1860 Selfboot

adau1860

Show More

RobertoSalinas Reply
Aug 11, 2026 00:00

Hi Kris,

With Lark Studio, you can only program RAM; after reboot all changes will be gone. Lark Studio does not offer built in capabilities to write into the flash memory.

To be able to automatically boot the chip at power on without the use of an external microcontroller or host (self-boot) what you need to do is:

1.Write a Tensilica DSP program that is able to configure your datapath as desired

2.Build said program using a speciar Linker Script Package that uses the flash addresses and sections instead of the RAM ones

3.Convert this program to HEX via xt-dumpelf.exe

4.Use a tool (unfortunately we cannot provide it) that reads the HEX file from your computer and writes it sequentially into the flash memory

5. Pull SELFBOOT line high and power on the 1860. It will automatically fetch the program data from the flash, copy it to the RAM, and execute the program

6. The program will configure your ADAU1860 on each power on.

You can find information in these forums on how to do some of these steps. I would start by taking a look at

How to generate HEX file for selfboot

Programming External Flash of ADAU1861-Eval

How to use Lark Studio program Hex file into TDSP in ADAU1860

Probably the major issue will be to write the tool to program the Flash memory from windows. To do that, you have to use the FTDI Windows library, which will allow you to change registers in ADAU1860 from a C program in your computer. Then, you can use this system to call the QSPI API's in Lark studio; using these, you can read or write blocks of data to the QSPI flash. Once you have all that working, it will be straightforward to read the HEX file from your PCnand write it to the flash.

I suggest you start looking into this method and try to build the proposed solution. We can support you with the individual problems or questions that you may encounter, but we can't offer an out of the box solution.

Kind regards,
Roberto

KrisC Reply
Aug 11, 2026 00:00

Thank you for the great pointers Roberto. I can program the flash without issue - I've been using the header and jumpers to play with this, so that's not a concern.

For my design, the values I'm wanting to program are from reading the live conifgured ADI device in lark, after having had it run successfully in my linux bootup - I swap the SPI back to the FTDI to dump the registers. This works fine for writeback after a power cycle in Lark.

For use with the TDSP, are there any gotchas with this method? Are there any additional registers I'd need to enable / power up as well as those used for my simple application ? I'm driving clocks out from the ADI to my external system, and using 4ch TDM with ch0 routed to the line out.

RobertoSalinas Reply
Aug 13, 2026 00:00

Hi Kris,

To run a program in the TDSP, you must first make sure that it is powered on, enabled, and clocks and reset vector registers are configured correctly. However you only need to change this when controlling the 1860 from Lark Studio or a host MCU. When you boot with SELFBOOT enabled, all of that is configured automatically by the boot sequence.

Regarding the register configuration, I understand your method, but I think you could accomplish the same by using the "Generate C Code" button in Lark Studio. That will generate a list of all registers with their value formatted as a C array. However, if you plan on developing anything more complex later on, I would recommend using the Lark SDK API's instead of direct register writes. As a starting point, you could use this project: ADAU1860-1: Moving audio data to Hifi3z Core Sample by Sample

Hope this helps!

Kind regards,
Roberto

KrisC Reply
Sep 3, 2026 00:00

Thank you so much Roberto.