sinara-hw / sinara

Sayma AMC/RTM issue tracker
Other
42 stars 7 forks source link

3U DAC (Zotino) tests & rev 1 errata #227

Closed gkasprow closed 6 years ago

gkasprow commented 7 years ago

Issues:

Tests that can be done without an Artiq driver:

Tests that need an Artiq driver:

Configuration for measurements is: DAC->3m SCSI cable->HD68 to IDC->IDC to BNC->scope/DVM/noise analyser. CMCs and a LPF on the IDC-BNC board as previously discussed. LPF chosen to avoid degrading the DAC noise or bandwidth too much.

3u dac photo top

hartytp commented 6 years ago

@dtcallcock good point. It also provides a good diagnostic: turn the heater on and then read out the thermal shutdown bit. If that's triggered, we know what the issue is...

gkasprow commented 6 years ago

I will check it.

gkasprow commented 6 years ago

The DAC without cooling heats up itself to 36 degrees. I took the DAC board with new chip. So I suspect that when I heat it to 50 degrees, Its power consumption increases and then it heats itself until destruction. So when it's cold in the lab it works well, when it's slightly warmer this triggers uncontrolled heating "chain reaction" that temperature controller cannot stop. So there is one solution - instead of using heating components, use little Peltier device that can do both heating and cooling and keep temperature at let's say 20 degrees. I will modify it in such way.

gkasprow commented 6 years ago

This is DAC temperature in self-heating mode. Sudden drop happened when I touched DAC package with my finger so it means that heat capacity of the island is very low. obraz

gkasprow commented 6 years ago

Another option is to add external thermal shutdown. In this way when somebody switches the board without configuration and cooling, the DAC will sill have a chance to survive. I tried with Pelter but it works only with airflow. But with airflow it works also without Peltier :) Once it exceeds 50 degrees, airflow cooling cannot stop the heating trend so we must stabilise the temperature at much lower level.

hartytp commented 6 years ago

The DAC without cooling heats up itself to 36 degrees. I took the DAC board with new chip. So I suspect that when I heat it to 50 degrees, Its power consumption increases and then it heats itself until destruction.

I still don't understand this. So, without the heater, the DAC heats itself from something like 20C (room temperature) to 36C, so the temperature rise is about 15C. (Given that the DAC dissipates about 1/4W, that means that the impedance of the thermal island is about 60C/W, which is indeed very low).

From the curves in the data sheet, the DAC's power dissipation hardly changes between 20C and 80C. But, even if the DAC's power dissipation doubled, that would only add an extra 15C to the temperature, which still leaves us at something like 65C, well below the 80C that the DAC is specified to operate at. So, I can't see that the DAC's power dissipation is the cause of this, as you describe.

hartytp commented 6 years ago

My best guess is still that the temperature controller overshoots massively during turn-on, and that this transient is what kills the DACs -- while the DAC power dissipation doesn't really change up to 80C, I can believe it runs away beyond that.

The temperature controller can supply ?W which, given the island's tiny thermal impedance, is enough to heat the PCB up to something like 115C. This heating will occur very rapidly given how little thermal mass the island is.

Maybe the best bet is to double the size of all those heating resistors (or even a little more than double). That should keep the DAC within the safe operating point no matter what the heater does.

hartytp commented 6 years ago

Greg, the temperature controller is of secondary importance for this design. So, unless decreasing the heating resistor value (or lowering the loop gain to reduce overshoot) fix this problem, my vote is to leave the temperature controller disabled for the time being and move on to the other tests.

Either way, I'm satisfied that we've reached the point where you can ship two boards to us now.

Edit: we can come back to fixing the temperature controller when we look at version 1.2

hartytp commented 6 years ago

Some other thoughts:

  1. Given how low the thermal impedance of the thermal island is, we can probably afford to connect it to the main board better (wider/shorter tabs). This will help to give the island more thermal mass, making it less sensitive to temperature fluctuations, and (by providing more ground) will also improve signal integrity.

  2. We should make sure that the final temperature controller has plenty of phase margin. The loop gain will depend a bit on ambient conditions (temperature/air flow), so we need to make sure it has acceptable phase margin over a wide range of environmental conditions. This requires a lot of extra phase margin.

  3. Given that the island has low thermal impedance and the temperature controller loop isn't going to be too tight (given point 2 above) the temperature of the DAC is going to be very sensitive to air currents (cf your finger measurement above). To achieve decent stability I suspect that we will definitely need to screen air currents away from the DAC. Can we add small/cheap screening cans on both sides of the board around the thermal island. These should connect to the main PCB ground.

gkasprow commented 6 years ago

I modified resistor values and added external shutdown. Now when it exceeds 55degrees, DAC negative rail gets disconnected and LED starts blinking. After cooling down it starts working normally. Temperature stabilisation loop works at 42 degrees. Below is log of temperature. Interesting moments: 0: power on 5.22 fans voltage reduced from 12V to 9V 10.45 - my colleague enters the room 12.50 - a person leaves the room 15:00 fans voltage changed to 12V

obraz

gkasprow commented 6 years ago

changes for rev2:

gkasprow commented 6 years ago

Another issue is that thermal regulator loop time constant depends strongly on airflow. So as @hartytp wrote shielding should help a little.

gkasprow commented 6 years ago

@hartytp 2 boards were modified - overtherm comparator was set to 55 degrees and it shuts down the negative LDO. Tomorrow morning they will be sent to UK.

hartytp commented 6 years ago

@hartytp 2 boards were modified - overtherm comparator was set to 55 degrees and it shuts down the negative LDO. Tomorrow morning they will be sent to UK.

Great, thanks!

hartytp commented 6 years ago

I still don't understand why the DACs were breaking before. Looking at figures 15 and 16 in the datasheet shows that the DAC's power consumption does not change significantly between 20C and 85C (die temperature). The DAC's die should be approx 1/4W*25C/W=6C above ambient, so if you are only heating the thermal island to 50C (approx 56C die temperature), there really shouldn't be any problem; this is well within the specified operating range of the DAC.

So, I really can't see why the temperature controller was breaking the DACs before. Are you sure that there wasn't a temporary thermal overshoot when the temperature controller was turned on? Since the thermal mass of the island is so low, the overshoot could be quite brief and easy to miss. That's really the only explanation I can see for this, since the DAC shouldn't go into thermal run away at this temperature. Or, am I missing something?

hartytp commented 6 years ago

Looking at the temperature plot you posted, the temperature control loop looks quite close to oscillation (lots of ringing). As I said before, the loop gain will depend on ambient temperature/air flow/etc, so we need to make sure this loop has lots of phase margin. If it's ringing now, it could easily oscillate under different conditions.

hartytp commented 6 years ago

increase thermal capacity of the island. At the moment it reacts too nervous to slight temperature changes in the room

This should help a bit. But, if we increase the coupling between the island and the main PCB too far, the power required by the temperature controller will become unacceptable.

Another issue is that thermal regulator loop time constant depends strongly on airflow. So as @hartytp wrote shielding should help a little.

I think this will be important. Either use cheap metal screening cans, or some foam glued onto the PCBs (whichever is easier/cheaper and sufficiently robust).

dhslichter commented 6 years ago

What's wrong with a Peltier and putting the setpoint at ~25 C or so? Then make a good thermal connection between the DAC and the rest of the board (to provide thermal mass), choose the DAC setpoint to be approximately ambient, and then the Peltier + heat sink allows it to servo heating and cooling to maintain.

hartytp commented 6 years ago

@dhslichter More hassle than it's worth IMO (e.g. needs a heat sink). Easier just to heat a little and add some insulation.

gkasprow commented 6 years ago

@dhslichter There is nothing wrong. It has almost advantages - much better stability of the step response vs air flow. It takes roughly 100..300mW of power to keep temperature at the level of 30deg. I tested today such solution. There are however two drawbacks:

dhslichter commented 6 years ago

@hartytp very debatable that it's "more hassle than it's worth", given the issues we are seeing here. If we had a Peltier none of this would be occurring because we would be choosing a lower setpoint.

hartytp commented 6 years ago

If we had a Peltier none of this would be occurring because we would be choosing a lower setpoint.

True. So long as you have a nice way of doing the mechanics...

gkasprow commented 6 years ago

@hartytp I plan to order tiny Peltier and use nice chip from Maxim that integrates all functions. So with little additional PCB I can try to stabilize the DAC temperature.

gkasprow commented 6 years ago

Another option is this, much cheaper chip from ADI

dhslichter commented 6 years ago

No heat island/isolation, tie everything together with nice ground strapping. Clear space on the underside of the board for Peltier? Not sure what the clearances are there. If it has to be on the top side, you can't run under a can, but you rely on having the Peltier outside the can but close to the DAC, and you make the thermal conductivity through the ground plane layers high so that you have a good thermal link. Remember the goal should just be stabilizing temperatures against noise/drifts, probably accepting a dc temperature offset which might vary from rack to rack.

gkasprow commented 6 years ago

@dhslichter What about placing DAC on bottom side of the PCB, then on top goes Peltier, then the heatsink protrudes through the shielding can which can be much lower than now. I'd like to isolate the DAC from other ICs, mainly output drivers that may generate some heat when loaded. And since QFP package conducts the heat mainly through bottom thermal pad, and we want to stabilize temp of the DAC, such solution seem to be optimal. That was my intention of this island to isolate the DAC from neighbouring opamps. I did not take into account that its thermal capacity is so low and that regulator time constant varies a lot with airflow and it might be difficult to provide such phase margin that it would work reliably in all conditions. I noticed today when I was playing with the board that regulator works quite well with window open, it reaches temperature without oscillations. But when I closed the window, it started oscillating itself. The board is placed just about the window and outside is really cold.

hartytp commented 6 years ago

I noticed today when I was playing with the board that regulator works quite well with window open, it reaches temperature without oscillations. But when I closed the window, it started oscillating itself. The board is placed just about the window and outside is really cold.

Well, that explains the mystery of the spontaneously exploding DACs ;)

hartytp commented 6 years ago

through the shielding can which can be much lower than now.

Do we even need the screening can?

My vote is this: let's forget about the temperature controller for the time being and focus on testing the rest of the board. One test we plan to do anyway is the EMI sensitivity test. If we find that the DAC doesn't need screening to protect from adjacent noise sources (Kasli etc) then we can scrap this screening can, which makes the peltier mechanics a bit easier.

gkasprow commented 6 years ago

@hartytp the oscillations I observed today were less than 1K. Initial regulator components gave very short time constant so the heater wouldn't be able to kill DAC. It worked like hysteresis regulator. I had to extend regulator time constant 20 times to make the regulator somehow stable. Overheating could have happened if the regulator was too slow. Anyway I will investigate it with original component values. The same situation happened with 3 boards so at least it is consistent :) So first of all, what needs to be measured is step response/ bode plot of the thermal circuit in different airflow conditions. Then we can check if it is possible to choose PID values that would make such regulator stable. If not, then Peltier would be the only way to go.

dhslichter commented 6 years ago

One thing to think about with Peltier is that we will probably want to run in analog mode, rather than PWM mode. There is an efficiency tradeoff, but it's probably not good to have ~amp-level pulsed currents directly next to your DAC, in terms of noise pickup :)

dhslichter commented 6 years ago

DAC on bottom of PCB is fine with me. I don't think the DAC needs a shielding can necessarily. Also, I forget how cluttered the inner layers of the board are, but if you ran the signals on inner layers with grounds on the outside, it would provide a nice "shielding can" for pickup in the long traces between DAC and amplifiers/filters, which I think is our main potential issue in terms of pickup.

gkasprow commented 6 years ago

@dhslichter good idea. But anyway we need to generate low voltage, high current supply for Peltier. In my case I needed 1A and 0.2V to keep DAC at 30 degrees.

hartytp commented 6 years ago

Reminding myself how good the temperature stability needs to be...

OpAmps (not actively stabilised):

hartytp commented 6 years ago

Anyway, pelter sounds good if not too expensive, but it'd be great to see the other tests done before we spend too much time on the temperature controller!

dhslichter commented 6 years ago

@hartytp agreed on this count, but we have to figure out a way to keep the DACs from cooking themselves into oblivion before we can do the tests :)

The output resistor will matter if one is making ac waveforms, though.

gkasprow commented 6 years ago

@dhslichter I implemented simple protection mechanism that switches the DAC rail off when too hot. One can modify other boards as well or use without heater as they are now.

hartytp commented 6 years ago

The output resistor will matter if one is making ac waveforms, though.

Not necessarily: for the DC one wants ppm stability, but in most cases 0.1% drifts in the AC amplitude aren't a problem. In any case, the AC drift will likely be dominated by the caps, not the Rs.

@gkasprow Given that these resistors can take as much as 10V^2/500R=200mW (DAC short circuited) is it worth paralleling two resistors for the outputs to improve thermal performance?

gkasprow commented 6 years ago

@hartytp sure, we can add, there is plenty of space.

hartytp commented 6 years ago

@cjbe @klickverbot If you have time, do you think you can help out with some of the above tests? Particularly the ones requiring Artiq, since @gkasprow doesn't have Artiq up and running atm. Anything you can do will help speed things along (I'm keen to get onto the ADC v2 design so M-Labs can finish the noise eater).

gkasprow commented 6 years ago

Today I repaired and modified the DAC board I have. I left original regulator compensation components to see what could be initial cause of DAC failure. Only temperature set point is different : 40 degrees instead of 50 degrees. Below is temperature log. After 3 mins I switched on the fans. obraz So now I can play with optimisation before Urukul arrives. Technosystem promised they will be ready on Friday.

jordens commented 6 years ago

Then I take it that Kasli has been handed of to Technosystem as well? IMHO doing the redesign for Novo with the new ADC would fit the timeline nicely right now. No?

gkasprow commented 6 years ago

Yes, Kasli is in production right now.

hartytp commented 6 years ago

IMHO doing the redesign for Novo with the new ADC would fit the timeline nicely right now. No?

If there is time to make significant progress on Novo v2.0 before Friday then I'd agree: that should take priority over further testing of Zotino. Once that is done, we have a prototype of all EEMs currently planned, so users can start testing and M-Labs can write software.

hartytp commented 6 years ago

Yes, Kasli is in production right now.

Fantastic!

jordens commented 6 years ago

Great. @marmeladapk is Kasli/v1.0rc3 == Kasli/v1.0? Could you do the release process as described? @gkasprow Do you need input on Novo v2.0?

gkasprow commented 6 years ago

I played a little with RC filter values. Now the components are: Rint = 200k, Cint = 47n II (10uF+10k)

obraz

Initial transients were caused by door opening. Then all people left the lab. It keeps working, I measure the temperature with bench multimeter. The scale is 10mV/K. Anyway, I'd love to put there small CPU as a temperature controller. Then PID coefficient could be updated via SPI or it could select them depending on the airflow. The algorithm could be trivial - just measure the time constant of the heating circuit and select one or another set of coefficients. The only drawback is that it needs programming and code to maintain but I can take care of it.

hartytp commented 6 years ago

@gkasprow I really worry about making this temperature stabilization circuit overly complex, as the stability of the DAC is almost good enough to get away without the stabilization circuit anyway.

Let's put this issue aside for now and come back to it once we've finished testing the rest of the DAC's functionality (and designing the v2 ADC).

hartytp commented 6 years ago

@gkasprow Here are my thoughts about the temperature controller:

hartytp commented 6 years ago

@gkasprow A couple of questions about power supplies/sequencing on the DAC:

gkasprow commented 6 years ago

@hartytp well, it is purely historical. Initial idea assumed different supply levels for DAC and amplifiers.Then we decided to have 10V range instead of 12 due to the price of precise resistors so I only modified the LDO resistors. One can also make DC/DC voltage lower 13V would be enough. Diodes are fine.