I am using QG4 device in my Universal IR receiver project. During the learn mode i capture incoming waveform and write it to flash memory. In action mode i capture any incoming waveform; compare it with stored one, and if it is same as of learned one i toggle one port pin.
Since every protocol has different frame duration and repeatability i use one universal timeout;say 60msec. I receive multiple frames of some protocols(SIRC) which has repeatabilty less than my timeout. I then sperate out one frame by finding TPMCNT larger than usual. e.g. 10msec(bcoz no protocol has pulse greater than 10msec duration). And if some protocols are having frame period greater than my timeout; i simply quit receiving(after reaching max space avlble to store periods).
Now the problem i am facing is very strange. I could receive almost all protocols correctly everytime. But receiving SIRC(which has repetablity after 25msec) is a problem. The protocol is received correctly after every alternate time.(e.g. Correct-Incorrect-Correct-Incorrect--so on). I saw in BDM; my TPM channel receives wrong values for alternate receptions(mostly for low to high INTR). And this happens with SIRC only every other protocol is receiving correctly.