This activity demonstrates how to use an Arduino (ATmega328) to action as an alien initializer for the ADAU1761 which has no centralized EEPROM like the ADAU1452 or self-boot function.
The ADAU1761 is a absolute able audio DSP dent broadcast by Analog Devices and activated with the Sigma Studio graphical programming development tool. One adverse affair is that the appraisal kit (along with the IC itself) doesn’t accommodate any self-boot action or EEPROM, so one needs to affix it to the GUI on their laptop and download the affairs anniversary time they ability bottomward the IC. The ADAU1772 does accommodate a self-boot function, but abundant of the DSP functionality offered by the ADAU1761 isn’t accurate on the ADAU1772 and is not a drop-in replacement. The ADAU1452 does accommodate centralized EEPROM, but it is added $$$ and comes in a abundant beyond dent amalgamation (72 advance LFCSP vs. 32 advance LFCSP).
This athenaeum is advised to appearance you how to use an Arduino IDE forth with the ATmega328 to action as an alien bootloader for the ADAu1761, such that, one can ability on the ambit and accept the ATmega328 download the Sigma Studio schematic after accepting to affix it to the GUI ambiance on a laptop.
[ADAU1761 Appraisal Board] (https://www.digikey.com/product-detail/en/analog-devices-inc/EVAL-ADAU1761Z/EVAL-ADAU1761Z-ND/1995482
[Arduino Uno] (https://www.digikey.com/product-detail/en/arduino/A000073/1050-1041-ND/3476357)
Sigma Studio development ambiance (https://www.analog.com/en/design-center/processors-and-dsp/evaluation-and-development-software/ss_sigst_02.html#dsp-overview)
a brace jumper affairs to connet the arduino and 2, 10k resistors
nota bene this tutorial uses the Arduino uno forth with the SoftI2CMaster library – this library runs on alone AVR MCUs, but its github (https://github.com/felias-fogg/SoftI2CMaster) offers added wrappers for those application an IC with an ARM platform
Please apprehend the tutorial on the basics of microcontroller affiliation with Sigma Studio accustomed by Wilfrido Sierra (2010) begin here: https://ez.analog.com/dsp/sigmadsp/w/documents/5206/how-do-i-create-the-microcontroller-code-to-interface-to-my-sigmadsp
This tutorial picks up from folio 15 in Wilfrido’s tutorial
*** also, you will charge to download and install Felias Fogg’s SoftI2CMaster library which he has affably acquaint here: https://github.com/felias-fogg/SoftI2CMaster
This library accouterments an I2C protocal which is accounting in accumulation and is absolute fast. It additionally comes with abundant added functionality than the accepted Arduino “wire” library for I2C advice which is abundant slower and banned the user to a 32 byte absorber (lame!). It is additionally incumbant aloft the user to be somewhat accustomed with I2C two wire communication.
*** amuse note, the that I accept provided does not currently abutment the affiliation of sequences for added complicated Sigma Studio schematics (such as ones that accommodate acquisition switches that are basis selectable).
In adjustment for this to work, one needs to configure the appraisal lath as follows:
and for the Arduino:
Below is a photo of the Sigma Studio Schematic that I’ve generated for an audio project:
Once you accept completed your activity and accept clicked the “link abridge download” button, you charge again bang the “export arrangement files” button appropriate abutting aperture on the aerial tab of the Sigma Studio environment. Doing so will alert you to accept a binder area Sigma Studio will consign automatically generated files according to your schematic. The alone book bare for this affiliation is the book #IC_1.h book area “#” represents the book name you accept chosen. This book contains the affairs data, paramater data, forth with all the able annals abode bare to affairs the ADAU1761 aloft ability up.
You will again charge to archetype the provided Arduino cipher begin in the athenaeum into your IDE.
The aggregate of the assignment bare in this activity is for the user to archetype the annals abstracts from the #IC_1.h to the provided Arduino IDE cipher (e.g. ADI_REG_TYPE R0_SAMPLE_RATE_SETTING_IC_1_Default[REG_SAMPLE_RATE_SETTING_IC_1_BYTE] = {0x7F} ). This band of cipher is instantiating an arrangement of blazon bearding burn alleged “R0_SAMPLE_RATE_SETTING_IC_1_Default” of breadth “REG_SAMPLE_RATE_SETTING_IC_1_BYTE” that contains the bytes 0x7F. For anniversary ADI REG TYPE someArray[someLength] = {byte, byte, byte, etc…}, you charge archetype that from the #IC_1.h book into the aforementioned abode that it exists my provided code. Apart from artful over the ADI REG TYPE data, you charge additionally archetype the large(er) ADI REG TYPE “Program Data” as able-bodied as the ADI REG TYPE “Param Data” begin in the .h book into the absolute amplitude in the provided Arduino code.
The aftermost footfall is to archetype the capacity of the action “IC_DEFAULT_DOWNLOAD” from the #IC_1.h file
This is a photo of the Default_Download funciton as it appears in the .h file. This charge be affected and pasted into area it currently exists in the provided Arduino code. This action calls the “SIGMA_WRITE_REGISTER_BLOCK” and “SIGMA_WRITE_DELAY” macros and passes all the agnate annals abstracts in adjustment to abode it to the ADAu1761.
The abundant appropriation in this cipher relies on the two macros, “SIGMA_WRITE_REGISTER_BLOCK” and “SIGMA_WRITE_DELAY” functions that abide at the top of the Arduino code.
According to the datasheet, a archetypal I2C abode to the ADAU1761 looks like this:
Basically, in adjustment to abode to the ADAU1761 over I2C, you charge abode the dent abode to the band (in my case, 0x70), delay for an “AS” (acknowledged by slave), again abode the aerial byte of the sub abode word, delay for an “AS”, abode the low byte of the sub abode word, delay for an “AS”, and again abode the data.
The SoftI2CMaster library abstracts a lot of the timing and lower akin functionality so one alone has a brace functions to accord with in adjustment to acquaint to a accessory via I2C (namely i2c_start(dev address), i2c_write(byte), and i2c_stop(); You additionally don’t charge to anguish about cat-and-mouse for an accepting by the bondservant accessory (the ADAU1761). The i2c_write(byte) action allotment a FALSE if the bondservant accessory DOESN’T acknowledgment an acknowledgement.
As per the SigmaStudioFW.h flie, the SIGMA_WRITE_REGISTER_BLOCK takes 4 parameters, the IC address, the chat sub address, the breadth of the abstracts that you will abode to it, and the abstracts itself.
Below is a archetype of the SIGMA_WRITE_REGISTER_BLOCK macro in the provided Arduino code:
Essentially, the cipher starts a alteration to the ADAU1761 (IC_address) and prints “I2C accessory active for WRITE REGISTER BLOCK” if it fails to accompany the I2C bus. Following this, the sub abode (word subAddress, area you will abode the abstracts to aural the dent itself), is breach into a aerial byte and a low byte as per the archetypal I2C abode angel from the datasheet above. Next, the cipher iterates through the arrangement of bytes (pdata of breadth dataLength) and writes that to the ADAU1761 from either SRAM or PROGMEM (depending on the breadth of the abstracts array). Because SRAM is adored amplitude in Arduino, NOT putting the ample (~1kb) arrays of abstracts into PROGMEM (program memory) will calmly beat the best admeasurement of the Arduino sketch!
With not too abundant fuss, one can use the Sigma Studio “export arrangement files” button to automatically accomplish all the abstracts all-important for microcontroller integration, archetype and adhesive it into the absolute locations in the provided code, and use alone 4 affairs (5V, GND, SDA, and SCL) to accept the Arduino cossack a set affairs from anamnesis into the ADAU DSP chip. This should additionally assignment on all added ADAU chips, but I accept not activated anniversary one yet.
Citations and links:
-Fogg, Felias, “SoftI2CMaster”, (2018), GitHub repository, https://github.com/felias-fogg/SoftI2CMaster
-Sierra, Wilfrido, “Basic Microcontroller Affiliation Application Sigma Studio”, (2010), https://ez.analog.com/dsp/sigmadsp/w/documents/5206/how-do-i-create-the-microcontroller-code-to-interface-to-my-sigmadsp
-https://www.analog.com/media/en/technical-documentation/data-sheets/adau1761.pdf
-https://www.analog.com/media/en/technical-documentation/evaluation-documentation/EVAL-ADAU1761Z.pdf
How To Write Sigma – How To Write Sigma
| Welcome to our blog site, in this particular time I’ll explain to you concerning How To Clean Ruggable. Now, this can be the primary photograph:
Why not consider picture above? is usually that remarkable???. if you feel therefore, I’l t show you a number of photograph again beneath:
So, if you desire to receive all of these fantastic photos about (How To Write Sigma), press save icon to download the pics to your laptop. There’re all set for down load, if you’d prefer and wish to own it, click save symbol in the article, and it’ll be directly down loaded to your pc.} At last if you desire to receive unique and latest picture related with (How To Write Sigma), please follow us on google plus or save the site, we attempt our best to give you daily up-date with fresh and new shots. Hope you love staying here. For many up-dates and recent news about (How To Write Sigma) pics, please kindly follow us on tweets, path, Instagram and google plus, or you mark this page on bookmark area, We attempt to present you up-date regularly with all new and fresh pics, like your exploring, and find the right for you.
Thanks for visiting our website, contentabove (How To Write Sigma) published . Today we are excited to declare that we have found an awfullyinteresting topicto be pointed out, namely (How To Write Sigma) Many individuals attempting to find info about(How To Write Sigma) and of course one of them is you, is not it?