Welcome to the repository for I2S to Offset Binary Converter.
I am a little audio freak and I like building my own audio devices. Having a lot of fancy and very expensive audio staff one day I have decided to try to do the audio my way, exactly how I like. My adventure with DACs began with the Philips TDA1541 chip. Then I have tried TDA1543, PCM63, PCM56, PCM58, AD1864, AD1865 and a lot more. I have noticed that the older the chip the more it suits my audio taste. So ... I finally bought the TDA1540p and TDA1540D chips. However, due to its vintage specification, hardly any hardware is needed to cope with the TDA1540 input format. And here we are - TDA1540's Offset Binary Converter.
I have been looking for a solution to my problem for some time. The first was a converter I bought on eBay (I2S is TDA1540 PCM56P PCM58P PCM61P AD1856N AD1860N AD1862N AD1865N) from user chiurutu. Thanks to this board, I was able to run the TDA1540 and fell in love with its sound. Unfortunately, I had to find a more flexible solution. So I found the forum thread, which inspired me to delve into FPGAs and had a huge influence on the current codes for this project.
- Converts I2S format into TDA1540 input format.
- Supports two I2S inputs selected by a push button.
- Supports 30s mute after turning on.
- Supports standard and stopped clock for BCK (TDA's clock pulse input) output.
-
I2S.bdf Main entry, block schema.
-
input_selector.v Verilog code for input selection function.
-
mute_sck.v Verilog code for mute function.
I am using Intel® Quartus® Prime Lite Edition running on the Linux VM.
I am using those codes running the Intel Altera Max II EMP240 CPLD.
Tested with I2S input:
- DATA: 16-24 bits
- LE: 44.1kHZ, 48kHZ, 88.2kHZ, 96kHZ (should also work with 176.4kHZ)