Project review high end amplifier
Posted: Wed Oct 02, 2019 8:13 pm
Hello,
I'm working on a high end audio stereo amplifier and I'm on the DAC and digital input stage, then I think I'm in the right place to have a shematic review.
Few words about the project: today homemade for the prototype stage I'm planning to go on kickstarter with, so I'm designing with cost and manufacturing optimisation.
I'm electric engineer with skill in electronic design, industrialisation but very few in firmware dev.
The amp is controlled by a main mcu (stm32) wich control volume (pga4311), power management, temperature and source selection. I target an XMOS device to catch the USB UAC2.0/1.0, spdif coax, spdif optical and maybe bluetooth.
For the first prototype I plan using one of smallest and easy to do Xmos device: XUF208 in a TQFP64.
The XUF208 will be controlled by main mcu that way: the main MCU will control nRESET of XUF208 (to get it in standby when amp is in standby) but also/maybe for source selection.
It is not USB powered but I wire VBUS signal as I read there is some difficult without doing that.
I plan to use XUF208 for only one digital input at once:
when user selec USB entry, main mcu ask XUF208 to be a USB streamer UAC2.0/1.0 only.
when user ask for digital coaxial input main mcu aks XUF208 to stop USB streaming and go for spdif to i2s conversion with bit perfect (then I use schematic provided by XMOS with a signal to reclock spdif with a cs2100).
when user ask for other spdif input (optical or bluetooth) the main mcu simply switch the spdif stream with mux device in order to only use a precious 1bit port of XUF208.
As i use a PCM1792A (i2c control) the bitstream is limited to 192khz/24b stereo.
First question: it is possible to create a firmware which can stop runing process (for example usb streaming) to switch dynamically to spdif=>i2s conversion with bit recloking ?
If it's not possible do you think it's possible when user switch source to reset the XUF208 and with a digital read on a port (signal SEL_SOURCE set by main mcu which also control reset) launch usb streamer or spdif to i2s, so no dynamically?
Here the shemetic, I didn't add a POR controller, I think will add one. I use I2C with a 4b port, so I understand I can't read cs2100 or pcm1792a register, only write, but there is another limitation which interrogate me: clock streching is not availlable is it a problem for fast i2c? This question lead to a other one: can I use P4C port for one I2C signal and P4D port for the other bit (only one signal by port, ie: P4C0 is SCL nothing on other P4C and P4D0 is SDA nothing on other P4D) such that way I get a fully functionnal I2C ?
Can you review my XUF208 implementation and port mapping ? Many thanks for any helps :)
I'm working on a high end audio stereo amplifier and I'm on the DAC and digital input stage, then I think I'm in the right place to have a shematic review.
Few words about the project: today homemade for the prototype stage I'm planning to go on kickstarter with, so I'm designing with cost and manufacturing optimisation.
I'm electric engineer with skill in electronic design, industrialisation but very few in firmware dev.
The amp is controlled by a main mcu (stm32) wich control volume (pga4311), power management, temperature and source selection. I target an XMOS device to catch the USB UAC2.0/1.0, spdif coax, spdif optical and maybe bluetooth.
For the first prototype I plan using one of smallest and easy to do Xmos device: XUF208 in a TQFP64.
The XUF208 will be controlled by main mcu that way: the main MCU will control nRESET of XUF208 (to get it in standby when amp is in standby) but also/maybe for source selection.
It is not USB powered but I wire VBUS signal as I read there is some difficult without doing that.
I plan to use XUF208 for only one digital input at once:
when user selec USB entry, main mcu ask XUF208 to be a USB streamer UAC2.0/1.0 only.
when user ask for digital coaxial input main mcu aks XUF208 to stop USB streaming and go for spdif to i2s conversion with bit perfect (then I use schematic provided by XMOS with a signal to reclock spdif with a cs2100).
when user ask for other spdif input (optical or bluetooth) the main mcu simply switch the spdif stream with mux device in order to only use a precious 1bit port of XUF208.
As i use a PCM1792A (i2c control) the bitstream is limited to 192khz/24b stereo.
First question: it is possible to create a firmware which can stop runing process (for example usb streaming) to switch dynamically to spdif=>i2s conversion with bit recloking ?
If it's not possible do you think it's possible when user switch source to reset the XUF208 and with a digital read on a port (signal SEL_SOURCE set by main mcu which also control reset) launch usb streamer or spdif to i2s, so no dynamically?
Here the shemetic, I didn't add a POR controller, I think will add one. I use I2C with a 4b port, so I understand I can't read cs2100 or pcm1792a register, only write, but there is another limitation which interrogate me: clock streching is not availlable is it a problem for fast i2c? This question lead to a other one: can I use P4C port for one I2C signal and P4D port for the other bit (only one signal by port, ie: P4C0 is SCL nothing on other P4C and P4D0 is SDA nothing on other P4D) such that way I get a fully functionnal I2C ?
Can you review my XUF208 implementation and port mapping ? Many thanks for any helps :)