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