TDA7419 De-mystified and Secrets revealed. (TDA 7419). Part 2:

In This part we will be going to the Code you can download it from here

https://github.com/SunRays979/TDA7419

You will need the following projects to get the code compiled.

https://github.com/liman324/TDA7419

https://github.com/adafruit/Adafruit-GFX-Library

https://github.com/shirriff/Arduino-IRremote

https://github.com/mathertel/RotaryEncoder

High level Code Walk thru.

We use the https://github.com/liman324/TDA7419 library to control the IC. We also use the ADAFruit GFX and ILI9341 Libraries. The main issue with ILI9341 was the frequency of communication. A lot of users had complained that the library does not work. If the frequency is set properly the LCD responds correctly.
Arduino pins 8,9,10,11,12,13 are used to interface with the LCD.

#define TFT_CLK 13
#define TFT_MISO 12
#define TFT_MOSI 11

#define TFT_DC 8
#define TFT_RST 9
#define TFT_CS 10

IR Remote is from http://github.com/shirriff/Arduino-IRremote .
Remove uses Arduino pin 2
#define IR_RECV_PIN 2

Encoder library is from https://github.com/mathertel/RotaryEncoder
Encoder uses pins 7 and 5 or Arduino. The encoder push button is mapped to pin 6.
#define ENCODER_PIN_A 7
#define ENCODER_PIN_B 5
#define ENCODER_PIN_SW 6

We use Rectangles to draw the Widgets. There are five different widgets that we can render, all the widgets respond to the key events. To optimize painting only the current focused widget is painted.

More to come…

TDA7419 De-mystified and Secrets revealed. (TDA 7419). Part 1:

TDA7419 is a very powerful IC that can do a lot of things, but since the documentation is very sparse and it even lacks a publicly available application notes. We figured lets take a crack at how we can use it in various use cases. In the following series of posts and videos we will see the various features for TDA 7419. It is primarily designed for Hi-End CAR Audio systems and applications so has very good performance characteristics. This is an ideal candidate for Low-cost Audiophile Digital Input Switchers, Digital Volume Controls, Digital Tone Controls , Mixer for Sub-woofer output etc.

These are the features of TDA 7419

TDA 7419 is basically a hi performance BICMOS Audio Signal processor using the linear signal processing.

It has a Built in Input Selector , You can select from 3 Single Ended Inputs (RCA) or one Quasi Differential Input (Like XLR.) . What is Interesting is that it has TWO Outputs. More on that later.

It has 5 Speaker outputs. Front Left+Right, Rear Left+Right and Sub-Woofer out,

It has a Input Gain Which is useful to Equalize the different Inputs, and a Master Volume control (Attenuator) ,

It has a Powerful Signal processor to control BASS, Mid and Treble Controls. With Selectable Center Frequency and the Q Factor which is basically how wide the Center Frequency Curve is. It has a Separate Loudness Control with Selectable low and high frequency boost and programmable center frequency .

It has a Mixer with LPF and a Sub Woofer output.

It also has a Mixer that allows one input to be Mixed into Front Speakers for Application like a Navigation System output mixing into the main Car Music System.

One Interesting thing about this IC is that it has a whole lot of switchers inside that allow us to customize how the Audio Signal Gets Routed. We can control this IC using I2C.

To control this IC from an MCU , I decided to use arduino there are some projects out there that use PIC too. I wanted to have a Color TFT with a Nice User Interface that would allow me to easily control all the aspects of the IC. I selected a SPI TFT LCD module with ILI9341 controller so I can use the Hardware SPI for LCD and I2C for the TDA7419.

I wanted to have multiple ways to control the UI so there are options for using a Remote , a Push button Interface and a Rotary Encoder with switches. We will go thru all the options in the series.

There are similar projects by others but I could not find a user friendly UI.
https://rcl-radio.ru/?p=57658

The Data sheet is pretty sparse on technical details I also went thru the Arduino Library Source Code at https://github.com/liman324/TDA7419 .

Finally I found the Linux Device driver at https://github.com/torvalds/linux/blob/master/sound/soc/codecs/tda7419.c

This had a lot more information about the internals of the IC and how to almost all of the features that the IC provides.