Goal is to add support for the LTC2485 to Linux IIO subsystem.
This is new territory for me so it begins with more than the usual research. Alas, it only took a few keystrokes and a lot of reading to get some initial bearings on this project.
Aside: If you google "Linear Technology" today, you'll see the news that Analog Devices Inc. has announced that it is acquiring Linear Technology. The Linux IIO subsystem currently supports an abundance of Analog Devices sensors. Additionally, Analog Devices "library" is the main resource I used for ramping up on ADC's.
Analog Devices Library
Apparently there are thousands of converters to choose from, and companies like Analog Devices aims to make that choice simpler by offering parametric search engines. Here's where Delta-Sigma ADC's (like the LTC2485) fit into the market. (this was dated 2005 - perhaps very outdated, but you get the idea.) It basically matches the applications that Linear Technology is suggesting on it's data sheet.
The big picture of an ADC: It's a quantizer, mapping a large set of input values to a countable smaller set.
Highlights from the LTC2485 DataSheet:
- 24 bit: The data sheet says its ENOB (effective number of bits) is 24 bits and it's resolution is also 24 bits. My first glance says this is not always true of ADCs, (Resolution is often greater than the ENOB) So this is one very accurate ADC!
- Delta-Sigma Architecture: The ADC architecture is basically how it does what it does. The three most popular ADC architectures are SAR (successive approximation), Pipe-lined, and Sigma-Delta. I've read that it's OK to say it either way Delta-Sigma or Sigma-Delta, but I suspect that the order is relative to when it applies the sigma. My initial understanding is that the change in the signal (its delta) is encoded, rather than the absolute value. The result is a stream of pulses. Then, the accuracy of that modulation is improved by passing the digital output through a 1-bit DAC and adding (sigma) the resulting analog signal to the input signal to reduce the error introduced by the delta-modulation. I'm not clear if this definition is precisely what is used by LTC2485. I'm also not sure the level of expertise I need to develop in the architecture to be able to support it. Stay tuned!
- Oscillator: The on-chip oscillator is configured via i2c. It's used to reject line frequencies and to select a speed-up mode. The driver will be supporting that!
- 1 Channel
- I2C Interface
Beyond the DataSheet:
One of the first things I was on the look out for was whether this device already had some sort of support in the IIO subsystem. I know the quick answer is no, that's why my mentor has selected this sensor, but it's not necessarily clear cut. I'm also looking for leverage!
I saw that a set of LTC Digital->Analog Converters were recently added to dac/ad5064. So, that had me on alert that there might be a similar relationship between the ADC's of Analog Devices and Linear Technologies sensors. So far, I haven't found any direct connections. I'll need to learn more about the sensor and driver requirements before I can intelligently spot any connections.
If the architecture matters, which I think it does, then there are a couple of Analog Devices drivers (ad7791 and ad7793) that use sigma_delta architecture. They are SPI devices, not I2C. So, maybe a sigma-delta reference, but not something to share.
I also see this chart below offered on Linear Technologies, and don't find any of these comparable devices supported in IIO.
So, onward with this. Next actions: look at some code and ponder how these are tested.