Hi,
I have an application where I built a custom hardware based on XU316-1024-QF60B and PCM1690 using TDM. The application has a goal of 8-channel audio over USB.
I use Audacity to generate 400Hz sine wave to play over XMOS device and on the other end I have oscilloscope on PCM1690 output to verify that I receive the generated
sine wave. However, the sine wave looks very distorted and distortion varies with the volume adjustment. When I set the playback volume to 20% (on Linux) the
waveform looks like a sine wave (400Hz and distorted) but if I change the volume the wave doesn't look like a sine wave anymore. And the corresponding wavefrom to volume level
is not linear. It's reaching peak when volume is 20% and going beyond is adding more and more noise.
My configuration is: 1 line TDM, 32-bits and 8-channel per TDM line. I generate clock of 512*48KHz. Hardware wise connections and digital interface is checked.
I'm using PCM1690 in "0110 | 24-bit i2s mode TDM format" and the rest of registers are in default values.
Distorted DAC output using TDM Topic is solved
-
- Junior Member
- Posts: 5
- Joined: Mon Dec 02, 2024 7:03 pm
Distorted DAC output using TDM
You do not have the required permissions to view the files attached to this post.
View Solution
-
- Junior Member
- Posts: 5
- Joined: Mon Dec 02, 2024 7:03 pm
Find out that my TDM data line is having some weird toggling. I will experiment with different configuration.
-
- Junior Member
- Posts: 5
- Joined: Mon Dec 02, 2024 7:03 pm
The issue was clock related.I use xu316-1024-qf60b-i32 (which can go up to 800MHz). In my .xn file the system clock was configured to 800MHz, while in cmake XUD tile speed was defined as 600MHz.
-
Verified
- XCore Legend
- Posts: 1154
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Glad you have it working as your TDM config looked good to me!
Technical Director @ XMOS. Opinions expressed are my own