Locale Icon
English
  • Forums

    Popular Forums

    • LTspice
    • RF and Microwave
    • Video
    • Power Management
    • Precision ADCs
    • FPGA Reference Designs
    • Linux Software Drivers

    Product Forums

    • Amplifiers
    • Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Power Management
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • A2B
    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Reference Designs
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    Upcoming Webinar: Simplify High-Accuracy Instrumentation Design with Latest Precision Data Converters

    Join us for an insightful webinar on how ADI’s Precision technology is transforming the landscape of high accuracy instrument design with cutting-edge...

    Places

    • ADI Education Home
    • ADI Webinars
    • GMSL U
    • StudentZone (Analog Dialogue)
    • Video Annex
    • Virtual Classroom

    Libraries

    • 3D ToF Depth Sensing Library
    • Continuous-Wave CMOS Time of Flight (TOF) Library
    • Embedded Vision Sensing Library
    • Gigabit Multimedia Serial Link (GMSL) Library
    • Optical Sensing Library
    • Precision Technology Signal Chains Library
    • Software Modules and SDKs Library
    • Supervisory Circuits Library
    • Wireless Sensor Networks Library

    Latest Webinars

    • Simplifying Connectivity - Remote Controlled (RC) Nodes in a Software Defined Vehicle (SDV)
    • Upcoming Webinar: Simplify High-Accuracy Instrumentation Design with Latest Precision Data Converters
    • Design High Performance Power Systems with Ultralow Noise Technology
    • µModule Solution for Intelligent Motion Control
    • Accelerating Embedded System Development with CodeFusion Studio™︎
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes AQQ286 about Right Labels on the Right Boxes containing colored balls

      1. Quote of the week: "Knowledge is knowing a tomato is a fruit. Wisdom is not putting it in a fruit salad" - unknown Sources: commons.wikimedia...

    View All

    What's Brewing

      Quiz! Why a Hybrid Approach Works Blog and Test Your Knowledge

      Quiz! Understand ISO 26262 Compliance Test your knowledge with our quick quiz , based on the blog " Safety in Layers: Why a Hybrid Approach Works ...

    View All

    Places

    • Community Help
    • Logic Lounge
    • Super User Program

    Resources

    • EZ Code of Conduct
    • EZ How To Help Articles
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    IO-Link: Power Dissipation in Practice

    The Limitation of Heat Dissipation IO-Link is used across many branches of factory automation, and in these applications, areas of the factory floor...

     

    GMSL Debugging: Getting a Lock

    Imagine a scenario where you have a brand-new board design or are excited to try out some evaluation kits only to find out that the two devices can’t talk...

    Latest Blogs

    • Exploring DCM and CCM in SMPS: Part 1 of 6
    • Let’s Take a Field-Bus Trip
    • Countable vs Non-countable Faults
    • Power Your Signal: DAS Networks Unleashed: Part 2 of 4
    • Combining Functional Safety and Availability Using Redundancy
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • ContentZone

    Visit ContentZone

    ContentZone

    Technical articles. Blogs. Videos. Your ADI content, all in one place.

    View ContentZone

    Featured Content

    Featured Content Title

    Blurb About Content

    View Content By Industry

    • Aerospace and Defense Systems
    • Automotive Solutions
    • Consumer Technology Solutions
    • Data Center Solutions
    • Energy Solutions
    • Healthcare Solutions
    • Industrial Automation Technology Solutions
    • Instrumentation and Measurement Solutions
    • Intelligent Building Solutions
    • Internet of Things (IoT)
    • Wireless Communication Solutions

    View Content By Technology

    • A2B Audio Bus
    • ADI OtoSense Predictive Maintenance Solutions
    • Dynamic Speaker Management
    • Gallium Nitride (GaN) Technology
    • Gigabit Multimedia Serial Link (GMSL)
    • Industrial Vision
    • Power Solutions
    • Precision Technology
    • RF
    • Security Solutions
    • Sensor Interfaces
    • SmartMesh
  • Partners

    Partner Forums

    • Boston Engineering
    • PalmSens
    • Richardson RFPD
    • Tri-Star Design, Inc.

    Partner Libraries

    • Calian, Advanced Technologies Library
    • Clockworks Signal Processing Library
    • Colorado Engineering Inc. (DBA CAES AT&E) Library
    • Epiq Solutions Library
    • Fidus Library
    • VadaTech Library
    • Vanteon Library
    • X-Microwave Library
EngineerZone
EngineerZone
SigmaDSP Processors & SigmaStudio Dev. Tool
  • Log In
  • User
  • Site
  • Search
OR
Ask a Question
SigmaDSP Processors & SigmaStudio Dev. Tool
  • Processors and DSP
SigmaDSP Processors & SigmaStudio Dev. Tool
Documents Booting a SigmaDSP from a microcontroller with no C compiler
  • Forums
  • File Uploads
  • Members
  • Tags
  • More
  • Cancel
  • Documents
  • +AD193x: FAQ
  • +ADAU1401AEBZ: FAQ
  • +ADAU144x: FAQ
  • +ADAU1452: FAQ
  • +ADAU145x: FAQ
  • +ADAU1701: FAQ
  • +ADAU1701MINIZ- FAQ
  • +ADAU1761: FAQ
  • +ADAU1772: FAQ
  • +ADI: FAQ
  • +AN-951: FAQ
  • +bitwise logic: FAQ
  • +Compressor Table Format: FAQ
  • +Creating a simple balance crossfade control: FAQ
  • +Creating constant-dB envelope decay using an existing linear decay algorithm: FAQ
  • +Crossover with more than 3 bands: FAQ
  • +E2PROM: FAQ
  • +EEPROM: FAQ
  • +EVAL DAU144XEBZ: FAQ
  • +EVAL-ADAU1781Z: FAQ
  • +Excluding Cells from the Exported System Files: FAQ
  • +GPIO button: FAQ
  • +GPIOs or Aux ADCs: FAQ
  • +How do I execute a software safeload write?: FAQ
  • +IIR coefficient filter: FAQ
  • +IIR filter: FAQ
  • +Peak Full Range Compressor: FAQ
  • +Preserving "Ear-candy": FAQ
  • +Push Button Volume: FAQ
  • +self-boot EEPROM image: FAQ
  • +Sigma300 Family Products: FAQ
  • -SigmaDSP: FAQ
    • Booting a SigmaDSP from a microcontroller with no C compiler
    • Calculating Filter Coefficients to Store in a Microcontroller
    • Can I program multiple SigmaDSPs in parallel using one USBi?
    • Can I use SigmaDSP to decode MP3/WAV/AAC?
    • Can I write C or assembly code for SigmaDSP in SigmaStudio?
    • Can SigmaDSP do frequency-domain processing like FFT or pitch shift?
    • Can we bundle SigmaStudio with our product design?
    • Creating a delay after startup
    • Developing custom algorithms and/or using 3rd party algorithms
    • How can I estimate MIPS/Memory resource on SigmaDSP?
    • How do I create the microcontroller code to interface to my SigmaDSP?
    • How do I start a timer after power-on, or when the input signal goes away?
    • How many instructions can be executed per sample in SigmaDSP?
    • Memory requirements for booting a SigmaDSP with a microcontroller
    • Monitoring average and instantaneous signal levels
    • Playing audio samples in SigmaDSP
    • SigmaDSP PCB Layout Best Practices
    • SigmaDSP Products and Evaluation Boards - ROHS and REACH Compliance
    • SigmaStudio 3.4 Released
    • Updating SigmaDSP Parameter with a Microcontroller
    • Using two SigmaDSP evaluation boards simultaneously with one USBi board
    • Welcome to the SIGMADSP Processors and SIGMASTUDIO Development tool community
    • What are the number formats for SigmaDSP?
    • What is the step size for audio delay in a SigmaDSP?
    • What types of capacitors are good to use in the analog audio signal path?
    • Where can I buy a SigmaDSP Evaluation Board or USBi (EVAL-ADUSB2EBZ)?
    • Which SigmaDSP ICs support selfbooting from an EEPROM?
    • Which SPI Mode is used by SigmaDSP Devices?
    • Why isn't a software/documentation CD included with my evaluation board?
  • +SigmaStudio: FAQ
  • +single precision VS double precision: FAQ
  • +Stimulus-Probe Capability and Limitations: FAQ
  • +Stopwatch to Count Successive Samples: FAQ
  • +Toolbox into the schematic tab: FAQ
  • +USB communications between the PC and SigmaDSP: FAQ
  • +Using Hierarchy Boards to create re-usable code: FAQ

Booting a SigmaDSP from a microcontroller with no C compiler

My microcontroller does not have a C compiler. How do I use a microcontroller to boot my SigmaDSP in assembly?

_________________________________________________________________

In SigmaStudio, a number of things are downloaded to the target hardware when the user clicks the "Link-Compile-Download" button:

  • Program RAM
  • Parameter RAM
  • Non-Modulo Data RAM
  • Hardware Control Registers

That might not sound like much, but for a simple ADAU1781 program like this...

(screenshot of basic ADAU1781 project)

...the data that is downloaded looks like THIS:

(screenshot of the Capture Window in SigmaStudio for the example project download)

These data downloads have to occur in the exact same sequence on your  microcontroller in order to get the SigmaDSP into the same operating  mode as it is when the code is downloaded via SigmaStudio. That's quite a bit of data.

Unfortunately, the data files generated in the project folder by default (hex_program_data.dat, for example) simply contain the program RAM and parameter RAM contents of the project. That will not suffice. You need to get all of the information shown above in order to make your hardware work properly. In other words, you need to emulate the exact write sequence shown in the capture window above.

There is a way to manually copy this information out to raw address + data files by right-clicking one line at a time, as shown here:

(manually exporting raw data)

However, as you can imagine, that's very time-consuming...

Luckily, there's an easier solution!

First, make sure your project is compiled by pressing the Link-Compile-Download button:

(Link-Compile-Download)

Now, click the button to its immediate right, labeled Export System Files:

(Export System Files)

This generates a huge amount of data in the form of C-compatible include files and raw data files, as you have seen. In the case of assembly programming, the C header files are pretty useless. However, the important files for the initialization download are these two files:

(NumBytes and TxBuffer files)

These two files contain all of the data you need to boot your chip. The file TxBuffer contains the I2C address and write data for every address in the download sequence shown above in the Capture Window.

For example, the first two lines of this file are as follows:

0x40, 0xEB,             /* (0) IC 1.Start Pulse */
0x0A,

If you refer to the Capture Window screenshot above, you'll see that the first register write is to address 0x40EB, and the data is 0x0A.

The next two lines in TxBuffer are as follows:

0x40, 0xF6,             /* (1) IC 1.Sound Engine Run */
0x00,

If you refer to the Capture Window screenshot above, you'll see that the second register write is to address 0x40F6, and the data is 0x00.

And so on....

The file NumBytes accompanies TxBuffer in that it shows how many bytes are included in each transaction. For the first two examples I showed above, there are 2 address bytes and 1 data byte. So, as one might expect, the first two lines of the NumBytes file are:

3,
3,

When you get down to the program and parameter RAM downloads, you'll see much larger numbers like:

702,
226,

The main idea is that you can parse these two files and easily create an I2C write function that will download all of the data in order. No C compiler required!

The NumBytes and TxBuffer files for my example project are attached for your reference.

This FAQ was generated from the following discussion: Loading the DSP via assembly language

Attachments:
0336.TxBuffer_IC_1.dat.zip
6644.NumBytes_IC_1.dat.zip
Tags: i2c spi microcontroller assembly sigmastudio SigmaDSP Show More
  • Share
  • History
  • More
  • Cancel
 
Related Content
  • RE: Loading the DSP via assembly language
    ADIApproved
    Hi Richard, In SigmaStudio, a number of things are downloaded to the target hardware when the user clicks the "Link-Compile-Download" button: Program RAM Parameter RAM Non-Modulo Data RAM Hardware...
  • RE: Writing parameters to EEPROM memory by MCU
    DaveThib
    Hello in_text, Let me start by explaining a few things. SigmaStudio has two basic jobs to do. The 1st is to provide a GUI interface to allow you to assemble and create programs graphically. Then it will...
  • RE: How to configure register on adau1702 ?
    ADIApproved
    I haven't gotten a chance to look at this in detail yet, but have you tried copying the contents of the capture window exactly? I did a quick example here where I take the ADC inputs and copy them to the...
 
Related Content
  • RE: Loading the DSP via assembly language
    ADIApproved
    Hi Richard, In SigmaStudio, a number of things are downloaded to the target hardware when the user clicks the "Link-Compile-Download" button: Program RAM Parameter RAM Non-Modulo Data RAM Hardware...
  • RE: Writing parameters to EEPROM memory by MCU
    DaveThib
    Hello in_text, Let me start by explaining a few things. SigmaStudio has two basic jobs to do. The 1st is to provide a GUI interface to allow you to assemble and create programs graphically. Then it will...
  • RE: How to configure register on adau1702 ?
    ADIApproved
    I haven't gotten a chance to look at this in detail yet, but have you tried copying the contents of the capture window exactly? I did a quick example here where I take the ADC inputs and copy them to the...
analog-devices logo

About Analog Devices

  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Sign Up Now
  • Instagram page
  • Twitter page
  • Linkedin page
  • Youtube page
  • Facebook
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved

analog-devices

About Analog Devices

Down Up
  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

Down Up
  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Instagram page Facebook Twitter page Linkedin page Youtube page
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved