This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM6240-Q1: PCM6240 interrupt for fault diagnostics is triggered only once.

Part Number: PCM6240-Q1

Hi,

i am trying to configure interrupt from GPIO1 in PCM6240. I am able to generate interrupt only once but i can see that registers CHx_LTCH Register (P0_R45) to CH6_LTCH Register (P0_R51) on both pages are changing after enabling/disabling faults.

I have read instructions and self clear after read should be enabled so interrupt should be generated

I am not able to trace in which register configuration is incorrect ? I am providing dump of almost all registers from page 0.

Thanks in advance for help.

Dump of registers

pcm6xx0.c | dumpRegsValue | 523 | Register address 0x0 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2 value is 0x81
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5 value is 0x5
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7 value is 0x24
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x8 value is 0x1
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x9 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xa value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xb value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xc value is 0x1
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xd value is 0x2
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xe value is 0x3
pcm6xx0.c | dumpRegsValue | 523 | Register address 0xf value is 0x4
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x10 value is 0x5
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x11 value is 0x6
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x12 value is 0x7
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x13 value is 0x1
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x14 value is 0x48
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x15 value is 0x48
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x16 value is 0x8
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x17 value is 0x10
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x18 value is 0x4
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x19 value is 0x20
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1a value is 0x2
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1b value is 0x8
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1c value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1d value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1e value is 0x2
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x1f value is 0x40
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x20 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x21 value is 0x21
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x22 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x23 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x24 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x25 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x26 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x27 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x28 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x29 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2a value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2b value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2c value is 0xc0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2d value is 0xa0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2e value is 0x98
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x2f value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x30 value is 0x98
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x31 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x32 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x33 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x34 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x35 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x36 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x37 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x38 value is 0xf2
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x39 value is 0x39
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3a value is 0x10
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3b value is 0xf0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3c value is 0x18
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3d value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3e value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x3f value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x40 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x41 value is 0x18
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x42 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x43 value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x44 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x45 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x46 value is 0x18
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x47 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x48 value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x49 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4a value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4b value is 0x18
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4c value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4d value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4e value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x4f value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x50 value is 0x10
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x51 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x52 value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x53 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x54 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x55 value is 0x10
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x56 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x57 value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x58 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x59 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5a value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5b value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5c value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5d value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5e value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x5f value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x60 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x61 value is 0xc9
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x62 value is 0x80
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x63 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x64 value is 0xf3
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x65 value is 0x37
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x66 value is 0x88
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x67 value is 0xb8
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x68 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x69 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6a value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6b value is 0x1
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6c value is 0x48
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6d value is 0x7b
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6e value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x6f value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x70 value is 0xe7
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x71 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x72 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x73 value is 0xf0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x74 value is 0xf0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x75 value is 0xe0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x76 value is 0xf0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x77 value is 0xf8
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x78 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x79 value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7a value is 0xff
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7b value is 0x0
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7c value is 0xff
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7d value is 0x91
pcm6xx0.c | dumpRegsValue | 523 | Register address 0x7e value is 0xee

  • Hi Piotr,

    It looks like your register dump includes a large number of latched faults. Are you saying that the interrupt is being triggered and staying latched? It is recommended after an interrupt is triggered to read all latched registers that you have not masked to ensure that all of the latched registers are cleared, including the INT_LTCH, CHx_LTCH, and CH_LTCH registers. Note that for the overvoltage interrupts and short to VBAT interrupts these latches are actually mapped to each other (see the register map for this note).

    We also have an app note on the diagnostic features if you are not already familiar with this: www.ti.com/.../sbaa351.pdf

    Best,

    Zak

  • Hi,

    Thanks for response. I connected only 2 mics to the PCM6240 so that is why i am having errors. Each time when interrupt comes I am reading latched registers and of course they  will not be cleared cause live regs are indicating the error i am aware of it. Thing is when i have setup like this and when i want to short to gnd mic on channel 2 or 4 I am not getting any interrupt. So I am wondered why new fault is not reported via int whereas latched regs and live regs are showing new error. 

    Thanks in advance.

  • Hi Piotr,

    It sounds to me like there are always faults in your setup so the interrupt is not triggering on a new fault before the previous faults have been cleared. Since you are not testing with 2 of the channels active, I would recommend disabling fault diagnostics on these unused channels so that they do not interfere with the interrupt. 

    Best,

    Zak

  • Hi Zak,

    I will check that asap.

    Thanks,

    Piotr

  • Hi Zak,

    After disabling diag for not connected channels. I am able to generate interrupt as many times as I want. New interrupt is generated only if all faults were cleared before.

    Thanks,

    Piotr