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.

TAS3108 metering application, peak and RMS, with 1dB LEDs (x 24 LEDs) and I2C

Other Parts Discussed in Thread: TAS3108, TPIC2810, TAS3103A, TLC5947, TAS3103

Howdy... I have a metering application where 24 LEDs represent 1dB increments for peak and RMS levels (dBFS).  For example, LED0 = 0dB..LED1 = -1dB..LED2 = -2dB..LED23 = -23dB (not to preclude non-linear scaling at the bottom of the range, e.g., LED23=-30dB..LED22=-25dB, etc.).  The LEDs can be driven with something like (for example) an I2C aware TPIC2810D (24 LEDs = qty 3 TPIC2810D for each channel).   Peak and RMS would be different colors on the bargraph (so qty 6 TPIC2810D's per channel)

I suspect that the TAS3108 can do this but the question is how to get the 1dB ranges spit out on the I2C bus to drive multiple TPIC2810D's in the 1dB format from the internal formats used in the TAS3108 as output from the peak and RMS functions.  Some of the other TAS3x units have VU, but the VU (if modeling the ballistics of a true VU meter) is not desireable, rather real peak and RMS is best, perhaps being updated around 50 times per second (this is not a strict requirement, but updating once a second is probably not ideal).

Additionally, simultaneous dither on the output may also be desirable for the audio signal from SAP in to SAP out... Perhaps minor, but something to consider when paralleling the peak and RMS functions..

Any thoughts?

Cheers,

-chris

 

 

  • Chris,

    Chris Mack said:
    suspect that the TAS3108 can do this but the question is how to get the 1dB ranges spit out on the I2C bus to drive multiple TPIC2810D's in the 1dB format from the internal formats used in the TAS3108 as output from the peak and RMS functions.

    The TAS3108 can be programmed with PurePath Studio which has both a RMS and a Peak Detector that you can use without writing the assembly code. PurePath Studio also has a VU meter that is modeled after the VU meter that the TAS3x devices have.

    Any internal DSP register in the TAS3108 can be polled via I2C at any given time via the slave I2C port.

    The I2C port runs at 100kbps, and all I2C transactions kick off a high priority ISR that submits a request to the DSP for the value of any particular DSP register.

    One Method:

    If you're willing to dive into the assembly language code, you can first use the Graphical Development Environment to mock up some spliters/comparators in the GDE -> generate the code, then use the integrated IDE in PurePath Studio to bitmap the outputs of all the comparators into a format to match the format of the TPIC2810 (or other device). Then using host MCU, poll the TAS3108, then write the values directly to the TPIC2810's via I2C. This also requires a little bit of manipulation of the internal MCU code, which requires you to have a 8051 compiler.

    It'll take a quite bit of  elbow grease, but it'l allow you to get the value of the peak/rms detector as a much much faster rate than doing the conversion external to the TAS3108.

    Drew

     

     

     

  • Thanks for your help Drew.... Good news...besides saving a bundle on insurance, I just got a case of elbow grease fresh in yesterday...

    But I guess the remaining question is: what is the internal number representation of the TAS3108 especially when output from the peak and RMS block to get into dB?

    I seem to recall seeing the internal number representation from the TAS3103A (with a nifty 5.3 number format from the RMS detector) but no format from the TAS3108 datasheet... I am missing it in my reading somewhere perhaps?

    As part of the reconstruction meter methodology, results would encompass numbers above 0 dBFS for detection/simulation of inter-sample clipping...   similar to headroom bits in the TAS3103A?

    Also switched to the TLC5947 for 24 Channels of delicious LED drive capability... it also has 12-bit PWM data serialized in for each LED, so I can simulate persistence... I will have a host processor that will then be polling the registers in the TAS3108, but would need to know internal representation for dB calculation... Then I can formulate it and bit map into 12-bit PWM....

     

    Cheers,

    -chris

  • Chris Mack said:

    But I guess the remaining question is: what is the internal number representation of the TAS3108 especially when output from the peak and RMS block to get into dB?

    Chris,

    The internal format of the TAS3108 Digital Audio Processor Data Registers is a 48 bit 25.23 fixed point number. There are considerable differences between the TAS3108 and TAS3103A. The TAS3103 has a fixed 'semi configurable' architecture, where the TAS3108 is fully programmable.

    Please register for access to the TAS3xxx-PurePath Studio Extranet for detailed information on the Components available in PurePath Studio as well as a trial version of the software. You will also find the instruction set and architecture of the TAS3108 on the extranet.

    Drew

     

  • Hey Drew,

    Thanks for your help... Good to know... Indeed I already have PurePath Studio and registered on the Extranet a while ago... I should probably go take a look again at the docs... have been busy on other aspects of the design.

    Cheers,

    -chris