I have an application with a speaker and a microphone in it. I would like to add a “speakerphone” functionality to this application.
Based on some measurements and the amount of required processing power a full-duplex speakerphone is out of scope. There are too many resonant and the microphone is not “flat” enough.
Om my board there is a SigmaDSP, ADAU1761. I think it would be possible to let this SigmaDSP do the job.
For people with are familiar with the good old MC34118 speakerphone chip. This is the functionality I want to make. For the others, a simple description: To prevent howling there is a reduced gain in the speaker and microphone path. When de input level from the line rise above a dynamic noise threshold the line gain is increased and the microphone gain is reduced and vice versa.
Creating the level detectors is possible using the available components. But I have some difficulties with the other parts.
First of all, I can’t find a volume control block with a dB linear control input. To realize the mentioned futures a 40 to 50dB adjustable gain is required.
Second, what is the best method to realize the control mechanism in SigmaStudio? Normally I write C source. Thinking about the algorithm and the available components I see a lot of DC sources additions and compare blocks. Is this the way to go, or is it possible to create a block writing SigmaDSP assembler or something like that?