Hi Jon,
Thanks for your detailed reply.
(1) About the 3.3V peak to peak on I2S Clock, I agree that it looks really good. But we have not been able to see this kind of clean signals on 40-pin Header at higher frequencies. To be more specific we are using “Jetson Xavier NX Developer kit”.
(2) I2S is not the only interface where we have seen trouble in driving high frequency signals. Even on SPI we have identical problem. The Respeaker Board has LED controller connected over the SPI interface - Pins 19, 21 & 23 of 40-pin header. In their LED blinking code the SPI clock rate is set to 8MHz. We could not get LEDs to work on Xavier NX. When we probed the SPI signals, this is how the SPI signals looked at 8MHz
When we reduced the spi clock rate to 100 KHz, SPI signals were ok as shown below and LEDs worked too.
Based on an Application Note from Nvidia we realized that these problem may be related to the “TXB0108 Level Shifter”. What do you think? Btw, we have seen signal degradation even when no load is connected to the 40-pin header.
(3) The oscilloscope traces which you have shared show very clean signals. Do you know what could make this difference on your setup? Shouldn’t the signals be identical atleast when no load is connected? Or do you use a different pinmux setting which make the signals better on your setup?
(4) I am very sorry that you were not able to access the Respeaker driver code which I shared earlier. It was a mistake from our side as the previous repository was moved to another place and access rights were mistakenly changed. You should be able to clone the repo now from this link. In order to install the software on Xavier-NX, you could use Instructions from This Link
To summarize the relevant steps, you need to run the following commands.
cd <your-work-directory>
git clone https://gitlab.com/aivero/public/legacy/seeed-linux-dtoverlays.git
cd seeed-linux-dtoverlays
git checkout origin/add_jetson_nx_support
export CUSTOM_MOD_LIST="jtsn-wm8960"
make all_xaviernx
sudo -E make install_xaviernx
sudo cp overlays/xaviernx/xavier-nx-seeed-2mic-wm8960-with-led.dtbo /boot
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "Seeed Voice Card 2MIC"
sudo reboot
cd <seeed-linux-dtoverlays-repo>
alsactl -f extras/wm8960_asound.state-xavier-nx-new restore 1
(5) After you install the software from step-4, you should be able to connect Xavier-NX to Respeaker board. But even if you don’t have Respeaker board, you should at least be able to run their LED blinking code and you can observer the problem with SPI signals just by mesuring the signals on 40-pin header. Following are the instructions to run the LED blinking code as per ReSpeaker-Wiki-Page.
Here are the commands used:
sudo pip install spidev
cd ~/
git clone https://github.com/respeaker/mic_hat.git
cd mic_hat
python pixels.py
(6) The ReSpeaker board schematics is attached here for your reference in case you want to have a quick look at it.
ReSpeaker 2-Mics Pi HAT_SCH.pdf (37.4 KB)
I hope that above information might give you some additional pointers to assess why we are facing problems on Xavier NX board. I will wait for your analysis and hopefully we can resolve at least some of the issues we are facing. In case you need any clarification on my email above, please feel free to ask.
Best Regards,
KS