TLV320: tweaks to library

pull/5/head
Chip Audette 8 years ago
parent df03165997
commit ce0032dd78
  1. 21
      control_tlv320aic3206.h
  2. 15
      control_tlv320aic_3206.cpp
  3. 11
      examples/Tympan_TLV320AIC3206/Tympan_TLV320AIC3206.ino
  4. 3
      keywords.txt

@ -1,11 +1,15 @@
/* Extension control files for TLV320AIC3206 /*
* Copyright (c) 2016, Creare, bpf@creare.com control_tlv320aic3206
*
* Created: BPF@creare.com Jan-Feb 2017
Purpose: Control module for TLV320AIC3206 compatible with Teensy Audio Library
License: MIT License. Use at your own risk.
*/ */
#ifndef control_tlv320_h_ #ifndef control_tlv320aic3206_h_
#define control_tlv320_h_ #define control_tlv320aic3206_h_
#include "AudioControl.h" #include "AudioControl.h"
@ -15,9 +19,10 @@ public:
bool enable(void); bool enable(void);
bool disable(void); bool disable(void);
bool volume(float n); bool volume(float n);
bool inputLevel(float n); bool volume_dB(float n);
bool inputLevel(float n); //dummy to be compatible with Teensy Audio Library
bool inputSelect(int n); bool inputSelect(int n);
bool micGain(float n); bool setInputGain_dB(float n);
bool setMicBias(int n); bool setMicBias(int n);
private: private:

@ -156,6 +156,7 @@ bool AudioControlTLV320AIC3206::disable(void) {
return true; return true;
} }
//dummy function to keep compatible with Teensy Audio Library
bool AudioControlTLV320AIC3206::inputLevel(float volume) { bool AudioControlTLV320AIC3206::inputLevel(float volume) {
return false; return false;
} }
@ -269,7 +270,7 @@ void AudioControlTLV320AIC3206::aic_initADC() {
} }
// set MICPGA volume, 0-47.5dB in 0.5dB setps // set MICPGA volume, 0-47.5dB in 0.5dB setps
bool AudioControlTLV320AIC3206::micGain(float volume) { bool AudioControlTLV320AIC3206::setInputGain_dB(float volume) {
if (volume < 0.0) { if (volume < 0.0) {
volume = 0.0; // 0.0 dB volume = 0.0; // 0.0 dB
Serial.println("WARNING: Attempting to set MIC volume outside range"); Serial.println("WARNING: Attempting to set MIC volume outside range");
@ -298,8 +299,18 @@ bool AudioControlTLV320AIC3206::micGain(float volume) {
#define TYMPAN_DAC_VOLUME_LEFT_REG 0x0041 // page 0 reg 65 #define TYMPAN_DAC_VOLUME_LEFT_REG 0x0041 // page 0 reg 65
#define TYMPAN_DAC_VOLUME_RIGHT_REG 0x0042 // page 0 reg 66 #define TYMPAN_DAC_VOLUME_RIGHT_REG 0x0042 // page 0 reg 66
// -63.6 to +24 dB in 0.5dB steps. uses signed 8-bit
//volume control, similar to Teensy Audio Board
// value between 0.0 and 1.0. Set to span -58 to +15 dB
bool AudioControlTLV320AIC3206::volume(float volume) { bool AudioControlTLV320AIC3206::volume(float volume) {
volume = max(0.0, min(1.0, volume));
float vol_dB = -58.f + (15.0 - (-58.0f)) * volume;
volume_dB(vol_dB);
return true;
}
// -63.6 to +24 dB in 0.5dB steps. uses signed 8-bit
bool AudioControlTLV320AIC3206::volume_dB(float volume) {
// Constrain to limits // Constrain to limits
if (volume > 24.0) { if (volume > 24.0) {

@ -27,12 +27,11 @@ AudioConnection patchCord2(audioInput, 1, audioOutput, 1);
void setup(void) void setup(void)
{ {
//allocate the audio memory first //allocate the audio memory first
AudioMemory(160); //big number to accomodate the delay effect AudioMemory(10); //big number to accomodate the delay effect
//begin the serial comms //begin the serial comms
Serial.begin(115200); Serial.begin(115200); delay(500);
delay(500); Serial.println("Tympan_TLV320AIC3206: starting...");
Serial.println("Tympan_TLV320AIC: starting...");
// Setup the TLV320 // Setup the TLV320
tlv320aic3206_1.enable(); // activate AIC tlv320aic3206_1.enable(); // activate AIC
@ -51,8 +50,8 @@ void setup(void)
// tlv320aic3206_1.setMicBias(TYMPAN_MIC_BIAS_VSUPPLY); // set mic bias to supply voltage // tlv320aic3206_1.setMicBias(TYMPAN_MIC_BIAS_VSUPPLY); // set mic bias to supply voltage
// VOLUMES // VOLUMES
tlv320aic3206_1.volume(10); // -63.6 to +24 dB in 0.5dB steps. uses float tlv320aic3206_1.volume_dB(10); // -63.6 to +24 dB in 0.5dB steps. uses float
tlv320aic3206_1.micGain(10); // set MICPGA volume, 0-47.5dB in 0.5dB setps tlv320aic3206_1.setInputGain_dB(10); // set MICPGA volume, 0-47.5dB in 0.5dB setps
Serial.println("Done"); Serial.println("Done");
} }

@ -11,7 +11,8 @@ AudioControlTLV320AIC3206 KEYWORD1
inputSelect KEYWORD2 inputSelect KEYWORD2
setMicBias KEYWORD2 setMicBias KEYWORD2
volume KEYWORD2 volume KEYWORD2
micGain KEYWORD2 volume_dB KEYWORD2
setInputGain_dB KEYWORD2
AudioControlSGTL5000_Extended KEYWORD1 AudioControlSGTL5000_Extended KEYWORD1
micBiasEnable KEYWORD2 micBiasEnable KEYWORD2

Loading…
Cancel
Save