aerobotics

XMOS USB digital interface

 
Overview

2023/2/7:
Added firmware (xu208_audio_firmware.bin) to the attachment, which supports 192kHz/32bit PCM and does not support DSD. It can be directly burned into flash for use if conditions permit.
 
2023/2/19:
The first version of the attachment (xu208_audio_firmware.bin, has been deleted from the attachment), the pin definition is inconsistent with that marked on the PCB, the actual pin definition is as follows
The second version of the firmware (xu208_audio_firmware_ver2.bin), corrects the above problem , the pin definition is consistent with the silk screen marked on the PCB.
 
This is a USB-to-I2S audio interface made with XMOS XU208. It supports 32bit bit depth/192kHz sampling rate, and theoretically supports up to PCM 32bit/768kHz and DSD512 modes (I was lazy and didn’t do it, I have to modify the firmware). Using a 4-layer board process and measuring 4CM×2.2CM, it should be the smallest digital interface currently available.
Since most of the Amanero boards sold on the market are not only large in area, but also use a bulky USB Type-B interface, I wanted to make a small C-port digital interface myself. The reason why I chose XMOS is that only the information on this chip is open source. The Italian solution is not open source. CMedia’s CM6631A solution is too old, and the two BOM areas are relatively large. Saivtech’s SA9227 is also not open source. As for ComTrue’s CT7601 The use of external clocks is not supported.
There are few examples of successful production on the Internet, and the Amanero solution has now taken over the spotlight. However, overall, XMOS's developability is quite strong. All the information on this chip is officially open source, and there are even step-by-step tutorials. The schematic diagram refers to the structure of various USB digital interfaces on the market and is designed in the form of a daughter card to facilitate connection with different boards.
Because it is used with my digital Class D amplifier ([Hi-Res] Class D digital amplifier based on TAS5825M), the digital interface I made only supports 32bit/192kHz PCM and does not support DSD mode, but in theory, modifying the firmware can Support can be achieved. If necessary, you can also add an audio input port, which is something that most digital interfaces on the market cannot do.
 
Schematic description:
The main chip uses the QFN48 package XU208-128-QF48-C10, which is the smallest digital interface chip currently available. It has built-in high-speed USB2.0 PHY to simplify circuit design.
The chip requires an IO voltage of 3.3V and a core voltage of 1.0V for power supply. The 3.3V voltage is obtained from the LDO, and the core voltage uses a DC-DC solution to reduce system power consumption.
The matching clock is Accusilicon's AS318B in 2520 package. It is affordable and has reliable performance. The key is that it is small enough and perfectly meets the requirements.
The power-on reset (POR) circuit uses NCP303LSN09T1G, but since Lichuang is out of stock, we use BU4209G TR instead. If you have a better alternative, please tell me in the comments.
The firmware uses SPI NOR Flash for storage. The model is not important. Most of them are universal. I chose the cheap and large ZD25WQ80BTIGT with 8Mbit capacity. However, according to actual measurements, my firmware is only 27kb. In other words, you can replace it with 512Kbit Flash. It can also work. Note that XU208 supports SPI and QSPI flash. The two different protocols of flash have requirements on wiring methods and software codes. You need to refer to the manual and routines in detail.
The output uses a 2.0mm 2×10pin pin header, but I still feel unsatisfied. If there is a better connection method, please tell me in the comment area.
 
Firmware production instructions:
All information is available on the official website. You need to register an XMOS account yourself. Development tools, software libraries, routines and tutorials are all available on the official website. Just torture yourself through the tutorials.
After the software is written, you need to write an SPI spec file yourself. I won’t go into details about what you can find online. Then select the output in the Flash configuration bin to the xxx.bin file. This is the firmware. You also need to specify your SPI spec file and set the boot area space size (it just needs to be larger than the firmware size, but it is not enough to allocate all the flash space). You must add --noinq to the Other XFlash Option (for burning with third-party tools) ), optionally add --verbose (check whether there are any errors during the flash production process).
 
Firmware burning tutorial:
Burning firmware does not require the official XTAG debugger and therefore the XTAG interface. Directly use a Flash programmer (such as CH341A programmer), clamp the flash and burn it. It should be noted that during the burning process, XMOS must be set to the reset state and you must find a way yourself, otherwise the flash may be occupied and cannot be burned.
 
Problems with the first version:
1. USB reverse connection is not recognized. It may be due to the impedance of the DP/DN line. It has been modified, but whether it can be used remains to be verified.
2. The two mechanical holes were opened to 4mm. They were originally designed to be 3mm, but have been corrected.
 
Things that you may need to modify:
1. Replacing the 2.0mm pin header at the output with a 2.54mm pin may be more in line with public needs, or if there is a better way to communicate in the comment area.
2. If you do not want to draw power from USB, but provide additional power by yourself, just disconnect R7 in the picture, and then supply power to the VIN end of the pin header (do not exceed 5V).
 
There is a datasheet and the simplest tutorial in the attachment, which is more detailed. You need to search for tutorials yourself or go to the XMOS forum to ask questions.
 
I don’t read private messages all year round, so the questions you ask in private messages will probably not be answered. It is recommended to communicate in the comment area.
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-05-19 16:40:13

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号