Hello everyone and sorry for the long post – maybe someone can tell me what I'm doing wrong.
I apologize for the mistakes in English – I used a translation machine, and what doesn't fit the context I corrected manually according to my modest knowledge of English.
I'm getting ready to start my first project using Arduino.
A long long time ago I was writting programs on a PC under DOS, so I'll learn programming using numerous examples on the Internet.
My system is an Arduino UNO R3 controlling devices that make up the audio D/A converter via the i2c bus:
- WM8805 – SPDIF digital audio signal receiver (manufacturer formerly Wolfsom, currently Cirrus Logic)
- 2x audio D/A converter in “dual-mono” mode – I want to use PCM1792 (Texas Instruments), I also want to try PCM1795 (Texas Instruments) and WM8742 (Wolfson) and choose the best sounding ones.Both of these modules (receiver, converters) require register reading or writting – this is to be done by Arduino.
- LCD or OLED display with a simple display of the status (input number, whether there is a signal and its parameters – just a gadget).
For testing and working with software, I assembled the WM8805 circuit and D/A converters on universal boards, I have a temporary power supply - the whole thing mounted on a wooden board (and a temporary audio module on a separate board just to check if there is sound - finally the analog part will be made on electron tubes).
Arduino and displays support i2c with 5V levels, other integrated circuits - 3.3V.
I bought a ready-made i2c level switch module with the PCA9306 circuit, it also has pull-up resistors on both i2c sides.
I can connect different D/A converters to the circuit alternately (1 or 2), I can disconnect other circuits (WM8805, LCD, OLED).
I set the addresses of the circuits on the i2c bus according to their documentation - they do not overlap.
Connections and supply voltages checked.
Arduino board is UNO R3 version.
I connect the i2c bus with Arduino on dedicated SCL, SDA pins (just above the AREF pin).
I downloaded a few i2c scanning programs from the Internet to check if the devices are visible on the i2c bus and at what addresses they report.
Most of these programs work, and the effect is the same:
- on the 5V i2c side, all elements are detected (LCD, OLED)
- on the 3.3V i2c side, only the WM8805 chip is detected.
Disconnecting the WM8805 causes it to disappear from the list of devices - i.e. communication on the 3.3V side works, but the D/A chips do not appear on the list (none of them).
Can someone experienced tell me what I am doing wrong - the system is functional, it detects the WM8805 receiver on the 3.3V side, but does not detect other chips. Interestingly, the ones that are not detected are chips from 2 different manufacturers - Wolfson (WM8742) and Texas Instruments (PCM1792, PCM1795).
I'm not including a photo of the test board - if anyone wants I'll include it, but it looks awful.
Regards
Andrzej Stelmach
Poland