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.

AMC7834EVM: Closed Loop operation

Part Number: AMC7834EVM
Other Parts Discussed in Thread: AMC7834, LMP92066

Hello,

I want to set mode of closed loop operation.

can you please send an example of configuration file for this mode?

Any SW application note will great as additional addition.

thanks,

Michael

  • Hi Michael,

    Due to the holidays responses will be delayed.  I will get a example to you when I am back in the office on the 2nd.

    Thanks,

    Paul

  • Hello Paul,

    Happy New Year!

    today is the 2nd.

    Please send the examples that I asked.

    thanks,

    Michael 

  • Hi Michael,

    Table 7 gives a good summary of the required register configurations for entering closed-loop mode.

    Basic order would be this:

    1. Power on the different blocks in the device: Writ Power Mode Register (address 0x02)

    2. Set the CLOSEDLOOPn target code (Register 0x38 to 0x3B)

    3. Set the ramp thresholds (Address 0x4E to 4F), alarms (0x1E), alarm configurations (0x1B)

    4. Enable the closed-loop channels (0x14)

    5. Set the CS-Filter values and enable closed-loop operations (0x10)

    Thanks,

    Paul

  • Hello Paul,

    thank you for the answer.

    But I'm afraid it's not enough. the datasheet is clear but when I try to follow it the mode doesn't work.

    I need specific example with values of each register, maybe written in configuration file as a set of registers.

    Assume that the Resistor value is 70mOhm and the current via Drain need to be 125mA for GaN amplifier (negative Vgate) for CH1 at the EVB board of AMC7834.

    thanks,

    Michael

  • Hi Michael,

    First, we need to check if your shunt value is valid.  The AMC7834 current shunt monitor has a full-scale range of 200mV.  As a 12-bit ADC is used, we can calculate the LSB size as 200mV/4096 = 48.8µV.

    Using a 70mΩ shunt with 125mA would give a differential voltage of 8.75µV.  This is well below 1 LSB, so a larger shunt would be needed to optimize the ADC input range.  Lets target a nominal input voltage of 100mV deferentially when the current is 125mA.  For this example, lets use 800mΩ as your shunt resistor.  

    Here are the sets.

    1. Power on all blocks: write register 0x02 valve 0x0002
    2. Set DAC1-2 to 0V to -5V range: write register 0x16 value 0x0001
    3. Remove DACs from clamp: write 0x17 value 0x0000
    4. Enable CS1 in the ADC Channel Mux: write register 0x12 value 0x0100
    5. Set the closed-loop target code. In my example, I used midscale (100mV across the current shunt): write register 0x38 value 0x0800
    6. Enable the loop mode, set the ADC to auto conversion: write register 0x10 value 0x1301
    7. Trigger the ADC: write register 0x1C value 0x0001

    Once your ADC is triggered, you will set the DAC voltage start to slew until there is 100mV across the shunt.

    The other options, such as the filter settings, thresholds, and limits are application specific.  The steps above the are the minimum for closed-loop operation.

    Thanks,

    Paul

  • Hello Paul,

    I followed your instruction several times and in the end the closed loop operation doesn't work.

    I can change DAC manually but not in automatic way.

    Please advice how to proceed.

    Regards,

    Michael 

  • Hi Michael,

    Did you change your shunt value? Can you draw your schematic?

    Thanks,

    Paul

  • Hi Paul,

    R_shunt = 1Ohm instead of 70mOhm

    DAC1 = used for V_gate 

    Sense4 = used to measure the voltage on the R shunt.

    when I change DAC1 manually I see the voltage on the Sense4 and correctly shown in GUI and it's equivalent to the current drawn from the power supply.

    the circuit is correct.

    of course I updated the relevant registers for DAC1 and Sense4

    the automatic mode is not working.

    Please advice.

    Michael 

  • Hello Paul,

    after the message I sent two days ago I'd appreciate your reply on the matter above.

    Regards,MIchael 

  • Can you confirm if the ADC is converting once you closed-loop operation? Does a readback of all the recommended registers show the expected values? Is the device in some kind of fault state? It would be worthwhile to read all of the status registers and alarm registers.  In addition, does the DAC slew to the most negative value or the most positive value?

  • Paul,

    1. DAC - doesn't move at all in any direction

    2. ADC - not converting while in closed loop - but in the GUI of ADC mentioned that ADC in auto-conversion. the auto-read not working.

    3. no alarms and reading registers is correct with expected values.

    Michael 

  • Michael,

    Paul on out of office right now on personal time-bank. He will return tomorrow and continue to support this topic.

  • Hi Michael,

    Can you confirm what value you used for step 5?

    In addition, I recommend that you enter all of the steps on the register map page (low-level configuration) to ensure that the values are being entered correctly.  

    I suggest power cycling the device and entering the steps through the register map.  Then monitor the DAC output with a meter or scope.  My concern is that if you are using the ADC page you could be forcing the device out of the closed-loop mode.  Issue a trigger or changing the mux can stop the ADC, which will stop the closed-loop mode.

  • Hi Paul,

    1. the value that set is 0xA00 which is equivalent to 0.125A when R_sense is 1Ohm.

    2. I see that there is a misunderstanding what I'm doing with your help. let me be more clear (all my answers above are based on this mode  that I'll describe now):

     - I work only with register map (in low-level configuration) 

     - after I set the registers in low-level configuration window I check status ADC in ADC window and see that ADC is in IDLE mode and I made sure that ADC trigger is '1'. 

     - I use SENSE4 and DAC4 combination.

     - I tried to use SENSE4 and DAC1 the result was the same - ADC is IDLE.

    Please advice how to set ADC in auto-conversion mode and to enable LOOP closed operation.

    Regards,

    Michael 

  • I found a bug in the procedure I sent you:

    1. Power on all blocks: write register 0x02 valve 0x0002
    2. Set DAC1-2 to 0V to -5V range: write register 0x16 value 0x0001
    3. Remove DACs from clamp: write 0x17 value 0x0000
    4. Enable CS1 in the ADC Channel Mux: write register 0x12 value 0x0100
    5. Set the closed-loop target code. In my example, I used midscale (100mV across the current shunt): write register 0x38 value 0x0800
    6. Enable the loop mode, set the ADC to auto conversion: write register 0x10 value 0x0301
    7. Trigger the ADC: write register 0x1C value 0x0001

    Step 6: bit 12 should be 'b0 for the device to be in auto mode.  Now triggering the ADC in step 7 should keep the device converting.

  • Ok,

    this bug fix really set AMC7834 to auto-conversion mode.

    But, still I don't get closed loop operation.

    a reminder I use GaN amplifier, which means that when Vg is less negative (close to 0V the more drain current I get).

    when I turn ON V_drain and set auto conversion then DAC4 set to -5V and not moving in closed loop operation.

    when I turn OFF V_drain I still in closed mode operation but DAC4 changes to -3.5V and stops. 

    this behavior of AMC7834 is un-clear to me.

    HOW to configure so DAC4 will be updated according Drain current??? - Closed loop operation.

    Please advice,

    Michael 

  • Hi Michael,

    The procedure I provided was specifically for SENSE1 and DAC1.  The closed-loop operation only works for pairs of channels (DAC1+SENSE1, DAC2+SENSE2, etc.)

    If you are limited to only using DAC4 and SENSE4, then you can use this procedure:

    1. Power on all blocks: write register 0x02 valve 0x0002
    2. Set DAC1-2, DAC3-4 to 0V to -5V range: write register 0x16 value 0x005
    3. Remove DACs from clamp: write 0x17 value 0x0000
    4. Enable CS4 in the ADC Channel Mux: write register 0x12 value 0x0800
    5. Set the closed-loop target code. In your case: (125mV across the current shunt): write register 0x3B value 0x0A00
    6. Enable the loop mode, set the ADC to auto conversion: write register 0x10 value 0x0301
    7. Trigger the ADC: write register 0x1C value 0x0001

    Let's start by ensuring that you are using a correct pair of channels.  It would be useful for you to share your connection diagram as well.

  • Hello Paul

    thank you.

    the last set of configuration that you sent is working and I can set Closed loop of operation - Works.

    Now, I want to add another 3 Amplifiers (that the same Idq+ V_drain) for closed loop of operation.

    I want that in total 4 amplifiers will be monitored in Closed loop of operation in the same time.

    Please advise how set of registers need to be updated?

    Michael 

  • That's good to hear!

    Okay, so now you need to modify a few steps:

    1. Power on all blocks: write register 0x02 valve 0x0002
    2. Set DAC1-2, DAC3-4 to 0V to -5V range: write register 0x16 value 0x005
    3. Remove DACs from clamp: write 0x17 value 0x0000
    4. Enable ALL CHANNELS in the ADC Channel Mux: write register 0x12 value 0x0F00 
    5. Set the closed-loop target code for all channels. In your case: (125mV across the current shunt): write registers 0x33 to 0x3B value 0x0A00 (or each unique value)
    6. Enable the loop mode, set the ADC to auto conversion: write register 0x10 value 0x0301
    7. Trigger the ADC: write register 0x1C value 0x0001

    That should do it.

    Thanks,

    Paul

  • OK,

    I'll check and get to you for a feedback.

    while I'm checking I would like to know following:

    while ALL 4 Closed Loop are enabled and working, is it possible to operate in addition  Auxiliary DAC with Single ended Analog Inputs?

    Michael 

  • You are able to read the other ADC inputs and write to the aux DACs, but there is no supported closed-loop operation for these channels.  All updates to them must be done manually via the host processor/MCU.

  • I understand that.

    So, just to make it clear:

    While 4 - Closed Loops are working, I can set Aux DAC and other ADC in parallel?

    if YES, please send possible list of registers configuration for this?

    thanks,

    Michael 

  • Yes, you will need to update a few registers:

    1. When you set the ADC MUX register (0x12), you will need to enable the other channels you want to use.

    2. When you set the range of the DACs, you can set the other ranges as well (register 0x16).

    3. You can set your AUXDAC value at any time (register 0x34-0x37)

    4. Once you have triggered the ADC, you can read the adc inputs (0x24-27).

    The key thing to keep in mind is that if you write update the MUX registers or the ADC configuration register after setting the trigger, you will stop the ADC.  You will then need to trigger the ADC again to resume the closed-loop mode.

    Thanks,

    Paul

  • Hello Paul,

    I did some checking and I need to know the following:

    Once I calibrated my amplifiers and I have all the relevant information about each amplifier, is there any way to store this information in the memory of AMC7834 so next power up the registers will be uploaded from the memory without any external configuration form the processor/FPGA?

    For instance, Once I calibrated AMP's on the production line, I want that on the power up as a product all the calibration will be uploaded from the memory of AMC7834.

    Please advise,

    Michael 

  • Hi Michael,

    The AMC7834 does not feature non-volatile memory.  The device will need to be re-programmed at every power-cycle.  

    We do have a device that is similar to this, the LMP92066 which does feature NVM, but it does not use a current shunt for compensation, but rather it has a temperature sensor and a look-up table.  You would program a compensation curve to accommodate for thermal shift in the PA, and the bias voltage will update accordingly.

    thanks,

    Paul