CM6631 usb audio interface .... any good?

Both the Amanero and the XMOS boards are actually doing the DoP to native DSD conversion before outputting the native DSD stream to the DAC chips, so the 9018/28/38 don't need to have DoP support to work.

AFAIK the only ESS chips that actually support DoP decoding are the 9038Q2M & 9038PRO.

Using the cm6631 (with its "strictly PCM" support) should not work on the 9018 & 9028, since they do not support DoP.
 
Hi
Yes, CM6631A do not support DoP because it don't has capability to decode DoP package and transfer it to native DSD output. It also do not has native DSD output capability.
The CM6632A has Native DSD output capability. If you want to have DSD output capability you should choose CM6632A. By the way CM6632A do not support DoP decode. But I had write a driver to let CM6632A support DoP in Mac OS(Because Mac OS do not support native DSD output). In Windows it only support ASIO native DSD output. If every one think DoP is very important in Windows. I will consider to add DoP support in next version of driver.


Bought one of this board from China but it can only transport PCM not DoP in DSD, makes it no sense, would rather to use I2S directly for flac and dsd native.

What can be wrong? Firmware? Does anybody has experience on this with dop play?
 
Hi
Yes, CM6631A do not support DoP because it don't has capability to decode DoP package and transfer it to native DSD output. It also do not has native DSD output capability.
The CM6632A has Native DSD output capability. If you want to have DSD output capability you should choose CM6632A. By the way CM6632A do not support DoP decode. But I had write a driver to let CM6632A support DoP in Mac OS(Because Mac OS do not support native DSD output). In Windows it only support ASIO native DSD output. If every one think DoP is very important in Windows. I will consider to add DoP support in next version of driver.

For my market DoP is very important. I used to use the CM6632A but getting customers to understand how to use/install all needed software to native ASIO DSD was a pain. Also, seems development for CM-6632A is not so frequent as for CM6631A. It's also not supported by the driver kit util.

Now I use CM-6631A with a CT-5302 just to be able to support DoP. I would be very happy when CM6632A can support DoP as I still have a lot of CM6632A chips in stock...

Now many people are using Linux based players (like Raspberry Pi) as source, so it would be even better if DoP can be supported by the chip's firmware, like XMOS does (as opposed supported by host driver). But support in driver is already a great improvement.
 
For my market DoP is very important. I used to use the CM6632A but getting customers to understand how to use/install all needed software to native ASIO DSD was a pain. Also, seems development for CM-6632A is not so frequent as for CM6631A. It's also not supported by the driver kit util.

Now I use CM-6631A with a CT-5302 just to be able to support DoP. I would be very happy when CM6632A can support DoP as I still have a lot of CM6632A chips in stock...

Now many people are using Linux based players (like Raspberry Pi) as source, so it would be even better if DoP can be supported by the chip's firmware, like XMOS does (as opposed supported by host driver). But support in driver is already a great improvement.


CT-5302? mind provide more info?
 
Hi
Basically you can use the SDK to compile new firmware for CM6632A. You can reference to the source code. The source code is use ESS9018 as sample. If your DAC use ESS9018 then you can get Native DSD output capability use the same driver on windows update. It should be no problem to output Native DSD. The driver support Native DSD output up to x512.

For my market DoP is very important. I used to use the CM6632A but getting customers to understand how to use/install all needed software to native ASIO DSD was a pain. Also, seems development for CM-6632A is not so frequent as for CM6631A. It's also not supported by the driver kit util.

Now I use CM-6631A with a CT-5302 just to be able to support DoP. I would be very happy when CM6632A can support DoP as I still have a lot of CM6632A chips in stock...

Now many people are using Linux based players (like Raspberry Pi) as source, so it would be even better if DoP can be supported by the chip's firmware, like XMOS does (as opposed supported by host driver). But support in driver is already a great improvement.
 
Hello everyone, i got a CM6631A board from taobao, it work just find and can play record up tu 384k but i played around with the configuration tool, made new firmware and update the board, everything is just fine except now i can't play normal 44k content, at full volume, high frequency is distorted badly, when i lower master volume to around 70%, the problem seem less prominent. But this problem only happened with 44k, 384k play just fine, i made firmwares with every combination of MCK and BCK and the problem still remain. Also i changed the stock regulator from AMS1117 to ADP151 and measure 3.3V at output, window recognize this board without problem but when i play music, the sound is really laggy, like the board is constantly turn on and turn of, turn on, turn off ... In the datasheet, i see that the CM6631 only consume about 70ma, that's well within the current capability of the adp151 but why this happened? Really appreciate your help!
 
Hello everyone, i got a CM6631A board from taobao, it work just find and can play record up tu 384k but i played around with the configuration tool, made new firmware and update the board, everything is just fine except now i can't play normal 44k content, at full volume, high frequency is distorted badly, when i lower master volume to around 70%, the problem seem less prominent. But this problem only happened with 44k, 384k play just fine, i made firmwares with every combination of MCK and BCK and the problem still remain. Also i changed the stock regulator from AMS1117 to ADP151 and measure 3.3V at output, window recognize this board without problem but when i play music, the sound is really laggy, like the board is constantly turn on and turn of, turn on, turn off ... In the datasheet, i see that the CM6631 only consume about 70ma, that's well within the current capability of the adp151 but why this happened? Really appreciate your help!


Make sure you select 'I2S' as interface format in the f/w utility, not 'Left Justified'.


BCLK must be x64 for all sample rates.


MCLK depends on your DAC, x512 for 44/48, then x256 or x128 for higher sample freq. are good starting values.
 
An addon for my PCB with CM6331A which did overclock the CM6331A in a way no one tried before:

An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.


Now the most interesting part - CM6631A CAN work with 768 kHz ON THE OUTPUT in slave-mode, but it requires a phase alignment of output lines (BCLK and LRCK) since the DMA is a bit too slow on answering:

384 kHz on LRCK and DATA:

An externally hosted image should be here but it was not working when we last tested it.


705.6 kHz on LRCK and DATA:

An externally hosted image should be here but it was not working when we last tested it.


Yellow - BCLK
Blue - DATA

It's unalignment for 705.6 kHz, the response is a bit too slow, so we need two extra BCLK and LRCK output lines with phase shift of 90 degrees from old BCK to align for the error:

An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.


And playback of diyinhk 768 kHz file using right-justified format created by the FPGA directly fed to PCM58:

An externally hosted image should be here but it was not working when we last tested it.


It says 100% THD because the recorder was set to 1 kHz wave while the file has 2 kHz on one channel, so ARTA couldn't calculate it correctly :)
 
I'm building an isolated CM6632A based board. Notable specs. Some layout to go though...

Linear Technology LTC4365 Power protection
Linear Technology LTM2884 USB & Power isolation for CM6632A & clocks
Linear Technology LT3042 for clock power
Golledge GXO-3306L/A 24.5760MHz
Golledge GXO-3306L/A 45.1584MHz
Newava Technology Inc. S37211 spdif isolation
TI & NVE DS90LV048 IL715E Isolated in and out i2s over RJ45

It was designed to perform part of a home made scope...
 

Attachments

  • cm6632a.png
    cm6632a.png
    160.6 KB · Views: 709
Last edited:
Hello tdtsai!
A lot of thanks for the SDK!

Could you help me with some issue? I configured the usbDAC example as CM6631a device, changed VID and PID according to a firmware that successfully works with the generic C-Media USB 2.0 driver, then built the firmware and flashed it. The issue is that now generic C-Media driver can't assotiate with my device. I can't find out what I do wrong. :-( If I revert the firmware to the original version from the config tool it is ok.
 
Last edited by a moderator:
Hi
You can not change VID and PID. The SDK has it's own driver, the driver is on Windows Update. It can not use generic C-Media USB 2.0 Driver.

Hello tdtsai!
A lot of thanks for the SDK!

Could you help me with some issue? I configured the usbDAC example as CM6631a device, changed VID and PID according to a firmware that successfully works with the generic C-Media USB 2.0 driver, then built the firmware and flashed it. The issue is that now generic C-Media driver can't assotiate with my device. I can't find out what I do wrong. :-( If I revert the firmware to the original version from the config tool it is ok.
 
Is it possible or has anyone figure out to configure it to allow SPDIF input? Seems it can do SPDIF out, if it could to input as well that could be very useful. I don't think there is a low-cost SPDIF I/O to USB board around anymore so maybe this could fill what looks like a void in the marketplace.

Also, how about MIDI I/O? Might that be possible?
 
Hi
If you need SPDIF out function, you can use configuration tool to config SPDIF out. By the way if you use configuration tool to config it. It still use I2S out but it copy I2S out signal to SPDIF pin out. If you only want to use SPDIF out, you can use SDK to do it. Also if you need MIDI In/Out please use SDK to turn on MIDI function.

Is it possible or has anyone figure out to configure it to allow SPDIF input? Seems it can do SPDIF out, if it could to input as well that could be very useful. I don't think there is a low-cost SPDIF I/O to USB board around anymore so maybe this could fill what looks like a void in the marketplace.

Also, how about MIDI I/O? Might that be possible?
 
An update for my project :)

Base PCB:

An externally hosted image should be here but it was not working when we last tested it.


It can run in both USB Audio Class 1.0 or 2.0 (selectable by a jumper).

Dimensions and pinout are pretty much the same as Amanero.

Addon with an FPGA:

An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.


It extends the base PCB with following features:

- Actual playback of 768 kHz and 705,6 kHz.
- DSD64, DSD128 and DSD256 support via DoP with seperate outputs and DSD clock (DSDL + DSDR + DSDCK).
- Serial DATA output. It does allow to connect directly any PCM DAC, e.g. in NOS mode.
- I2S output.
- Left-justified output.
- BCLK rate can be chosen between 64x and 32x Fs. Rate of 32x Fs allows to play 768 kHz files via PCM56 or 384 kHz via TDA1541(A) using serial DATA outputs.
- SPDIF output (generated on the fly directly from the incoming stream). It can generate the stream up to 384 kHz.
- Every format has an inverted output as well (connecting bunch of DAC's to create XLR output is not an issue).
- MCLK rate of 128x Fs for every sampling rate except for 705.6 kHz and 768 kHz (which is 64x Fs).