FreeDSP OCTAVIA

Hello! I don't know how to program, and I'm using minidsp SHD STUDIO to do room correction, and the sound is okay. But there is a fatal problem that the delay is very large, and the delay is obviously felt when playing virtual instruments. Is the total delay of freedsp operation large? I really want to learn freedsp to make a room processor by myself. Sorry, my English is not very good, most expressions are translated by Google, I hope you can understand
 
Hello! I don't know how to program, and I'm using minidsp SHD STUDIO to do room correction, and the sound is okay. But there is a fatal problem that the delay is very large, and the delay is obviously felt when playing virtual instruments. Is the total delay of freedsp operation large? I really want to learn freedsp to make a room processor by myself. Sorry, my English is not very good, most expressions are translated by Google, I hope you can understand
I think you will find that it is not the hardware that is causing the delay but what you are asking of it, room correction that involves phase or group delay adjustment ie using FIR filters will introduce throughput delay. The static hardware delay is typically 1-2ms.
 
Hi demoan-San,
I guess you are using FIR filter-based room correction. (Such as rephase, REW, etc...) It's a long-sized delay with the convolution method. So the delay(latency) comes from the algorithm itself. The latency will not change even If you change the hardware.
Sigma Studio supports MLSSA modeling and AutoEQ Wizard. (Also the FIR filtering)
Anyway. In your case, you need to change the room correction algorithm first.

CyberPIt
 
I made a small adaptor board that enables to change of the connection type from SPI to I2C.
スクリーンショット 2023-02-24 1.31.13.png

A MW1466 daughter board which has USBi header for SPI connection was converted to USBi header with I2C connection. It needed to reboot after insetting this board.
I could access the board and change the parameters of on-the-fly operation. Accessing speed was not so different from the SPI connection. (duration difference was within one second)

So I plan to change the USBi and R-Pi connection from SPI to I2C...
CyberPit
 

Attachments

  • USBi2I2C.pdf
    15.5 KB · Views: 87
  • スクリーンショット 2023-02-24 1.51.50.png
    スクリーンショット 2023-02-24 1.51.50.png
    15.4 KB · Views: 101
  • I2C-Connection.jpg
    I2C-Connection.jpg
    712.1 KB · Views: 106
  • SPI-Connection.jpg
    SPI-Connection.jpg
    585.6 KB · Views: 98
  • Like
Reactions: 1 user
Good to see it actually works before implementing it on a new board integrating all the parts.
It's a cool setup you have, good for trying all the concepts of interfacing out.

Not sure I followed why you are going "back" to I2C for the programming part, if you are already using SPI?
Keeping the E2PROM on SPI makes a lot of sense as discussed to support large E2PROMs.
 
  • Like
Reactions: 1 user
Hi Baldin-San,
Not sure I followed why you are going "back" to I2C for the programming part, if you are already using SPI?
Keeping the E2PROM on SPI makes a lot of sense as discussed to support large E2PROMs.
Well, absolutely SPI is the best choice from the point of view of speed. So I would like to keep SPI connection between ADAU1452's master port to SPI EEPROM. But the actual 1466's accessing data rate was disappointed slowly as you can see.
ADAU1466_BoorROM-Accessing.png

The reading speed is not so different from I2C ...
SPI EEPROM is very rare in today's parts market. I'm completely stacked to choosing the boot ROM type selection. :headbash:

On the other hand, I'm considering changing the path USBi/R-pi to ADAU1452's slave port with I2C. This is not dought from the many reasons.

Pros:
  • No disadvantage in firmware writing duration.
  • An possibility of reusing the software parts property of Aurora.
  • Easy to implement the signal path switch between the R-Pi and USBi
  • Easy to add a small display unit.
  • Small possibility of electrical/magnetical noise from R-Pi
Cons:
  • I've never succeeded to find an example R-pi project I2C TCPi. (Help me please)
  • Need more work :eek:

CyberPit
 
Last edited:
Fully agree on the SPI E2PROM being the way to go. Still seem to be possible to get good and relatively cheap chips at Mouser.

For the Programming, you have around 500 kHz clock (thought 1 MHz was the default).
Just dig measurements on the Wondom ICP3 programming interface which is running I2C.

I get ca 100 kHz on SCL line, so your SPI interface is in theory running 5 times faster. If it actually transfers data faster is of course a question, which will be dependent on the "overhead" of the protocol.

On my ADAU1701 boards I was protecting all the programming interface inputs by a series resistor of 470R and a 3.3V zenner diode.
Seeing that the voltages on the interface is actually only around 2.5V, this is not necessary, and the 470R will introduce a voltage drop which might cause the interface not to work properly.

On a USBi interface, can you be certain that the lines stays below 3.3V?

With you findings I will reconsider my choice of programming interface ;)


One question: On the ICP3 interface there are 2 extra lines WP (Write Protect) and RST (Reset). Are you using similar lines in your test for I2C? I would guess at least the RST needs to be connected to RST on the DSP chip ......


.... woou, I'm not used to using my oscilloscope in this way ... took me some time to make the right recordings while programming a ADAU1701 ..... and also looks like the scope could use a bit of cleaning ;)
 

Attachments

  • ICP3 SCL SDA.jpg
    ICP3 SCL SDA.jpg
    496.4 KB · Views: 75
  • ICP3 voltages.jpg
    ICP3 voltages.jpg
    466.2 KB · Views: 72
Last edited:
Thanks for your experiment.
I also checked with my FreeDSP Catamaran A/B board. The result shows...

FreeUSBi configure to ADAU1701 (86.7k)
FreeUSBi_I2C_write_to_ADAU1701.png


ADAU1701 SelfBoot from I2C E2PROM (381.7k)
ADAU1701_SelfBootI2C.png



Additionally, the MusicWorks MW1466 board with FreeUSB results is as follows...

FreeUSBi configure to ADAU1466 via I2C (86.7k)
I2C_configure_to_ADAU1466.png


FreeUSBi configure to ADAU1466 via SPI (365k)
SPI_configure_to_ADAU1466.png


ADAU1466 SelfBoot from SPI E2PROPM (476k)
ADAU1466_BoorROM-Accessing.png


According to the measurement information shows, the SPI and I2C self-boot data-rate difference is small.
But, SPI's data rate on-the-fly configuration and writing through USBi is almost 4 times faster than I2C.
Finally, the actual time duration for E2PROM programming has some overhead and something related to addressing/wait protocol makes a small difference between them.

The conclusion:
The difference is not too much. Use what you like! :cool:

CyberPit
 
Last edited:
Great project Pit I'm very exited about this project . I have a idea of controlling eeprom from Arduino so even more multiple epprom ic. also volume control from digital potentiometer like MCP42010 Ic. with graphic display. MCP42010 has 2 10k digital potentiometer so we can control left and right volume. what do you think Pit
 
Direct routing Sounds from Raspberry-pi come out.:cheers:
But SPI EEPROM writing is not succeeded yet.
Drink beer and figure out the writing method for M95256-RMN6TP...

CyberPit
 

Attachments

  • IMG_6169.JPG
    IMG_6169.JPG
    461.3 KB · Views: 98
  • スクリーンショット 2023-04-22 1.26.17.png
    スクリーンショット 2023-04-22 1.26.17.png
    92.2 KB · Views: 100
  • Like
  • Thank You
Reactions: 1 users