Is there an I²C device out there for reading a set of PWM inputs?
Thank you for linking to exactly what you are talking about -- it makes it much easier to get to the data sheets. The question "How can I use more than one MaxSonar®-EZ1™ in the same system?" in the MaxBotix MaxSonar FAQ lists several ways of using a bunch of them at one time (and some pitfalls to avoid). Some of them use 2 pins of the MCU -- the same number of pins as I2C, but a completely different protocol.
If I understand the data sheet correctly, one of those 2-pin methods is:
- wire pin 1 low the MaxSonar to enable chaining
- Wire an output pin from your MCU to the RX pin of the first MaxSonar in the chain.
- Wire TX of each MaxSonar to RX of the next in the chain
- Combine the signals from all the MaxSonar PW pins (AND? OR? NAND? diodes?).
- Wire that combined signal to a timer input pin on the CPU.
Then software on the MCU
- pulse the RX pin of the first MaxSonar
- Time the first pulse width to give the distance the first MaxSonar sees
- Time the second pulse width to give the distance the second MaxSonar sees
- ...
- After getting the pulse from every sonar (or timing out at 49 ms per sonar), do something with the data.
- repeat.
Perhaps one of the other methods listed in the FAQ would work just as well or better for you.
Will an 8 channel ADC that supports I2C cut it?
http://www.linear.com/product/LTC2309
The microchip PIC18F87K22 has 10 capture compare modules that can handle this function and of course you can talk to it through I2C.
You could also do this will a really simple FPGA.
The Cypress PSoC family could probably also handle measurement of a bunch of PWM inputs.