This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM1864EVM: Connection with EK-TM4C1294XL

Part Number: PCM1864EVM
Other Parts Discussed in Thread: EK-TM4C1294XL, TMDSEVM5517, PCM1864

Hi Team,

Could you please give us more information about using PCM1864CMBEVM. Customer have brought the microphone PCM1864CMBEVM to use it is necessary to buy a digital signal processor.

Can we use EK-TM4C1294XL instead of TMDSEVM5517 (Evaluation Module) to config microphone? They want to digitize a sample rate of 8 KHz.

Thank you in advance. 

Best regards,

Jonathan

  • Hi Jonathan,

    I'm a little confused on what you're trying to achieve. There isn't a microphone on this board, so any requirements are parallel to the EVM. There also isn't a digital microphone input on this board, only digital audio options like optical SPDIF. Can you clarify what you need and what the set up needs to be?

    Thank you,

    Jeff

  • Hello Jeff!

    I got this microphone but I didn't know that I neeed TMDSEVM5517 (Evaluation Module), then my question is: Could I  configure my device with PCM1864CMBEVM or maybe with Arduino?

    Thank you for your time!

    All the best.

  • Hi Juan,

    Apologies. I misread the microphone board as the IC EVM. Any I2C host should be able to configure the microphone board, such as an Arduino.

    Best regards,

    Jeff

  • That's a great news!

    Do you think you could help with the conecction to Arduino? In the specs I haven't been able to find the correct way to set the communication?

    Thank you for your time!

  • That's a great news!

    Do you think you could help with the conecction to Arduino? In the specs I haven't been able to find the correct way to set the communication?

    Thank you for your time!

  • Hello Juan, 

    In order to establish an I2C connection from the Arduino to the PCM1864 you will need to perform hardware and software configurations. Beginning with the hardware configurations, establish the routing between the Arduino and PCM1864 GND, SDA, and SCL pins. As for software, you can use the Arduino IDE along with Arduino's Wire Library to communicate between the Arduino and PCM1864. Example code to set up the I2C connection with the library, as well as more information about I2C can be found here. The PCM1864 I2C device address is "0x94", as found in page 3 under the "Hardware and Software Setup" of the PCM1864 datasheet. More information can be found in that datasheet about pin and register configuration. 

    Best, 

    Alec Greene

  • Hello! Thanks a lot for helping me.

    I've been working on that but the microphone always gives -1 on the Serial Plotter, I'm not sure if It's picking up sound.

    Could you help me with my code? 

    I really need guide.

    Thanks a lot for everything!

    This is my CODE:

    #include <Wire.h>

    void setup() {
    Wire.begin(); // join i2c bus (address optional for master)
    Serial.begin(2000000); // start serial for output
    }

    void loop() {
    Wire.beginTransmission(75); // transmit to device #150 = 0x96 (run in slave)
    // but i2c addressing uses the high 7 bits so it's 75

    //REGISTERS OF DATASHEET PAGE 4

    Wire.write(byte(0x00)); // sets register pointer to the command register (0x00)
    Wire.write(byte(0x00));

    Wire.write(byte(0x01));
    Wire.write(byte(0x40));

    Wire.write(byte(0x02));
    Wire.write(byte(0x40));

    Wire.write(byte(0x03));
    Wire.write(byte(0x40));

    Wire.write(byte(0x04));
    Wire.write(byte(0x40));

    Wire.write(byte(0x05));
    Wire.write(byte(0x86));

    Wire.write(byte(0x06));
    Wire.write(byte(0x41));

    Wire.write(byte(0x07));
    Wire.write(byte(0x41));

    Wire.write(byte(0x08));
    Wire.write(byte(0x44));

    Wire.write(byte(0x09));
    Wire.write(byte(0x44));

    Wire.write(byte(0x0A));
    Wire.write(byte(0x00));

    Wire.write(byte(0x0B));
    Wire.write(byte(0x44));

    Wire.write(byte(0x10));
    Wire.write(byte(0x00));

    Wire.write(byte(0x11));
    Wire.write(byte(0x50));

    Wire.write(byte(0x12));
    Wire.write(byte(0x00));

    Wire.write(byte(0x13));
    Wire.write(byte(0x40));

    Wire.write(byte(0x20));
    Wire.write(byte(0x01));

    Wire.endTransmission(); // stop transmitting

    delay(70);


    float c = Wire.read(); // receive a byte as character
    Serial.println(c); // print the character

    }

  • Hi Juan, 

    A few things for your Arduino code-

    1. When calling begin transmission from the wire library, be sure to input the device address into the function. 

    2. Since the sound sensor board produces a changing voltage, you'll need the Arduino’s analog-to-digital converter to process that voltage and display it in your serial monitor. Check out this resource I found here.  

    Best of luck, 

    Alec