Post Go back to editing

all MAX14912 outputs in push-pull and parallel mode switch @duty=30% while INPUT is always high.

Category: Hardware
Product Number: MAX14912

Dear All,

I am a newbie. 

I have a problem on my prototype with MAX14912 devices onboard. My schematic is below, following MAX14912EVKIT schematic.

I use external Vdd=24V to supply the device, using V5=5Volts and VL=3,3V, too. I use the device with push-pull outputs and parallel mode.

So: PUSHPL =3V3; EN=3V3: SRIAL =0;BUKEN=0, to set the wished functional mode. I kept the SPI port for diagnosis only.

I drive IN1...IN8 with a 3V3 microcontroller and I observe the outputs OUT1...OUT8 with a load of about 3,3mA each one. ...A little load to lite on just a led for each outputs.

The problem is the following.

If INx=0V the output OUTx is correctly near 0V, as written on datasheet.

If INx=3V3 (fixed) I observe OUTx output switch between 24V and 0V with a duty of about 30%.

Please, could explain me how could I get a stable 24Vdc output while input is 3V3 ?

Thank you very much for your availability.

Best Regards, Davide.

Parents
  • Hi Davide,

    This behavior is unusual. Could you please specify what you are using to create a 3.3mA load current, and what the current of the 24V supply is? Also, is the 24V supply stable?

  • Hi YuriyK1,

    Thank you very much for your kindly reply.

    My circuit is composed by 2 indipendent MAX14912 devices. They work both in push-pull and parallel mode, too.

    The 24V is always stable becuse the load is almost negligable.

    The supply circuit is made to bear 250mA x 16 outputs = 4A.  Please note that the 16 loads combined with the outputs (one for each output) are made up of a series of a LED and a 6.8Kohm resistor. They serve only to verify the physical value (0V...24V) of each output.

    I think something intervenes, like a watch-dog or another protection that I inadvertently triggered through the circuit I made. The 30% percentage is really "strange".

    Please note nor UVLO* and FAULT* open collector outputs intervenue.

    Regards, Davide.

  • Hi YuriyK1,

    I will expose my screenshots in few hours. This morning I must go out of the office to our customer. This afternoon I will reply to you with all voltages characterization..

    Thank you very much for your support!.

    Regards, Davide.

  • Hi YuriyK1,

    Below two pictures. The first one is captured when IN1 [pin #27] is fixed at 3V3 voltage.

    In the second one, the same pins are captured when IN1 is fixed at 0V. Again, IN1 (due to oscilloscope's maximumum traces reached) is not reported.

    Please, look the scale of OUT1 is 500mV/div.

    I wait your considerations. 

    Thank you very much for your availability.

    Regards, Davide.

  • Hi Davide,
    All supplies appear to be in order. Could you check the SPI activity to ensure that CSN1_8 remains high?

    Regards,
    Yuriy

  • Dear Yuriy,

    Thank for your reply. I made two checks. First of all I checked CSN1_8 was high during INx=1, but OUTx switch between 0V and 24V as descripted in my past pictures. The second one, I changed my card in order to made CSN1_8 always to "1" (= 3,3V physically), even during the power up of the supplies.

    ....But nothing changes.  Vout is always switching between 0V and 24V with a period of 10,45msec and ON-time of about 2,4msec despite VIN=VL=3,3V costantly.

    Regards, Davide.

  • Hi Davide,

    All power and SPI signals are confirmed to be good. The OUTx would only shut down automatically if there is overheating caused by an output current that exceeds the current limits. Please ensure there are no shorts to ground. We could try applying hot air (around 100°C) to the chip to see if the turn-on and turn-off timing is affected. Currently, at room temperature, the duty cycle is approximately 30%. It is anticipated that the duty cycle will decrease in a hotter ambient environment.

    Regards,

    Yuriy

  • Dear Yuriy,

    Thanks for the explanation. Now I'm starting to explain the behavior I observed a little better..... It seemed to me that the 30% duty was not a coincidence!

    In our circuit we have 16 independent and non-parallelized outputs, using - as I said - 2 MAX14912 devices independently and in parallel mode driven.

    All outputs behave the same way I showed in the oscilloscope recordings, testing them individually.
    We created two samples and the behavior between the 32 releases is the same. I measured once again and there are no short-circuits to GND or other voltages. As a test, the outputs are enabled one at a time.
    We have created the outputs each with two external protection diodes (appropriately oriented, as per the above picture). Can they cause problems? The 24V voltage is external to the circuit.
    P.S. I just received the MAX14912PMB#, the only development board for MAX14912 readily available (I should receive the MAX14912EVKIT# in a week). I'll try to modify it to make it work with SRIAL =0, ...but it doesn't seem that easy.

    Thanks for collaboration.
    Greetings, Davide.

  • Dear Yuriy,

    I verified the ES1J diodes do not change the behaviour of the system.

    Regards, Davide.

  • Hi Davide,
    Have you tried to remove the pull-up and pull-down diode from one of the channels? Do you see the same behavior on that channel?

    Regards,
    Yuriy

  • Dear Yuriy,

    The answer is yes in both cases.

    Please, focus on my path... I think to go near the solution.

    I just get the last MAX14912PMB card from a distributor. I modified it to seem like what I need on my card. Please look at the below figure.

    To shorten the description of my tests, please consider the fact that I put PULL-UPs and PULL-DOWNs on all I/Os that required it.
    I have successfully tested the functionality of the MAX14912 on the board on the IN2/OUT2 and IN7/OUT7 outputs.
    So, it means that my design error is in the buck-controller part.
    On the MAX14912PMB board, BUKEN=24V while on mine BUKEN = 0V ...since I don't use it!!!

    So, the only differences are reduced to just the Lx which I don't mount on my board.

    I ask you, therefore: if BUKEN=0V, can pin#9 = Lx be floating? Or does it MUST be connected to 5V anyway (in my case the voltage is external and is created with an external buck)?
    I left Lx floating. In the MAX14912 manual there are no indications whatsoever regarding the case of not mounting the external L (see page 19 of the manual).

    Thank you. Greetings, Davide.

  • Hi David,
    if BUKEN=0V and V5=5V from an external source, the Lx pin can be left floating. The buck controller has no effect on the circuitry if it is disabled. You can try to remove the inductor and provide 5V to V5 pin on the PMB board and check if it is still working.

    Regards,
    Yuriy

Reply Children
  • Hi David,

    Are you able to solve this issue or it is still opened? Please let me know.

    Regards,

    Yuriy

  • Dear Yuriyk1,

    I received the MAX14912 EVK. I positivly checked all behaviours I would replicated on my board. But the behaviour I detect on my board is not feasible on the EVKIT.

    Since I am not able to explain myself the behaviour on my board (since there are not any short circuit in the board when the card was turned off), I need to investigate what the MAX14912 registers contain in the devices on my board. To do this, I need to replicate the command mode protocol when SRIAL=0,PP=1,EN=1, following table 8 of page 26 of the datasheet.

    Please note the right protocol used from Analog Devices to investigate the device is not really explained.

    I was forced to obtain the correct log investigation protocol by extrapolation from your software (log window). I don't think the correct investigation procedure is written anywhere. Especially the need to repeat the request to get the logs information on the second request of the same type.

    Apart from this, unfortunately I have to recognize that if I query EVKIT from USB the register 5 always shows the result 0xA4, while if I query it from "external SPI" (made with another custom circuit), the result is 0x24. It seems that the watch-dog does not create problems in the second case....

    One more doubt about the possible mismatch description used in your software (EVKIT v1.11) and table 9 (FAULT SUMMARY) on page 31 of the datasheet.

    If I'm not mistaken, in Analog Device's software (EVKIT v1.11) the register #7 is referred to TABLE 7 on page 29 of the datasheet, too. In this case the description refers that any bit of register 7 emphatizes an OUT-overvoltage-detection. In table 9 at page 31, the last row is named "Short circuit". I think it would explain that if there is at least one OUT channel with a short circuit, the FAULT* pin goes low, BUT -at the same time- it refers to REG7.

    What does this mean? 

    If a short circuit has detected on OUTx, the pin FAULT* goes low ....AND do the x-bit of the REG7 goes high, too? (So, It seems any bit of register number 7 carry both informations about overvoltage output AND overcurrent output. Is it correct, please?)

    Thank you very much for your availability.

    Best Regards, Davide.

  • As conclusion of my investigation about MAX14912, I finish to check the SPI state on my board in the following condition (how I already written): SRIAL=0; PP=1; EN=1; IN1=...=IN8= 0; BUKEN=0; V5=5V external and 3V3 external.

    At startup, I detected the default value (0x00) on registers 1,2,3,4,5,7. The register 6 is equal to 0x07, while its value detected over MAX14912EVK on USB was 0xA4 and the same register (always on EVKIT, too) is 0x24 if checked by external SPI (different from Analog Devices test program). These behaviours I think were compatible with the different bias conditions.

    On my board, if I force any input to "1" , the associated output goes to "1" with a duty about 30%, but while the FAULT* pin is always "1" (as is the internal output mos does not turned on), the MAX14912 internal register may emphatize the fault condition answering to 0x30+0x00 command, with a values "1" on correponding bits.

    For example, if IN1=1; IN2=...IN8=0; writing on SPI the "Read-Real-Time Status" command , the MAX14912 answers 0x10 sometimes (as is when the physical output goes "0" instead the correct "1" value.......I suppose). Since the real-time status is not always "1", it is possible to read a "0x00" value in the same condition. This is acceptable as written in the datasheet. Despite this correct/acceptable behaviour, I expected that the global FAULT* signal would also go to "0" for the times foreseen by the datasheet.

    I apreciate your answer.

    Regards, Davide.

  • Davide,

    After power up the board, try to read register 6 two times sending command 0xA0+0x06. All IN_ pins should be 0. After second SPI transaction you should get 0x0000.
    Command 0xA0 is a read command 0x20 with Z MSB=1.  MSB=1 clears all fault conditions from the previous operation. If you don't get 0x0000 after second SPI transaction, then something wrong with your setup. If register 6 still equal to 0x07 this means that the respecting V5 and VDD are below undervoltage thresholds. Double check the power on your board.
    Let me know if you can successfully pass this step. Then we can try the next step.

    Regards, Yuriy

  • Dear YuriyK1,

    Sorry, I forgotten to write back to you. I am perfectly able to reset Register 6. After the reset (0xA6+0x20), the 6th register is resetted to default value 0x00 (as is, no condition of error are present).

    Regards, Davide.

  • Ok, when you are able to read 0x00 from register 6 try to set one of the IN_ pin, for example IN1, to high. Does the OUT1 become 24V? If you still see the 30% oscillation, what you read from register 6?

    Regards, Yuriy

  • Dear YuriyK1,

    After boot and reset I read on register 6 the "0x00" value. This is the right condition to start the test. Please note, after reset, all registers are "0x00". (Since register 6 before reset was "0x40", I am sure to communicate in the right way with the device).

    After this, I put IN1=1 and the OUT1 oscillates with 30% of duty, as usual in my experience. Please note I could put to "1" any INput and I will gotten the corrispondent OUTput pin with 30% of duty.

    The register 6 (investigated with 0x20+0x00 bytes) shows the value "0x00" when read, as if no error were present. Please note I investigate about any 1000 milliseconds cycle. Again, all registers have the default value (after reset) of "0x00".

    ***********

    Please note, it was only with Real-time-status command I could read the fail(s) ("1" bit value) on channel(s) as I aspected. This correct "fail flag" was not always asserted. I think it happened when the MAX14912 detected the difference between the output at 0 voltage while the input was at logic one, as is the about 66% of the duty cycle .

    ************

    Regards, Davide.

  • Hi Davide,

    To read register 6 you should send command 0x2006 (two bytes while CS=0, where the first byte is read command 0x20 and the second byte is register address 0x06). When you send 0x20+0x00 you read from register 0.
    Please refer to the Table 8 of the datasheet.
    Could you please repeat that sequence again with the correct command?

    Regards, Yuriy

  • Hi YuriyK1,

    Sorry, I wrote in a bad manner the SPI request used. I follow the EVKIT protocol: writing 0x20+0x06 (discharging the MAX's answer) and writing again 0x20+0x00 (considering the second MAX14912's answer, as the response to the first "0x20+0x06" to read register 6). In example, the log below:

    So, I did the right requests, but foolishly I omitted to write back you correctly.

    Regards, Davide.

  • Hi Davide,

    It is not clear when you get "0x00; 0xa4" after reading reg. 0x00 or reg. 0x06. When you send 4 bytes you should receive 4 bytes.
    0xa4 is a register value from previous command, refer to Table 4 of the datasheet.
    Could you modify your program to issue the following command
    SDI: (CS=low) 0xA0; 0x06 (CS=high); (CS=low) 0x20; 0x06 (CS=high)
    SDO:      0x??; 0x??            0x??; 0x??

    Thanks, Yuriy