I have a TI-RTOS based project, and I seek clarification on interrupt handling.
I have Hall sensor interrupts coming about once every 8-10 milliseconds. They're coming in on Port1, pins 2-4. When the edge of one of the Hall inputs transitions (low to high or high to low), I get an interrupt triggered so I can go out and commutate the BLDC motor.
What I'm seeing is dropped interrupts, where I expect the next state to ne X, but I see Y on the interrupt - as if the intermediate interrupt was dropped by the system.
This droppage seems to be entirely at random, I instrumented the living daylight out of the code and there's no pattern to the droppage whatsoever.
Based on my weak knowledge of the internals of TI-RTOS interrupt handling, an HWi will run to completion without interruption. Therefore, for this to drop a Hall transition interrupt, something would have to stay in an interrupt routine fore more than 8-10 milliseconds!
We've put a scope on the board and can see that we're in and out of the Hall sensor ISR in about 4 milliseconds, so we know we're not stepping on our own feet. 'Our scope also confirms that the motor sensors aren't skipping a beat randomly, so our inputs look good.
\Is there anything going on in TI-RTOS that would potentially kill interrupts for a long time? I am using USB to display debug output, could the USB processing somehow be kiboshing interrupts? I'm using the USB CDC code from TI for my basic USB serial port emulation.
All help, suggestions, etc. appreciated!
Ed Averill