C-Media CM6631A Firmware Tool
While testing a CM6631A interface, I discovered that for 44.1K/48K sample rate material, the bitclock was running at 128FS (rather than the more common 64FS). Thus when connected to a Sabre 32 DAC, it reported a sample rate of 88.1K/96K. I described the behavior as “2X bitclock” [link].
BLCK is the same for both 44/48K and 88/96K. This means that for 44/48K sample rate, the data is running at 128fs and for the rest of the sample rates, it is running at 64fs.
Even though the Sabre32 DAC specifies BCLK to be 64 fs, it appears that it also supports 128fs. Why? because when I play 44.1KHz material, the DAC reports 88.2KHz sample rate and it sounds perfectly fine. (The sample rate reported by the Sabre32 DAC is based on the frequency of the bitclock, the DAC reports 88.2KHz for 44.1K material)
C-Media, announced the availability of a firmware tool that allows the selection of the bitclock frequency and other parameters [link]
It creates a hex file when you click “Generate FW”. The destination folder must be the folder where the file “UsbDac.bin” (which comes with the config tool) is located
In order to “fix” the “2X bit clock” issue, you need to select x64 BLCK. For the DIYinhk board, you also need to select “Speaker” for Terminal Type and “I2S Format”
Then you need the “Firmware update tool” to upload the s/w to the CM6631A-based interface.
There is instructions included with the FWUpdate tool. If you need a copy, you can ask user tdtsai at diyaudio [link]
Once you update the FW with the x64 BCLK rate, the 44.1K/48K sample rate will correctly display in the Sabre32 DAC.
Diyinhk has a new version of this board that also takes advantage of the config tool to generate different versions of the firmware [link]
- The board has two I2S output is available. The diyer can flash the firmware and enable “Headphone I2S” (non-isolated) and “Speaker I2S” (isolated) if needed.
- The SPDIF (coaxial /optical) connection is routed out for diyer to mod (tap) if needed