Hello Tomas,
Sorry for taking so long to reply, I had another project that had grabbed my attention between then and now. Your steps indeed worked like a charm, thank you very much.
I'm now running into something strange. In this embedded system, there's an initialization routine where I do a write of the various configuration registers. Among them are CTRL_REG2, CTRL_REG3, and CTRL_REG5. The idea was that these registers will really never change. Let's call this routine the 'initialization function'. The other registers that require configuration, CTRL_REG1 and CTRL_REG4, are saved for a later function, as depending on mode, we may want to put the chip in standby or change the interrupt behavior. Let's call this routine the 'enable function'. If I call the enable function immediately after calling the initialization function, the chip behaves as I expect, i.e. I see the interrupts fire when I move my PCB. However, if I call the initialization function, go off and do other things, and then call the enable function some number of seconds later, the chip doesn't seem to respond. Unfortunately, the designers of this system did not give me a lot to work with as far as a debug interface, so I can't exactly tell what's happening, other than the interrupts are definitely not firing, even though I can tell with what little debug info I have (i.e., a system backlight and a scope on the chip select line), that the functions are indeed being called. Note that the only functions that I'm turning on currently are free-fall and portrait/landscape, and the device is sitting idle during the configuration, so I don't think there's an unprocessed interrupt internal to the chip (although maybe that's a cheap thing to do whenever calling the 'enable' function, i.e. clear any status registers?).
Does any friendly internet denizen have any ideas here what could be happening?
Slainte,
Jake