These are natively supported by a number of packages in Linux so you can interface easily with them on a Raspberry Pi.
I was surprised to find there is not an obvious library for accessing them on an Arduino however.
I have found the following:
- An Arduino library - has some quirks and not-maintained.
- Part of AVR-Liberty - less quirks, not sure if maintained, not "Arduino" as such, more AVR.
It is helpful to be able to rely on maintained libraries to deal with any changes to the Arduino environment.
Arduino libraries are often easier to use than ones designed for AVR in general, which means more people are able to use the software.
Is there a better library available?