ΣSigmaStudio Ask AI Русский Log in

ADAU1761 Sound Output Issue Inquiry

SigmaDSP & SigmaStudio MOONG Mar 7, 2024 00:00 3 replies Original on forum ↗
Subscribe
MOONG Question
Mar 7, 2024 00:00

When booting the Linux kernel, the operation of the ADAU1761 chip was confirmed with an oscilloscope. Checked items: i2s dout/din, i2c bclk/lrclk.

When implemented in bare metal, the sound comes out normally, but when trying to play audio using ALSA in Linux, there is no sound output.

Items checked:

i2s clk and dout signal output when running aplay

No output of MONOOUT / LHP, RHP signals

Issue 2 seems to be the problem, but I'm not sure why it's not coming out.

I am using the adau1761.c / adau17x1.c codec, what could be the problem?

When applying dapm, it was confirmed that everything is applied in ADAU1761_OUTPUT_MODE_HEADPHONE mode.

What should I review?

Edit Notes
The circuit configuration for the output from the codec is similar to that of the EVAL-ADAU1761.

[edited by: MOONG at 5:31 AM (GMT -5) on 8 Mar 2024]

Audio Signal Processors

Audio Products

hardware

adau1761 not work

SigmaDSP Audio Processors

adau1761

Show More

DaveThib Reply
Mar 8, 2024 00:00

Hello MOOG,

I went into SigmaStudio and pulled out an ADAU1761 but you could pull out a 1361 as well. Then I dropped in the USBi interface and connected it.

I setup the communications protocol to be SPI so I would not have to have hardware to do this.

Then I set up the playback path with all the outputs on like this:

Then I clicked on all the controls to set them into the correct mode and I pulled up the Capture window and selected all the lines. You cannot do CTRL-A you have to click on the first one and then shift-click on the last one.

It looked like this:

Then I hovered the mouse over the selected area and right clicked and selected "save as Text"

This is what the start of the file looks like:

This is the file I ended up with:

Fullscreen
Test output from Capture Window.txt
Download

Block Write
Time: 16:04:13 - 375ms
IC: IC 1
Param Name: IC 1.Playback Mixer Left Control 0
Param Address: 0x401C
Bytes: 1
Param Data:
0x20

Block Write
Time: 16:04:14 - 740ms
IC: IC 1
Param Name: IC 1.Playback Power Management
Param Address: 0x4029
Bytes: 1
Param Data:
0x03

Block Write
Time: 16:04:14 - 746ms
IC: IC 1
Param Name: IC 1.Playback Mixer Left Control 0
Param Address: 0x401C
Bytes: 1
Param Data:
0x21

Block Write
Time: 16:04:18 - 312ms
IC: IC 1
Param Name: IC 1.Playback Headphone Left
Param Address: 0x4023
Bytes: 1
Param Data:
0xE5

Block Write
Time: 16:04:20 - 800ms
IC: IC 1
Param Name: IC 1.Playback Headphone Left
Param Address: 0x4023
Bytes: 1
Param Data:
0xE7

Block Write
Time: 16:04:23 - 259ms
IC: IC 1
Param Name: IC 1.Playback LR Left
Param Address: 0x4020
Bytes: 1
Param Data:
0x01

Block Write
Time: 16:04:27 - 595ms
IC: IC 1
Param Name: IC 1.Playback LR Left
Param Address: 0x4020
Bytes: 1
Param Data:
0x03

Block Write
Time: 16:04:31 - 165ms
IC: IC 1
Param Name: IC 1.Playback Line Out Left
Param Address: 0x4025
Bytes: 1
Param Data:
0x1F

Block Write
Time: 16:04:34 - 270ms
IC: IC 1
Param Name: IC 1.Playback Line Out Left
Param Address: 0x4025
Bytes: 1
Param Data:
0xE7

Block Write
Time: 16:04:37 - 407ms
IC: IC 1
Param Name: IC 1.Playback Line Out Left
Param Address: 0x4025
Bytes: 1
Param Data:
0xE6

Block Write
Time: 16:04:40 - 757ms
IC: IC 1
Param Name: IC 1.Playback LR Mono Ctrl
Param Address: 0x4022
Bytes: 1
Param Data:
0x01

Block Write
Time: 16:04:42 - 326ms
IC: IC 1
Param Name: IC 1.Playback LR Mono Ctrl
Param Address: 0x4022
Bytes: 1
Param Data:
0x03

Block Write
Time: 16:04:46 - 018ms
IC: IC 1
Param Name: IC 1.Playback Line Out Mono
Param Address: 0x4027
Bytes: 1
Param Data:
0xE7

Block Write
Time: 16:04:58 - 513ms
IC: IC 1
Param Name: IC 1.Playback Line Out Mono
Param Address: 0x4027
Bytes: 1
Param Data:
0xE3

Block Write
Time: 16:05:02 - 718ms
IC: IC 1
Param Name: IC 1.Playback Line Out Mono
Param Address: 0x4027
Bytes: 1
Param Data:
0xE2

Block Write
Time: 16:05:09 - 468ms
IC: IC 1
Param Name: IC 1.Plaback Mixer Right Control 0
Param Address: 0x401E
Bytes: 1
Param Data:
0x40

Block Write
Time: 16:05:10 - 851ms
IC: IC 1
Param Name: IC 1.Plaback Mixer Right Control 0
Param Address: 0x401E
Bytes: 1
Param Data:
0x41

Block Write
Time: 16:05:12 - 500ms
IC: IC 1
Param Name: IC 1.Playback Headphone Right
Param Address: 0x4024
Bytes: 1
Param Data:
0x1F

Block Write
Time: 16:05:14 - 887ms
IC: IC 1
Param Name: IC 1.Playback Headphone Right
Param Address: 0x4024
Bytes: 1
Param Data:
0xE7

Block Write
Time: 16:05:25 - 019ms
IC: IC 1
Param Name: IC 1.Playback LR Right
Param Address: 0x4021
Bytes: 1
Param Data:
0x01

Block Write
Time: 16:05:30 - 547ms
IC: IC 1
Param Name: IC 1.Playback LR Right
Param Address: 0x4021
Bytes: 1
Param Data:
0x09

Block Write
Time: 16:05:39 - 428ms
IC: IC 1
Param Name: IC 1.Playback Line Out Right
Param Address: 0x4026
Bytes: 1
Param Data:
0x1F

Block Write
Time: 16:05:39 - 973ms
IC: IC 1
Param Name: IC 1.Playback Line Out Right
Param Address: 0x4026
Bytes: 1
Param Data:
0x1E

Block Write
Time: 16:05:42 - 511ms
IC: IC 1
Param Name: IC 1.Playback Line Out Right
Param Address: 0x4026
Bytes: 1
Param Data:
0xE6

Block Write
Time: 16:05:50 - 020ms
IC: IC 1
Param Name: IC 1.Playback Power Management
Param Address: 0x4029
Bytes: 1
Param Data:
0x03

So go through this file and then go through your code to see if you are enabling all the correct signal paths. You have to look at the defines and figure out which registers they are for. The define names should be similar to the control name so that would help.

Then make sure you are sending the correct register writes.

Dave T

pastedimage1709932586064v2.png
pastedimage1709932586064v2.png
pastedimage1709933072104v1.png
pastedimage1709933072104v1.png
pastedimage1709933225382v2.png
pastedimage1709933225382v2.png
pastedimage1709933436476v3.png
pastedimage1709933436476v3.png
MOONG Reply
Mar 12, 2024 00:00

Hello Dave,

I came across a piece of information stating that uploading a bin file to Linux only includes DSP information, and I only recently understood this. I've confirmed that it uploads correctly, but there's something I'm really curious about, and solving this seems like it would be the final step.

DAC ON/OFF
-> I used alsamixer to set options like Mixer 3/4 Enable or Mixer7 Enable, but the most critical part, unmuting the DAC, doesn't seem to work as MX3LM and MX4RM don't change to Unmute. Can you provide any guidance on this?
If I need to modify the code, which part should I look at? I'm really at a loss here.

The photo below shows the current codec state read by the Sigmastudio tool Playback Output read aftersetting it up with alsamixer.

Thank you !

DaveThib Reply
Mar 12, 2024 00:00

Hello Moong,

I am also at a loss. I am not a Linux expert and have no platform here to do any Linux work. You had posted a couple of times in the Linuz space and the manager of that space simply moved it over to the Audio space or SigmaDSP space. I support the SigmaDSP and audio codec products so that is not exactly wrong but your issues is falling into the cracks between these two worlds.

Your approach of using the alsamixer options is what I was talking about from the start. To use sigmaStudio to develop what the registers need to be and then looking at the defines in the Linux driver to see which defines control those registers. I would look at all the defines and look at the register addresses you need to change. Somewhere there will be a place where the register address is defined. Many of the registers will have several bit fields so those will be defined with similar names. Then somewhere in the code all the bit fields will be "OR"'d together and written to the register using the name in the defines.

That is what you need to look for. You are doing well so far by finding the mixers. Make sure the volume controls are up. Regarding the mutes, do what I suggest and search the header files for the hex or the decimal address of the register. It could be listed as hex but it also could be listed as decimal.

Dave T

I tried to respond to your PM but your settings do not allow me to respond. So send me a friend request.