DriverConstants.h Question: es_output_device_t #21
-
I am bringing up a custom board based on ESP32-S3 and ES8388, and ran into confusing hardware behavior when enabling only one of the DACs inside the ES8388. The codec outputs a clean signal when I enable all DAC outputs, but I'm finding that the wrong output is disabled when I try to power down an output. The definition of the This is the datasheet that I am using for ES8388. Anyone able to explain where I'm going wrong in checking the datasheet against the enum definition? Thank you! Max P.S. - this is my first time posting a discussion on GitHub, any feedback on how to ask good questions is appreciated. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 5 replies
-
I was just taking the code that was provided by the Espressif ADF framework. If you want to correct this method, I suggest that you add a switch/case logic to the es8388.c. I am always happy to get corrections via a pull request. ps. how about getting rid of the enum completly and use int values instead of es_output_device or es_input_device ? |
Beta Was this translation helpful? Give feedback.
-
As far as i know es_output_device_t does not use es_output_device_t, so there shouldn't be anything to correct there. The idea of this library is to use the AudioBoard methods and not the low lever drivers |
Beta Was this translation helpful? Give feedback.
-
To support TDS is started to add the method setMute(bool, int line) to some Drivers |
Beta Was this translation helpful? Give feedback.
-
I committed a correction. Now I using the right es_dac_output_t values and the output device with setMute(mute, line) is determined correctly as well. But somehow I do not manage to mute the speaker on my AudioKit and I don't manage to spot the error. ps: your proposed enum is also mixing things up and does not correspond to the datasheet. |
Beta Was this translation helpful? Give feedback.
-
In my latest commit, I made sure, that the line number matches with the board definition: LINE1 goes now to LOUT1 and ROUT1. This behavior can be configured in the new AudioDriverConfig.h |
Beta Was this translation helpful? Give feedback.
I was just taking the code that was provided by the Espressif ADF framework.
As far as I can see, the es8388_config_output_device() method is not used anywhere in my framework and the devices are defined via es8388_init()
If you want to correct this method, I suggest that you add a switch/case logic to the es8388.c. I am always happy to get corrections via a pull request.
ps. how about getting rid of the enum completly and use int values instead of es_output_device or es_input_device ?