This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLV320AIC3254: TLV320AIC design query

Part Number: TLV320AIC3254
Other Parts Discussed in Thread: , TMS320C5515

Hello, 

I am looking to develop a digital stethoscope as per the TI implementation using the TLV320AIC3254 audio codec. I had some queries regarding this:

1. How do I operate power supply for this IC? As per my understanding 1V8 supply should work, but the maximum is 1v9. Is this correct?

2. The MDK uses I2C (for configuring) and I2S for data transfer. But it also has SPI enabled in it. Is there any difference in using the I2C & I2S interface as opposed to using SPI. Does it prevent me from using certain features?

3. The pull-up resistors used in the EVM are 2.7K pulled up to 3V3. In my custom board I am using 2 I2C buses, with 4.7K and 10K pullup respectively. Can I use the Codec IC on any of these buses without facing an issue?

4. What is the difference between evaluating using the TLV320AIC3254EVM-K and the Medical Development Kit containing this codec, specified on the digital steth application note? 

  • Sudarshan,

    The TLV320AIC3254 is a good fit for a digital stethoscope system. The Digital Stethoscope Medical Development Kit uses a TMS320C5515/C5517 EVM with a daughter card with the digital Stethoscope analog front end. With regards, to your questions:

    1) The TLV320AIC3254 has three power supplies:

    • AVDD (analog). This supply has a range of 1.5V - 1.95V, with a nominal recommended supply of 1.8V. For best performance, use an LDO regulating to 1.8V from a higher supply on the system.
    • IOVDD (digital I/O pins). This supply has a range of 1.1V - 3.6V. Share the same IOVDD supply as the I/O of other devices interfacing to the TLV320AIC3254 codec. For example, the same I/O supply as the TMS320C55xx device.
    • DVDD (digital core logic). This supply has a range of 1.26 - 1.95V, with a nominal recommended supply of 1.8V. You  can use a DC-DC converter or LDO to regulate 1.8V. For best performance, do not use the same supply for AVDD as DVDD since the high frequency switching of digital logic will add noise to the DVDD power supply.  Thus keep the analog power and grounds separate from the digital power and ground.

    For typical battery operated systems, the power management takes power form battery and regulates it to the required supplies. If using rechargeable batteries, or USB power start with a battery charger IC. Selection of the charger depends on the number of cells, battery chemistry, and charge current. For example, for a single cell Li-Ion with support to 2A charge, a BQ24250 might be a good fit. Then follow this with regulation for I/O, digital logic, and analog. For example, a 3.3V regulator for I/O and digital supply could be a TPS63036 or a TPS767D3xx. 1.8V analog regulation could be a REG1117. Selection of these regulators depend on the input voltage, output voltage, and total peak power consumed by the devices connected to this supply.

    Refer to MDK or EVM schematics for examples on power management circuits and layout.

    2. SPI and I2C are used by the TLV320AIC3254 for control. I2S is used for data transfers to the TLV320AIC3254. Selection of SPI and I2C is highly dependent on the other devices on the board, how fast the microprocessor/DSP can support the transfers, number of routing traces supported on the board, the peripherals are available on the microprocessor/DSP, and the clock speed supported on these interfaces.

    • I2C is a simple two-wire interface that allows for several devices to be wired to the same bus. The TLV320AIC3254 supports 100 and 400kHz transfers. Each transfer has overhead of a device address and acknowledgement bits.
    • SPI is a four wire interface. Several devices can share the same bus, if a specific chip select line is wired to each device and only one transfer at a time is allowed by the software. Several devices can also have individual bus. The TLV320AIC3254SPI supports SPI clock rates of 10 MHz at 1.8V, so this interface is much faster than I2C and does not have the extra transmission of address and acknowledge as in I2C.

    In summary, SPI offers faster transfer rates at the expense of extra trace routing on the board and requires specific chip selects or another SPI bus for each device the microprocessor/DSP needs to interface. For most control type data, the extra speed is not needed since the registers are set at boot up. The convenience of routing a couple lines tends to prefer I2C or SPI.

    I2S is always needed since this interface transfers the data from the ADC and DAC.

    3) I2C pull-ups are selected depending on the total bus capacitance to match the maximum rise time of the I2C signal. The bus capacitance and and sink current of the I2C I/O determine the minimum rise time of the I2C signal:

    So for a 30% to 70% rise time with Vdd = 3.3V, using the typical rise time V(t) = Vdd[1 - e^(-t/RC)]
    V(t1 of 30%) = 0.3 * Vdd
    = Vdd[1 - e^(-t1/RC)] 
    =>  t1 = - ln[1 - 0.3] * RC
    V(t2 of 70%) = 0.7 * Vdd
    = Vdd[1 - e^(-t2/RC)]
    =>  t2 = - ln[1 - 0.7] * RC
    Trise = t2 - t1 = RC * {ln[1 - 0.3] - ln[1 - 0.7]}
    So, Rmax = tr /{[ln(1 - 0.3) - ln(1 - 0.7)] * C} =  tr / [ln( 0.7 / 0.3 ) * C] = tr / (0.847 * C)
    So for 100KHz and 400KHz, the max bus Capacitance for I2C bus is 400pF.
    For 100KHz I2C, tr max is 1000ns, R = 1000ns / (0.847 * 400pf) = 2.95K
    For 400KHz I2C, tr max is 300ns, Rmax = 300ns / (0.847 * 400pf) = 885
    For a simple processor to I2C bus, this bus capacitance might be 50-100pF. So for 400KHz:
    tr max for 100pF, Rmax = 300ns / (0.847 * 100pf) = 3.5K
    tr max for 50pF, Rmax = 300ns / (0.847 * 50pf) = 7K
    The min value of R is dependent on the sink current of the I2C cell which is spec at 4mA for C5515 Iol. The I2C standard calls for 
    At 3.3V:
    Rmin = (Vdd - Vol)/I = (3.3 - 0.4)/ 4mA = 725

    At 1.8V:

    Rmin = (Vdd - Vol)/I = (1.8 - 0.4)/ 4mA = 350

    So in summary:
    At 3.3V, 725 < R < 300ns / (0.847 * C), typical value of 4.7K is used for a bus with 75pF
    At 1.8V, 350 < R < 300ns / (0.847 * C), typical value of 4.7K is used for a bus with 75pF
    a 10K pull-up might be too weak if the bus capacitance is greater than 35pF.

    4) The MDK has specific analog front end components tailored for a digital stethoscope to connect to a C55xx EVM:

    • MicBias routing to power the microphones.
    • Headphone jack for microphone in single ended mode.
    • A pre-amplifier (PGA) to boost the low signal from the microphones to the AIC3254. This allows the input signal to match the dynamic range of the AIC3254 so as to maintain high precision during conversion. Otherwise, the low signal will only cover a couple bits of the conversion, not the full range of conversion.
    • Low pass filters to block high frequency components not desired from a stethoscope signal that just add noise to the conversion.
    • Software/ demo application showing how to interface a C55xx DSP and AIC3254 to record heart in bell or diaphragm mode, detect heart beat, and display on screen.

    The TLV320AIC3254 EVM has on on-board microphones or a headphone jack connected to the AIC3254 in differential mode. This could be used for a digital stethoscope, but might need to use different microphones, add pre-amplifier, and low pass filter. This EVM is meant to use USB to send the data to a PC and not to interface directly to a C55x EVM.

    best regards,

      Pedro

  • Can i use the mic's provided on the EVM to acquire the heart beat .

    And and code needed to acquire the data

  • Ramesh,

    You can use the microphones in the EVM. However, the bell pick up helps boost the low frequency heart sounds and the algorithms were designed with that in mind. If you look at a stethoscope, there are two pick ups: bell and diagram. The diagram is used for higher frequency sounds like breathing, while the bell is for low frequency heart sounds.

    Best regards,
    Pedro