Post Go back to editing

ADAU1467 EVAL BOARD I2C CONNECTION

I got EVAL-ADAU1467Z REV B board recently. I have couple of problems:

1- I need circuit schematics of this board.

2- I 'm able to load and run ADAU1467 by MCU via SPI connection. it seems analog outputs of AD1937 is fine with sampling rate 48Khz. I need to increase sampling rate 192KHz. To get correct signal at CODEC outputs I need to change register settings of AD1937 as well. I made connection J6/1(SCL) and J6/3(SDA) to MCU. S2 switch is CODEC BOOT MODE. Unfortunately I Have not able to read register contents of AD1937 nor abble to write AD1937 registers. I realy dont understand what 's missing. 

3- Do I have to set some registers on ADAU1467 to communicate between MCU and AD1937 ,it helps if there's sample code for AD1937 I2C communication

Kind Regards,

Parents
  • Hello Husnu,

    We have a more complete answer for you with examples soon. But let me jump in here to answer some things.

    Here is the schematics:

    PDF

    Question 2: 

    The AD1937 is tied to MP24 and MP25 of the DSP. These pins can be set to be the master I2C port. This is to allow the DSP to control and boot up other parts. This is a different I2C port from the slave port. So your MCU is probably connected to the slave port so as to communicate with the DSP. So you will not be able to communicate with the codec that is on another I2C port. So I think that may be the issue here. 

    You can jumper over the I2C lines to the slave port but then you have to change the slave port over to I2C and that is not easy. So the best route is to actually use the DSP to boot up the codec. We will have details on doing that soon. 

    Dave T

  • Hi David,

    I 'm able write and read codec on my eval board by I2C and able to generate signal with 192KHz sampling rate. I have a problem circuit schematics and codec input and output channels:

    1-) I have EVAL-ADAU1467Z 08-0485 Rev.B board. I have required circuit schematics of this board, you probably send me the wrong one because channels’ labels are different:

     

    On My Eval Board

    On Your Schematics

    OUT1

    CH0-CH1

    CH40-CH41

    OUT2

    CH4-CH5

    CH42-CH43

    OUT3

    CH8-CH9

    CH44-CH45

    OUT4

    CH12-CH13

    CH46-CH47

    IN1

    CH32-CH33

    CH40-CH41

    IN2

    CH36-CH37

    CH42-43

     

     

     

     

     

     

     

    Could you please double check which one is correct!

    2-) I’m using eval board with default configuration and SigmaStudio Version 4.6 , and I don’t have any output signal on output channels except CH0-CH1. Do you have any comment !

  • Hello Husnu,

    Sorry for the confusion. I just looked closer at your picture of the PCB and looked through my records and I do not see one that is the same. So I am going to ask Ken for help in this since he is the person who designed these boards. 

    Regarding output on the other jacks. 

    You have to setup the SDATAIO pins that are assignable to output the channels. Channels 4&5, 8&9, and 12&13 are all on serial port 0 and the SDATAIO pins allow access to these upper channels but the serial port has to be setup properly. This information is in the datasheet but I will see if Ken might have an example project.

    Dave T   

  • Here is the correct schematic for the Rev B board. Your channel designation (the ones on the silkscreen) are correct:

    PDF

    Here is a project demonstrating how to set the AD1937 CODEC on that board to 192 kHz.

    2642.SigmaDSP Programming CODEC via I2C to 192 kHz.zip

    Lastly, here is a demo project that shows how to configure all of the serial connections for the CODEC. It includes the GPIO and connections necessary for the optional Mic Canvas daughtercard, too, but you can ignore those inputs and configuration of MP24/MP25.

    Preconfigured_project_EVAL-ADAU1467Z_EVAL-MICCANVASZ.zip

    Ken

  • Hello Husnu,

    Regarding the serial port configuration of ADAU1467 Eval board : Like Dave said you can use output channels 4&5,8&9,12&13 and input channels 36&37 with proper serial port setup.Here I have included a project with all set serial ports (input and output channels) of ADAU1467.Hope it will be useful for you.

    Thanks David for your support.ADAU1467 s.port example for eval board 08-048585.dspproj

    Thanks & Regards,

    Harish

  • Hi Ken,

    Thanks your support,

    1-)Circuit Schematic you provided has still wrong labels such as Channelles 40-41 etc.

    2-) I have configured CODEC at 192KHz through I2C and all outputs are working well. When I loop back OUT2 to IN2 I have strange waveform. But When I loop back OUT2 to IN1 output is fine. I have included DSP Project, ADAU1937 Register settings, Block Diagram of my setup and Wafeform at Oscilloscope. Could you have any suggestion Why I'm having strange waveform at OUT3 ?

    King Regards,

    MCU_DSP.rar

  • Hello Dave,

    I had a couple of questions to Ken and not had response yet. it's important to give decision to use ADAu1466 or ADAU1467 in our system. 

    Is there any library for trigonometric functions in Sigma Studio for ADAU1466 or ADAU1467 ?

    Regards,

    Husnu.

  • Sorry for the delay. We had a long holiday weekend here.

    I am a little confused by your question. At first, you say that the problem is OUT2 to IN2, but you later say the strange waveform is on OUT3. You also have a question mark by OUT3 in your diagram. Are you having problems when you connect OUT3 to IN2? In the project, you are connecting IN2 to OUT3 internally, so you will have a feedback loop if you connect OUT3 to IN2 externally. That will, obviously, cause problems.

    Unfortunately, there are no trig functions available for the ADAU145x/6x processors. The core is pretty specialized and can't really handle them.

    Ken

Reply
  • Sorry for the delay. We had a long holiday weekend here.

    I am a little confused by your question. At first, you say that the problem is OUT2 to IN2, but you later say the strange waveform is on OUT3. You also have a question mark by OUT3 in your diagram. Are you having problems when you connect OUT3 to IN2? In the project, you are connecting IN2 to OUT3 internally, so you will have a feedback loop if you connect OUT3 to IN2 externally. That will, obviously, cause problems.

    Unfortunately, there are no trig functions available for the ADAU145x/6x processors. The core is pretty specialized and can't really handle them.

    Ken

Children
  • Hi Ken,

    There's nothing to confuse. OUT2(4,5) is externally looped back to IN2(36,37).  if you refer to project file IN2 is routed to OUT3(8,9) internally. I expect to see OUT2(1Khz Sinewave) signal at  OUT3 because of external loop and internal routing. 

    Simply OUT2>IN2>OUT3.  I don't realize why this configuration will cause problems, because I'm using this configuration at 48Kz and it is working without any problem. Problem related with 192Khz sampling rate and may be related with codec. That's why I need your support. I have included project file, codec setting and block diagram that you need.

  • Got it. I'll try running that here. What is the difference between the yellow and green traces? This works fine at 48 kHz but not at 192 kHz?

    The project file you sent is configured for 48 kHz only, but I see one bug immediately. You have set the START_PULSE to Base_Fs x4:

    This should be Base_Fs regardless of whether the project runs at 48 or 192 kHz.

    Ken

  • Hi Ken,

    Yellow and Green traces on osc are output signals at OUT3(Channels 8, 9). it does not work at 192kHz. OUT3 is internally looped back IN2.

    it's interesting When I have opened project file that I sent :

    /cfs-file/__key/communityserver-discussions-components-files/396/MCU_5F00_DSP.rar

    is configured as 192KHz.(fs- 192Khz)

    When I work at 48Khz Start Pulse Selection is set to Base_Fs. but for 192 Khz you should set to Base_Fs*4 unless you don't get proper signal. That's why it's set to Base_Fs*4 for 192Khz.

    I beleive my problem is either related IN2 settings  @192KHz sample rate. Here's sample project which all outputs are working at 192Khz without any internal and external loop backs.

    MCU_DSP_OUT.rar

    Husnu

  • Husnu,

    I have reproduced your problem. It seems that you have uncovered a silicon bug of which we were not aware.

    I didn't realize that you were using the START_PULSE setting to control the sample rate. While this works under most conditions (when clock master), it requires changing all of the SPORT settings, as well, which I hadn't noticed that you had done. I prefer to change the sample rate to 192 kHz by changing the CLKGEN1 ratio to 2/3 and leaving the SPORT settings alone. Your project was correct there, though. That was not the problem.

    As you suspected, the issue has to do with the SDATAIOx input missing timing and dropping a bit. It is fine at 96 kHz, but it fails at 192 kHz. The root cause is that the DSP is not making timing on the SDATAIOx input pins at high frequencies. They work fine as outputs, and the primary SDATA pins are fine.

    However, I have found a workaround (hack) for using 192 kHz on the second input on the eval board. That may or may not work in all systems, but it will get you running.

    1. Change the output mode of the ADC from I2S mode to left justified mode. This can be done when setting up the CODEC. Initialize the ADCCTRL1 register (address 15) to 0x04 instead of 0x00. The SDATAIO input needs this mismatch to catch the lost bit.
    2. Set input SPORT2 to use I2S mode as before.
    3. Immediately after the input, multiply the SDATA input by 0.5 (or right shift by one). This will correct for the LJ->I2S mismatch that left shifts by one.
    4. Important: Do not use inputs signals that would lead to > -6dBFS input on the SDATA pin since it comes in one bit too hot.

    This is, of course, a rather ugly hack, but it will work. In a real system, you should use an SDATA pin for faster serial inputs rather than SDATAIOx. The biggest downside to this workaround is that the signal on the SDATA pin effectively loses one bit of dynamic range.

    I've attached a project that incorporates all of this. i don't have a uC setup, so it uses the master control port as in my earlier example. I'm very surprised that this was not discovered during silicon validation or in the six years since this product was released. There is no plan to revise the silicon.

    I apologize for the trouble. Please let me know if you have more questions.

    Ken

    Example EVAL-ADAU1467Z with 192 kHz inputs.zip

  • Hi Ken,

    As an old Functional PCBA Test Engineer at Nortel/Application Engineer at STMicro some bugs will not appear unless your test plan covers, or some bugs will not occur during any kind of tests but occurs during application. it's OK and acceptable. So,if there's no plan to remove this silicon bug , still STATA I/O pins at@192Khz may be used. It would be better to notify designers about this situation. Also let Dave Thib know about this silicon bug. Anyway Thanks alot your great support. You may employ me as silicon validation engineer:))

    Kind Regards.

  • Hello Husnu,

    Ken and I work together a lot and we keep each other informed. Ken is the applications engineer who is in charge of this part where I am in charge of the ADAU1452 family. So we often help supporting both families of parts because they are so similar. 

    Please go to our website and look for open jobs and apply! Join our team!

    Careers at Analog Devices | Analog Devices Jobs

    You are precisely correct that it is just not possible to test for everything and with very flexible and complicated parts the problem becomes exponential. Hind-sight is always 20-20 and may seem like it should have been caught but we try our best. I subscribe to the Indian rug makers who make lovely works of art that you really do not want to put on a floor! They always stitch in some small tiny error because humans cannot make anything perfect, only God can do that so they purposely make it imperfect. So I guess we are certainly human! :) So much for my philosophy discussion of the week. :) 

    Thanks,

    Dave T