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.

LMP8358 Switching between error detection modes

Other Parts Discussed in Thread: LMP8358

Hi,

I'm using the LMP8358 in a strain gauge application. So far, the normal mode with gain = 1000 work very good. In order to detect possible error in the strain gauge, I'm using the suggested error detection methods (short, open connections etc.) described in the datasheet.

However, there is some strange behaviour. In any case I don't use the internal current source, switching between the error modes is very fast. In case I use the internal current source (to detect a open connection), it will take about 100µs after the rising edge of CS until the output starts to change to the correct voltage level. Additionally, there is a 200µs settling time in this case. In comparision, switching from a non current source mode to normal takes less than 20µs.

I cannot find anything about this in the datasheet, so is this a desired behaviour? OR am I missing something?

Cheers

Stampede

  • Hello,

    Yes, this is normal behavior.  If register bits 14:12 are set to 000 the current source is turned off.  When you set a current value and diagnostic setup it will take time to turn on the current source.  You can try setting bits 14:12 to 110.  This leaves the current source on but disconnected from the +IN and -IN pins.  It should make the response faster.

    Mike

     

  • Hi Mike,

    thanks for your answer. The long delay occurs when the current source is switched OFF (or better said disconnected) , not ON. For example, if i switch from the open circuit detection mode to the normal gain mode. The modes are defined as:

                case LMP_NORMAL:                                                     
                    LmpData = (1<<G2) | (1<<G1) | (1<<CUR1) | (1<<CUR2);
                    break;
                case LMP_CMERR_INP:
                case LMP_SHORT_INP:
                    LmpData = (1<<G0) | (1<<IN_MUX1) | (1<<CUR1) | (1<<CUR2);          
                    break;
                case LMP_CMERR_INN:
                case LMP_SHORT_INN:
                    LmpData = (1<<G0) | (1<<IN_MUX0) | (1<<IN_MUX1) | (1<<CUR1) | (1<<CUR2);              
                    break;
                case LMP_OPEN_INP:
                    LmpData = (1<<G0) | (1<<IN_MUX1) | (1<<CUR0) | (1<<CUR2);                                
                    break;
                case LMP_OPEN_INN:
                    LmpData = (1<<G0) | (1<<IN_MUX0) | (1<<IN_MUX1)| (1<<PIN) | (1<<CUR0) | (1<<CUR2);    
                    break;
                case LMP_INPUTS_SHORT:
                    LmpData = (1<<G0) | (1<<G1) | (1<<CUR0) | (1<<CUR2);                 

    So am I doing something wrong here or is it erratic behaviour of the chip?

  • Hi Stefan,

    I was able to find an eval board and part and try it out with the settings you described above.  You are setting the part correctly and this is just the normal performance of the part.  I am seeing about 140us from the rising edge of CS to the point where the output has settled.

    Mike

     

  • Hi Mike,

    thanks again for your answer. It's "good" to see that you can reproduce this behaviour of the chip. Unfortunately, switching plus settling time is more in the region of 300µs on my PCB. Is there any chance to speed this up?

    In any case, I strongly recommend to add this info to the data sheet as it says nothing about the switching behavior.

    Regards,
    Stefan