Resolving Audio Codec Enumeration Issues On The E31x

From Ettus Knowledge Base
Revision as of 17:30, 23 December 2016 by Ettus (Talk | contribs)

Jump to: navigation, search

Application Note Number

AN-178

Revision History

Date Author Details
2016-10-12 Logan Fagg Initial creation

Abstract

This application note will cover Resolving Audio Codec Enumeration Issues On The E31x.

Overview

On some E31x series devices, it has been found that the USB hub boots too slowly to properly enumerate the audio codec. This will result in the device not being able to use the codec which affects anyone using the 2.5mm audio connector. This note will explain:

  • How to detect if your USB codec is properly enumerated
  • How to force enumeration if the codec isn't enumerated

Detecting Enumeration Issues

An improperly enumerated audio codec can most reliably be detected by using the following command:

   root@ettus-e3xx-sg3:~# lsusb

Which should return the following:

   Bus 001 Device 003: ID 0556:0004 Asahi Kasei Microsystems Co., Ltd
   Bus 001 Device 002: ID 0424:2513 Standard Microsystems Corp. 2.0 Hub
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

If the 'Asahi Kasei Microsystems Co., Ltd' line does not appear when you use the lsusb command, you likely have the enumeration issue and you should move on to the Force Enumeration section.

Force Audio Codec Enumeration

Important Note: It is highly recommended to back up your SD card before trying the following instructions. This procedure has a small chance of corrupting your file system. You can use the fsck command to verify your filesystem on reboot if you are concerned.

The audio codec can be made to enumerate by rapidly power-cycling the device by physically disconnnecting the power supply for less than 1 second. This can be done by either physically unplugging the unit or adding a physical switch between the unit and power supply or between the power supply and wall outlet. Performing a reboot without disconnecting power will not force the codec to enumerate. You must physically disconnect the device.