coconuttopdrop
New member
Hi guys,
First time posting so start by thanking Paul for his amazing work.
I'm developing a multitrack DSP solution for academic purposes.
I'm using a Teensy 3.6, and for the project I need at least 8 Out's and TDM so and I'v opted to use the Texas Inst. PCM3168A
http://www.ti.com/product/PCM3168A
I'm coding the audio Audio Control Object for the PCM but i'm finding many roadblocks, mainly because I can't wrap my head around what's happening between the other control files and the audio lib ... So I come to you, ho mighty community, in hope you can shed some light as and help get out of noob lane.
I've set up a repository with what i'v developed this far.
https://github.com/lfpneto/Control_Pcm3168a
I2S control is working (yey!), but i can't get any sound into the thing(PCM3168a)!!
I'm using a white noise object, Teensy 3.6 TXD0 (pin 22) into PCM DIN 1 (pin 37).
The code:
First time posting so start by thanking Paul for his amazing work.
I'm developing a multitrack DSP solution for academic purposes.
I'm using a Teensy 3.6, and for the project I need at least 8 Out's and TDM so and I'v opted to use the Texas Inst. PCM3168A
http://www.ti.com/product/PCM3168A
I'm coding the audio Audio Control Object for the PCM but i'm finding many roadblocks, mainly because I can't wrap my head around what's happening between the other control files and the audio lib ... So I come to you, ho mighty community, in hope you can shed some light as and help get out of noob lane.
I've set up a repository with what i'v developed this far.
https://github.com/lfpneto/Control_Pcm3168a
I2S control is working (yey!), but i can't get any sound into the thing(PCM3168a)!!
I'm using a white noise object, Teensy 3.6 TXD0 (pin 22) into PCM DIN 1 (pin 37).
The code:
Code:
/* BASED ON TONE SWEEP EXAMPLE
*/
#include <Audio.h>
//#include "Wire.h"
#include <i2c_t3.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
#include "Control_Pcm3168a.h"
// WHITENOISE
// AudioSynthToneSweep myEffect;
AudioSynthNoiseWhite myEffect;
AudioOutputI2S audioOutput; // audio shield: headphones & line-out
// The WHITENOISE goes to left and right channels
AudioConnection c1(myEffect, 0, audioOutput, 0);
AudioConnection c2(myEffect, 0, audioOutput, 1);
AudioControlPCM3168A PCM3168A(true);
// when there is a call to function inputSelect(),
// expected to return do serial port AUDIO_INPUT_LINEIN address
const int myInput = AUDIO_INPUT_LINEIN;
//const int myInput = AUDIO_INPUT_MIC;
void setup() {
Serial.begin(9600);
while (!Serial) ;
delay(3000);
// ******
// ******
PCM3168A.TesteSerial();
//PCM3168A.setSlaveAddress();
//PCM3168A.readReg(0x41);
//PCM3168A.readReg(0x51);
//PCM3168A.disable();
//PCM3168A.MasterReset();
//PCM3168A.Resynch();
// ******
// ****** BLINK
pinMode(13, OUTPUT); // initialize the digital pin as an output.
digitalWrite(13, HIGH); // set the LED on
// Audio connections require memory to work. For more
// detailed information, see the MemoryAndCpuUsage example
AudioMemory(12);
// Enable the audio shield, select input, and enable output
PCM3168A.enable();
delay(100);
PCM3168A.begin(4);
//Mode 1 - DAC I2S Slave - ADC I2S Slave
//Mode 2 - DAC I2S Master - ADC I2S Slave
//Mode 3 - DAC I2S Slave - ADC I2S Master
//Mode 4 - DAC I2S Master - ADC I2S Master
PCM3168A.inputSelect(myInput);
PCM3168A.volume(1);
//PCM3168A.Resynch();
delay(100);
PCM3168A.readAllReg();
myEffect.amplitude(1);
digitalWrite(13, LOW); // set the LED on
}
void loop() {
// ******
// ****** BLINK
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}