I2s on jetson nano produciton


We want to use i2s on the jetson nano production module, the carrier board we use is the JN30B from Auvidea. The i2s device we use is a STM32F412 micro controller.

First I tried the microphone module on the development kit. This works, i was able to record audio. The steps I take to get this works was:

For the production version of the Jetson Nano, the i2s interface will not work. The attempts I make are:

What is the correct way to enable and use i2s on the production version of the jetson nano, and how do you select the i2s mode (slave/master)?


Hello Dieter,

The best reference for configuring the pinmux for Nano is the following …


Please note that although the above refers to the 40-pin header found on the devkit, the procedure is still relevant to the production version. However, you will need to …

  1. Use the module pinmux spreadsheet for the Nano module [0] and not the one for the Nano devkit.
  2. The module pinmux does not have a configuration for the Auvidea carrier board. So you may wish to ask Auvidea if they maintain a version for their carrier board. In fact, you may wish to ask them if they have the necessary devicetree files which contain an update pinmux for their carrier board.
  3. If you are using L4T r32.3+ then it is no longer necessary to update the U-Boot pinmux as described in the above document, only the C-Boot pinmux.

With regard, to the I2S slave/master mode, for each I2S interface there is an amixer control that can be used to change this from userspace.

$ amixer -c tegrasndt210ref cget name="I2S4 codec master mode"

Set Tegra as master, codec as slave …

$ amixer -c tegrasndt210ref cset name="I2S4 codec master mode" cbs-cfs

Set Tegra as slave, codec as master …

$ amixer -c tegrasndt210ref cset name="I2S4 codec master mode" cbm-cfm

Or you can change the default via device-tree [1].


[0] https://developer.nvidia.com/jetson-nano-pinmux
[1] Welcome — Jetson Linux<br/>Developer Guide 34.1 documentation