So, is there an official, preferably up-to-date, specification of the I2S bus, and if yes, where can one obtain it?

I've spent some time searching through NXP's website and couldn't find anything.

Note: I did check Wikipedia, but the link to the NXP's website there leads to I2C specification, instead of I2S. I did go through the 7-page document from 1996, but I'm hoping for something more in-depth, if available.

| improve this question | | | | |
  • \$\begingroup\$ Phillips (now NXP) used to maintain it \$\endgroup\$ – TonyM Mar 9 '18 at 15:24
  • 5
    \$\begingroup\$ 2 seconds on google. Though you may get better info from other links that are more interpretive. \$\endgroup\$ – Trevor_G Mar 9 '18 at 15:25
  • \$\begingroup\$ I don't know which wikipedia you went on, but the link to the specifications from en.wikipedia.org/wiki/I%C2%B2S seems fine to me: it links to the 7-page spec you mention. \$\endgroup\$ – dim Mar 9 '18 at 15:48
  • 1
    \$\begingroup\$ @Trevor_G But that's the paper I mentioned in my original question. If it claims to be from Phillips, but is only hosted on Sparkfun (and friends!), then I wouldn't call it "official". If you thing that there isn't anything better, do feel free to post that as an answer. \$\endgroup\$ – AndrejaKo Mar 9 '18 at 19:43
  • 2
    \$\begingroup\$ Why do you need a specification? I2S is not meant for anything bigger than board scale (like spi) so the spec is contained in the device your interfacing to which should be known and fixed. Codecs generally spec their own interface requirements very well. If your looking to make something generic you could use the spec from a popular I2S style implementation (eg the Ti version). If your looking to design an I2S compatible interconnect then you should think about protocols which are designed for cables etc \$\endgroup\$ – Loganf Mar 9 '18 at 21:27

in short, no. the I2S specification originally put forward by Phillips is seemingly not maintained (or available through official channels), and the vast majority of interfaces which are referred to by this term do not follow the original Phillips document.

in general, there is no need for an official specification. the I2S bus is designed for board scale use (between chips on the same PCB as the name implies). this means that as a board designer, both ends of the bus are connected to known and fixed ICs, and the bus specification is defined by the datasheets of the master and slave devices you are using. both codecs and host processors generally specify their requirements very well, and the designer must compare the 2 devices to check compatibility with each other rather than to some 3rd party specification.

you didn't explain why you want one, but I can imagine 2 situations where you might want an official specification to follow rather than going by the ICs datasheet. if you have another, let me know and I'll update this answer

you are designing an IC which will feature this interface: in which case your goal is to allow board designers to use your IC to connect to other ICs. since many devices don't follow the Phillips spec anyway, your best bet is to look at what is being used in the field. many devices allow the clock and frame sync (word clock) polarities to be configured, and the data MSB position relative to the frame sync signal to be adjusted. The original spec had the MSB delayed by one bit clock to allow a simple receiver to be made using 74 series logic - rather pointless today when codecs are cheap and readily available, but the format is still supported by many interfaces. TI have expanded the interface to allow multi channel audio etc.

choose an implementation which is very flexible, or which is compatible with most other implementations depending on what you want your chip to do.

you are designing a product which will connect to other products using I2S: in this case, you are not using I2S in its intended manner. I2S is not meant for cabling, and doesn't feature any kind of command channel that could identify device capabilities (eg, bit clock frequencies, word length). in this case you should look at other protocols which are intended for this use and will be better specified. I would be surprised to find many (any?) products which feature an I2S port on the market. instead, look at S/PDIF for example: https://en.wikipedia.org/wiki/S/PDIF

| improve this answer | | | | |

As far as I can tell Phillips semiconductors wrote the original specification in 1986. It doesn't seem like they ever bothered to update it or at least if they did they didn't change the date in the footer (the pdf metadata is dated 1997 but that may have just been when a format conversion was performed).

In 2006 Phillips semiconductors became NXP. Thanks to wikipedia and archive.org I found that during 2007 and early 2008 the specification was available on NXP's website at http://www.nxp.com/acrobat_download/various/I2SBUS.pdf

Unfortunately it seems a website redesign resulted in that URL being redirected first to an error page and then to the I2C specification. I can't find any evidence of the I2S spec on NXP's current website.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.