ariesboy571
Active member
Hey, all. So...I've run around in circles with this, for about three weeks, now. I'm getting mostly nowhere, and I have questions. The story so far:
I'm using (or, attempting to use) an LTC2992 to monitor a power supply I've designed. The problem I'm having is that the LTC2992 is a really finicky beast, or seems to be, because it wants double-starts on virtually every I2C operation. The data sheet for the chip is helpful but somewhat obtuse; perhaps I'm not understanding what I'm reading (most likely) or just don't know what to do with it (ah, the days I wish I had Paul's understanding of this)...but basically, I'm trying to make my timing work, and it's just...not.
There's a Linear/Analog development board for this chip, and I have both that, and their "Linduino" thingie, and after a moderate amount of trouble, I managed to obtain an "ideal" timing plot. Ideal, meaning, the registers all get set, the readings all come in and look good, etc etc etc.
I have timing plots of generic, hardware-agnostic I2C timing, that represent my own efforts to contact the chip; they look nothing at all like the "ideal" plot (delays look wrong, no double-start):
My question is, how do I put in the delays I'm seeing, between accesses; how, of all things, do I actually do a double-start on I2C? I can see it very clearly, in the "ideal" plot, but it never happens on mine.
I loaded and am currently using the i2c_t3 library (https://forum.pjrc.com/threads/21680-New-I2C-library-for-Teensy3) but I'm getting exactly the same plot as with the standard Wire library.
One problem with the "Linduino" code that they're using is that there are low-level I2C commands in their Sketchbook library, that are hardware-specific for the microcontroller they're using. I read the relevant sections of the Kinetis spec sheet, but don't see any commands or registers that seem relevant.
Anyone got any ideas?
I'm using (or, attempting to use) an LTC2992 to monitor a power supply I've designed. The problem I'm having is that the LTC2992 is a really finicky beast, or seems to be, because it wants double-starts on virtually every I2C operation. The data sheet for the chip is helpful but somewhat obtuse; perhaps I'm not understanding what I'm reading (most likely) or just don't know what to do with it (ah, the days I wish I had Paul's understanding of this)...but basically, I'm trying to make my timing work, and it's just...not.
There's a Linear/Analog development board for this chip, and I have both that, and their "Linduino" thingie, and after a moderate amount of trouble, I managed to obtain an "ideal" timing plot. Ideal, meaning, the registers all get set, the readings all come in and look good, etc etc etc.
I have timing plots of generic, hardware-agnostic I2C timing, that represent my own efforts to contact the chip; they look nothing at all like the "ideal" plot (delays look wrong, no double-start):
My question is, how do I put in the delays I'm seeing, between accesses; how, of all things, do I actually do a double-start on I2C? I can see it very clearly, in the "ideal" plot, but it never happens on mine.
I loaded and am currently using the i2c_t3 library (https://forum.pjrc.com/threads/21680-New-I2C-library-for-Teensy3) but I'm getting exactly the same plot as with the standard Wire library.
One problem with the "Linduino" code that they're using is that there are low-level I2C commands in their Sketchbook library, that are hardware-specific for the microcontroller they're using. I read the relevant sections of the Kinetis spec sheet, but don't see any commands or registers that seem relevant.
Anyone got any ideas?