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

Write a sequence and read it back from control port

SigmaDSP & SigmaStudio op-electronics Oct 31, 2016 00:00 4 replies Original on forum ↗
Subscribe
op-electronics Question
Oct 31, 2016 00:00

Hello,

i'm trying to write a sequence to eeprom through control port and then read it back. The sequence file contains a single read to aux adc 0 register (0xF5A0).

The sequence is working properly because when launching the sequencer window i can read auxadc0 in the capture window.

I2C communication is working too cause i was able to write and read a sequence with a write to a parameter block, so i can assume that the procedure is correct.

By the way, when i try to write a read from auxadc0, i can't get anything back.

Tried the same thing with a sequence write to MP6 but didn't work either.

What i'm doing or thinking the wrong way?

Can you help?

Thank you!

Omar

104d8ff8da9a78343236c758bffc37bf.png
104d8ff8da9a78343236c758bffc37bf.png
104d8ff8da9a78343236c758bffc37bf.png-755x454.png
104d8ff8da9a78343236c758bffc37bf.png-755x454.png
DaveThib Reply
Oct 31, 2016 00:00

Hello Omar,

Can you take a step back and tell me what you are trying to do with the AUXADC, MP6 and the EEPROM? This way I can understand what your goal is.

Then are you using the MINIZ evaluation board or your own hardware? If you are using your own hardware then a schematic would be helpful.

Thanks,

Dave T

op-electronics Reply
Oct 31, 2016 00:00

Hello Dave,

sure, my goal is to write a AUXADC read instruction inside the EEPROM then read it back. I could succesfully write and read sequence to simple block parameters but not write/read to AUXADC.

I'm building a schematic that would select between different audio effects like eq, delay, reverb etc.. Each effect has some parameters that can be externally controlled with potentiometers. Since the effects share the same pots i'd like that when jumping from an effect to another the program would remember the previous AUXADC value and even recall it at next power on.

I started playing with I2C master control port to understand how it works and how to implement it to reach my goal.

The hardware is my own, there's a socket that brings out the master port pins so i can implement other hardware in the form of a shield. Here's the schematic of the I2C EEPROM:

The EEPROM device is Microchip 24AA1025

Thank you very much for your help! Let me know if you need more informations.

Omar

c5f623ca8caec9e4794d370aaec5e7b6.png
c5f623ca8caec9e4794d370aaec5e7b6.png
c5f623ca8caec9e4794d370aaec5e7b6.png-683x493.png
c5f623ca8caec9e4794d370aaec5e7b6.png-683x493.png
op-electronics Reply
Nov 1, 2016 00:00

Hello Dave,

i tried to connect the EEPROM directly to I2C via USBi to check what it writes and understand how it works through WinE2PromLoader in Hardware Configuration tab.

From my understanding the master port uses the same register parameter address as in the ADAU1452 to store the data in the EEPROM, so for example if i have a data of 0x00011111 in address 0x0031 of ADAU1452 the same address is used inside EEPROM memory to store the data. Am i right?

This is what i did, step per step:

-add a sine oscillator block to the schematic

-set frequency to 100Hz

-read the Capture Window and export to Sequence with Add to Sequence command, address is 0x0031, data is 0x00011111

-save the sequence file as "tone-sequence"

-add master control port Sequential Write Ext. Trigger

-add DC block to control Sequential Write block set to 1 with 32.0 format

-add I2C Read periodic block

-configure both I2C read and sequential write block, in the GUI of the I2C Read window i set "49" as the Read Address 0 (decimal)

-load sequence file "tone-sequence" inside Sequential Write

-add a Readback from dsp block to I2C Read output set to HEX and continuous read back

-hit link-compile-download and i can read from the DSP Readback 01 01 11 11

-disconnect the EEPROM chip and connect it to USBi

-from WinE2PromLoader i do Read E2Prom to Display and i can find starting from address line 31 the written data 0x00011111

If i:

-connect a potentiometer to AUUXADC0 pin of the hardware board

-add a Read sequence line with address 0xF5A0 (A0 aux adc register), 2 bytes

-Launch Sequencer window: by hitting the button inside Sequencer window i can read in the Capture window the data read by AUXADC0 from pot status (this line is just to test that sequence works fine)

-save the sequence file as "A0-sequence"

-add master control port Sequential Write Ext. Trigger

-add DC block to control Sequential Write block set to 1 with 32.0 format

-add I2C Read periodic block

-configure both I2C read and sequential write block, in the GUI of the I2C Read window i set "62880" as the Read Address 0 (decimal)

-load sequence file "A0-sequence" inside Sequential Write

-add a Readback from dsp block to I2C Read output set to HEX and continuous read back

-hit link-compile-download, i can read from the DSP Readback 00 00 00 00

-disconnect the EEPROM chip and connect it to USBi

-from WinE2PromLoader i do Read E2Prom to Display and in address line F5A0 i read 00, checking the whole EEPROM i couldn't find any written value anywhere.

My assumption was that i could store the reading from AUXADC inside the EEPROM doing the sequential write when i need and then recall the stored AUXADC status by reading it back (with i2c periodic read or externally triggered).

Am i doing something wrong?

Thank you

Omar

op-electronics Reply
Nov 1, 2016 00:00

Hey Dave,

sorry, me once again.

I just discovered the existance of Master Control Port Interface Write and Interface Read which seem appropriate to what i'm doing.

I'm waiting for your valuable opinion however.

Thank you

Omar