Audio Adapter Mic Bias - Can It Be Disabled?

Status
Not open for further replies.
Hello All,

My name is John - AJ6BC - relatively new to the forum.

I did a search for 'mic bias' - of course - got a lot of hits.

If there is a FAQ someplace I missed - please point that out.

Can the mic bias on the audio adapter be disabled? I took a quick look at the libraries and
also did some measurements - apparently not (noob) straight-forward - (another question -
maybe for another thread - can the audio libs be modified - I tried to recompile some
changes under arduino - didn't seem to take) -

I also popped the 2.2K resistor off - but that makes the gain go to minimum - so there
is a feedback loop there being checked - and it bottoms out without the 2.2K resistor
not being there (open) - from

control_sgt15000.cpp: - starting around line 295:

#define CHIP_MIC_CTRL 0x002A // microphone gain & internal microphone bias
// 9:8 BIAS_RESISTOR MIC Bias Output Impedance Adjustment
// Controls an adjustable output impedance for the microphone bias.
// If this is set to zero the micbias block is powered off and
// the output is highZ.
// 0x0 = Powered off
// 0x1 = 2.0 kohm
// 0x2 = 4.0 kohm
// 0x3 = 8.0 kohm
// 6:4 BIAS_VOLT MIC Bias Voltage Adjustment
// Controls an adjustable bias voltage for the microphone bias
// amp in 250 mV steps. This bias voltage setting should be no
// more than VDDA-200 mV for adequate power supply rejection.
// 0x0 = 1.25 V
// ...
// 0x7 = 3.00 V
// 1:0 GAIN MIC Amplifier Gain
// Sets the microphone amplifier gain. At 0 dB setting the THD
// can be slightly higher than other paths- typically around
// ~65 dB. At other gain settings the THD are better.
// 0x0 = 0 dB
// 0x1 = +20 dB
// 0x2 = +30 dB
// 0x3 = +40 dB

So, can we run with the bias resistor powered off and having that block in high impedance?
Or will the feedback just force the gain to bottom out?

I just want to know if the DC bias can be disabled or not basically.

Thanks!

73's,
John
AJ6BC
 
If you are trying to use a dynamic microphone then a series capacitor on the input is going to
achieve this easily, say 10k to ground and 470nF series capacitor.

I would have suggested removing the 2k2, but since that doesn't work I think adding something inline
is a better approach.

If you want high quality a proper microphone amp into line-in will be the way to go as the mic input is
pretty basic (I see spurs and distortion in the spectrum of the mic input for instance).
 
Hello MarkT,

Thanks for the reply - can you please post a screen shot of your scope capture of the spurs and distortion you are seeing?

Ok - if you kick off a complete rebuild - it appears you can change that register - I forgot that Arduino likes to 'cache' builds - and if you don't trigger a new cache build,
any new stuff you may add/put in/delete/change won't get compiled in. A little annoying at times but makes the builds 'faster' - wow. With machines now - not sure
that's even a good reason anymore - but again, another argument for a different day.

So, in control_sgt15000.cpp:

\Arduino\hardware\teensy\avr\libraries\Audio\control_sgtl5000.cpp: /// return write(CHIP_MIC_CTRL, 0x0170 | preamp_gain)

Replaced with:

\Arduino\hardware\teensy\avr\libraries\Audio\control_sgtl5000.cpp: return write(CHIP_MIC_CTRL, 0x0070 | preamp_gain) // try to disable mic bias block

From build:
"C:\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Time" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Bounce" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SPI" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SD" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SerialFlash" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Metro" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\ILI9341_t3" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Wire" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\utility" "C:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\control_sgtl5000.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE

"C:\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-Ic:\\AppData\\Local\\Temp\\arduino_build_740912/pch" "-IC:\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Time" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Bounce" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SPI" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SD" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SerialFlash" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Metro" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\ILI9341_t3" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Wire" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\utility" "C:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\control_sgtl5000.cpp" -o "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_sgtl5000.cpp.o"

"C:\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-Ic:\\AppData\\Local\\Temp\\arduino_build_740912/pch" "-IC:\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Time" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Bounce" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SPI" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SD" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\SerialFlash" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Metro" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\ILI9341_t3" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Wire" "-IC:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\utility" "C:\\Arduino\\hardware\\teensy\\avr\\libraries\\Audio\\control_sgtl5000.cpp" -o "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_sgtl5000.cpp.o"


"C:\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-gcc" -O2 -Wl,--gc-sections,--relax "-TC:\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4/imxrt1062_t41.ld" -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "c:\\AppData\\Local\\Temp\\arduino_build_740912/_60WWVB_6_dec_8.ino.elf" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\sketch\\AudioDecimateByN.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\sketch\\_60WWVB_6_dec_8.ino.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\sketch\\samples.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\sketch\\wwvb.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Time\\DateStrings.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Time\\Time.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Bounce\\Bounce.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\memcpy_audio.S.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\data_spdif.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\data_ulaw.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\data_waveforms.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\data_windows.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\Quantizer.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\Resampler.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_fft1024.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_fft256.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_notefreq.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_peak.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_print.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_rms.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\analyze_tonedetect.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\async_input_spdif3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_ak4558.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_cs42448.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_cs4272.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_sgtl5000.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_tlv320aic3206.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\control_wm8731.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_bitcrusher.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_chorus.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_combine.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_delay.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_delay_ext.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_envelope.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_fade.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_flange.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_freeverb.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_granular.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_midside.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_multiply.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_rectifier.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_reverb.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\effect_waveshaper.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\filter_biquad.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\filter_fir.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\filter_variable.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_adc.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_adcs.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_i2s.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_i2s2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_i2s_hex.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_i2s_oct.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_i2s_quad.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_pdm.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_spdif3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_tdm.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\input_tdm2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\mixer.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_adat.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_dac.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_dacs.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_i2s.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_i2s2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_i2s_hex.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_i2s_oct.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_i2s_quad.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_mqs.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_pt8211.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_pt8211_2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_pwm.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_spdif.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_spdif2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_spdif3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_tdm.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\output_tdm2.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\play_memory.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\play_queue.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\play_sd_raw.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\play_sd_wav.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\play_serialflash_raw.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\record_queue.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\spi_interrupt.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_dc.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_karplusstrong.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_pinknoise.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_pwm.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_simple_drum.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_sine.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_tonesweep.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_waveform.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_wavetable.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\synth_whitenoise.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\utility\\sqrt_integer.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Audio\\utility\\imxrt_hw.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SPI\\SPI.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\File.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\SD.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\cache_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\card_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\dir_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\fat_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\file_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\init_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\utility\\NXP_SDHC.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\utility\\Sd2Card.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\utility\\SdFile.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SD\\utility\\SdVolume.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SerialFlash\\SerialFlashChip.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\SerialFlash\\SerialFlashDirectory.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Metro\\Metro.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\ILI9341_t3\\font_Arial.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\ILI9341_t3\\font_ArialBold.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\ILI9341_t3\\glcdfont.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\ILI9341_t3\\ILI9341_t3.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Wire\\Wire.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Wire\\WireIMXRT.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Wire\\WireKinetis.cpp.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912\\libraries\\Wire\\utility\\twi.c.o" "c:\\AppData\\Local\\Temp\\arduino_build_740912/core\\core.a" "-Lc:\\AppData\\Local\\Temp\\arduino_build_740912" -larm_cortexM7lfsp_math -lm -lstdc++

So, it's in the lib now.

I've got all of the DC bias voltages DC blocked, so I'll test this. If the chip itself requires feedback for the mic gain, it won't work. I checked the errata of the chip, nothing there other than something about the chip going
sideways during certain reboot conditions - sounded like one of those hard to repeat situations that didn't apply to this - and also that was the only errata(um) against the device.

I don't recommend anyone else trying to do this right now either until I determine it's OK - up to you of course but the register can be changed; doesn't mean it'll work.

73's,
John
AJ6BC
 
To PJRC Forum:

Appears to work - at least writing the register - looks like the cap there has to bleed off -
but I also have a way to read the mic control register now:

In control_sgtl5000.h:

unsigned int read(unsigned int reg); // removed from protected:

In the sketch:

// check value of mic control register:
mic_ctl_regval = sgtl5000_1.read(CHIP_MIC_CTRL);
Serial.printf("\r\nMic Control Register (ADDR 0x002A) = 0x%x \r\n", mic_ctl_regval);

And in the serial terminal window:

Mic Control Register (ADDR 0x002A) = 0x3

So, at least the register write appears to have been accepted.

73's,
John
AJ6BC
 
Hello MarkT,

Thanks for the reply - can you please post a screen shot of your scope capture of the spurs and distortion you are seeing?

Not sure I have a photo - that was from an FFT direct to a TFT display on the Teensy. It was from when I was playing with
coding higher resolution FFT than the audio lib ones and writing this to a TFT display live. The spur is 17.5kHz or thereabouts,
below the sensitivity of the FFT1024 from the audiolib I think (which is only fix15.1 resolution, so loses several bits). I think
I remember the mic signal picking up the line-out slightly too.
 
MarkT,

OK - thanks for the feedback.

You didn't have the audio I/O connected to anything that could explain the spur then - that couldn't have been a harmonic or sub-harmomic?
There's always a little cross-talk in audio systems.

Regards,
John
 
Not sure, think it was only on mic, could be something nearby in the electronic environment I suppose.
 
Status
Not open for further replies.
Back
Top