Post Go back to editing

AD1852 3.3V I2C

Hello guys,

So I have the following situation:

- I am using a Bluetooth module that output I2C justified data (48kHz sampling rate and a variable bit rate {between 16-24-32 bits} depends on played format) to the AD1852. The I2C lines are pulled high by 4.7k pullups at a 3.3V and when data is transferred from the module to the DAC (I have checked it with a logic analyser) the audio output is filled with noise ( something like pink noise).

Can this be caused by the fact that the I2C line is pulled at 3.3V and not at 5V (i tried with a logic level shifter and there is no audio coming out at all, I think I even burned the DAC)? If this is not the problem, can someone suggest me what it could be and how to solve it. 

Thank you for the attention.

  • Hello Gtv31,

    First you keep referring to the I2S as I2C. I hope you realize the difference. Normally, you do not need pull-ups on I2S data lines unless you are using open collector outputs for some reason.

    So you will absolutely require a level translator to translate the 3.3V signal to 5V.

    How do you have the DAC configured? There are a couple of options for the I2S format.

    In this application it will simplify things a great deal if you transmit in proper I2S format which is left justified with one BCLK delay and 32 BCLK cycles per channel (64 BCLKs per frame). This way it will not matter if the data is 16 bit, 20 bit or 24 bit. If you transmit 32 bit data the lower 8 bits will be ignored but the audio will still playback fine but will have only 24 bits of resolution.

    The fact that you have what sounds like pink noise, means that the data is not being presented properly at the ports.

    Take a scope screenshot of the signals as close to the AD1852 pins as possible. Show the relationship with the LRCLK, BCLK and data on the screen at the same time. (if possible). If not than one capture with LRCLK and BCLK and one with LRCLK and SDATA.

    Capture a shot of the MCLK as well.

    Measure the following frequencies:

    MCLK

    LRCLK

    BCLK

    Send me your register settings.

    Thanks,

    Dave T

  • Hello Dave T,

    Sorry for the continuous mixing of I2S with I2C, I mean I2S. Also thank you so much for the reply and the help, this is a university project, so all the help is more than appreciated.

    I have to add that after performing the measurements I noticed that the MCLK, which should be 49.152MHz, but the oscilloscope measures from 49.0 to 49.5MHz and I do not know if this is because of the oscilloscope (60MHz bandwidth) or jitter. The BCLK, LRCLK and SDATA are according to datasheet and I also measured them with a logic analyser and I could observe that data is transferred properly. I also measured the power lines and there is only 5mV ripple, which probably is to much. 

    Please find attached the following screenshots (all screenshots are with 1kHz sine wave played through Bluetooth module {RN52} ):

    - BCLK (yellow) vs. LRCLK (blue)

    - LRCLK (yellow) vs. SDATA (blue)

    - Left out (yellow) vs. Right Out (blue)

    - MCLK (yellow)

    Thank you for the attention.

    Kind regards,

    George T

  • Hello George T,

    Sorry for the delay. I was travelling.

    The basic waveforms seem fine but the voltage is a little low. I think you will need to use some level translators to convert from 3.3V level signals to 5V level signals.

    Also, what are the details about your PCB? How many layers? What are the layers used for?

    Regarding your measurements of the MCLK. Don't worry about it. We have really great Tektronics scopes here in our lab and I see the MCLK measurements jumping around like that. Basically, the scopes are not the greatest frequency counters and it will depend on your horizontal resolution etc. It gives you an idea that it is correct and that is usually good enough.

    I can suggest other parts to use that would not require level conversion. There can be other advantages. Tell me more about your application.

    Dave T

  • Hello Dave T,

    Thank you so much for the assistance in this project.

    This project is meant for my Minor (3rd year of Bachelor Electrical Engineering, specializing in Telecom and Sound Engineering) at the University of Fontys University of Applied Sciences (Eindhoven, Netherlands), so the goal of this project is to expand my knowledge in the field of sound engineering.

    The PCB that I am using is a hand made (hand print and etched here at the University labs). Its a two layered PCB with both layers copper plane is the Ground Plane which are interconnected by hand soldered vias.

    For the lever conversion (3.3V to 5V), I used the following type of logic level shifter:

    which ended in, I do not know for what reason, burning my DAC and I decided to get rid of the level conversion.

    Although, regarding this problem, I discussed it with a teacher from Uni and I might know the problem although I will also consult it with you.

    So the issue might be the output filter, as I see in the following picture:

    I think that this is due to the fact that I used the recommended filter from the datasheet

    although I did not use the SSM2135, but instead I used the OPA2134, which has much different input impedance, thus the filter might not be working properly, therefore I ordered the SSM2135 and I will substitute it today (26/05/2016) and observe the result, hopeful works.

    Thank you for the attention and assistance.

    Kind regards,

    George

  • Hello George,

    Thanks for the info. This is really helpful. Sometimes I have no idea who I am talking to and if I get too basic I can insult a "seasoned" engineer but then if I assume everyone is highly experienced then I can miss the root question which is rather simple. So thanks for letting me know a little about you.

    Your PCB looks really good. I also teach at two different local Universities as an adjunct professor so I have seen several student projects and you did a good job with the construction and have put a lot of work into it. All that being said, the PCB is part of the problem.

    Basically, digital signals are really analog signals that are carrying digital information. So for older guys like me it all comes back to analog!   So the digital levels, the rise times, fall times, overshoot and undershoot, and transmission line termination details are all very important. The transmission line impedance, inductance and capacitance are all very important and all gets lumped into the term "Signal Integrity". I find many engineers who do not appreciate the importance of this topic and have issues with their designs because of it. So if you want to impress a future employer during an interview, know these concepts. Have a look at this web site. I have attended a similar seminar in the past and have Eric's book. Teledyne LeCroy SI Academy

    You need to have at least a four layer PCB with the two internal layers being a ground plane and a power plane. The ground plane needs to be one large plane and the power plane can be broken up into several planes but it does complicate it a bit when you do that. It is a bit more than I can discuss here. (This post will be long enough as it is!)

    Have a look at the ADAU1452 datasheet. That datasheet has an excellent Applications section that details how to place bypass caps and how to connect to the power and ground layers. Page 171 - 174. This is all very important.

    Regarding level shifters. I would just use something like the SN74AVC4T245. (Yes, it is a TI part). There are VERY many different flavors of level shifters with different bit sizes, packages, and other features. What I learned not to do is use the automatic sensing type of shifters for bi-directional data. The drive strength of these parts are very low and so it can cause signal integrity issues. For I2C level shifters there are some existing specifically designed for I2C communication bus since it has an open collector design. For I2S you only need one direction unless you plan to be able to switch the clocks between master or slave. So, you need to use something like this in your design. The level I see on the scope are near the point where it might read as a 1 but might not. So the smallest noise or signal reflection can make it miss a pulse or double trigger.

    Regarding the Op-Amp. I did not look into the details. You may be correct that it is not functioning correctly. See what happens when you change them.

    So I think you may be able to get this board to work as is but you may have some glitches in the audio. Try getting a proper level translator tacked into the design. Then in your final project report you can address the glitches as being PCB related.

    I hope this helps.

    Dave T

  • Dear Dave,

    Excuse me for the late reply, I had a very busy week at Uni.

    I would like to update you on the project.

    So after changing the output opamp from OPA2134 to the SSM2135, the result is a significant improvement in the output sound quality although noise is still present.

    The I added extra decoupling caps at the power rails and where I had space enough I added PI filters.

    Regarding the 4 layer PCB I can not make it due to the fact that at Uni we can only hand etch double layer maximum and the posibility of ordering a PCB from for example EuroCircuits, the costs of it will go on my own pocket so I had to exclude that from the To Do list.

    I also added a logic level shifter (SN74LVC2T45 - TI)  that would convert the 3.3V output of the Bluetooth module (RN52 - Microchip) to 5V for the DAC (AD1852).

    The top PCB is the Bluetooth module, the PCB underneath is the Shield type Logic Level Shifter (double sided PCB with top and bottom plane being GND) and the bottom PCB is main PCB which contains the DAC and other components.

    After adding the logic level shifter I measured the BCLK and LRCLK before and after the logic level shifter and this is the outcome:

    Before Logic Level Shifter:

    - BCLK (light blue) & LRCLK (yellow)

    After Logic Level Shifter:

    - BCLK (purple) & LRCLK (dark blue)

    What I can observe here is quite a lot of ringing on those lines which I think is what probably causes the noise at the output of the DAC.

    Thank you for the attention and assistance.

    Kind regards,

    George

  • Hello George,

    Yes, that is a lot of ringing. Installing series dampening resistors on the BCLK, LRCLK, SDATA and MCLK lines will help dampen these down. The proper way to do this is to analyze the output impedance of the source of the signal, the input impedance of the input and then the impedance of the PCB trace along with the parasitic C and L of the vias. The problem here is that without a power or ground plane the PCB trace impedance is undefined. It is dangling in space with no way for parasitic return currents to return. Now in your case there is a ground plane on the top but that makes it really hard for the currents to return. The path may be really convoluted. Read the Signal Integrity book and you will see what I mean. So to quiet this all down will be very difficult because you are swimming against the current fighting Physics. So you will probably not be able to achieve anywhere near the noise specification of the part but that does not mean you failed. You just did as much as you could with what you have available to you.

    Dave T