i2cdetect cannot detect codec board with i2cdetect on either I2C-1 or 6 via:
I am trying to dust off all of Sergey's audio related work (blog, forum post) and get Edison working with a MikroeElektronika's Audio Codec Proto board (MIKROE-506) that is based off of the WM8731 (datasheet). Edison should be communicating to the Codec board via I2C for control and SPI for data.
I have verified the codec board works by hooking it up to an Arduino Uno like this project here, which uses both I2C and SPI. I can hear the sine tone from the example with the headphones. Using the Arduino Wire library, I scan the Arduino I2C bus and it always find the codec board.
Other things I've tried to rule out anything:
- I2C on Edison w/mini-breakout with and without level shifters can i2cdetect other I2C sensors (e.g. MCP4725 DAC)
- Edison + Sparkfun Base Block + Sparkfun ADC block can i2cdetect
Searching I2C address space. Found devices at:
- Bus Pirate I2C Sniifer when I run i2cdetect looks ok but there is nothing found by i2cdetect back on Edison:
Any key to exit
- Pull up resistors - I've tried combinations of 1k external pullups and/or modifying the internal ones (here) in the /sys/kernel/debug/gpio_debug/gpio*
- Also have tried various gpio export/etc as mentioned in the I2C section of the Edison Arduino Board guide (even though I do no have that board)
- Tried configuring Edison I2C speeds (default was 'fast', but tried 'std' with no luck, WM8731 should support up to fast/400khz)
- Wrote test C programs using the MRAA library to try to 'talk' to this codec board with no luck
I feel like the only things I haven't tried is to either get the Arduino breakout board and/or power the mini-breakout board via external power supply. My I2C SDL/SCL lines at their longest are 40cm (2x20cm, connecting thru level shifter).
I reached out to Sergey (SergeyK) directly and he never did connect up Edison to this codec board. He re-used his own custom audio board (which I am shopping around from different PCB/A places). In the post, he mentions hooking up multiple power supplies to the codec board, which is only necessary if you're not using level shifters. He was a great help and gave fast, detailed replies to my emails but troubleshooting something funky like this wasn't going to get done over email.
Thanks for any help,
Using default firmware
root@edison:~# uname -a
Linux edison 3.10.98-poky-edison+ #1 SMP PREEMPT Mon Jun 6 14:32:08 PDT 2016 i686 GNU/Linux