sinara-hw / sinara

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

Kasli v1.0 tests & errata #349

Closed marmeladapk closed 6 years ago

marmeladapk commented 6 years ago

To be changed for rev1.1

sbourdeauducq commented 6 years ago

If this does turn out to be a problem, adding diodes alone isn't necessarily enough, since the clock chip already has Schottky diode junctions at its inputs. So, we would probably need diodes and a current limiting resistor, placed between the diodes and the clock chip

What would be the problem - excessive current through those diodes? Then what about adding a current-limiting resistor in series with the power pin of the clock chip (+decoupling of course), a diode, or a MOSFET-based switch? (semi-related: https://hackaday.com/2011/05/20/using-an-avr-as-an-rfid-tag/)

jordens commented 6 years ago

I'm ok with floating the SMA connector if that's risk free. Why does no scope or spectrum analyzer manufacturer seem go that way e.g. on their reference inputs/outputs?

I'd have preferred to have a non-transmission line galvanically isolating bal-un instead of that TLT (TR1). We should change that for Kasli v2.0. I overlooked it twice now...

@marmeladapk Schematics look good!

hartytp commented 6 years ago

I'm ok with floating the SMA connector if that's risk free.

The major risk I'm aware of here is that if one attaches a connector where the ground is at a significantly different potential (e.g. floating with ESD) then that now doesn't have a low-impedance path to circuit ground. There is a similar issue with using isolation transformers.

This is generally not an issue, but in a few cases it can lead to ESD-like damage of components (e.g. when ground potentials rapidly change relatively to each other). For the kind of lab work we're going to do I wouldn't anticipate this being an issue. Still worth being aware of.

Why does no scope or spectrum analyzer manufacturer seem go that way e.g. on their reference inputs/outputs?

I can't give you a definitive answer on this (maybe Greg or Samer can) but a few comments:

I'd have preferred to have a non-transmission line galvanically isolating bal-un instead of that TLT (TR1). We should change that for Kasli v2.0. I overlooked it twice now...

IIRC the reason we decided not to do that was that the flux-cored baluns run out of steam rapidly above 1GHz. That means that you don't get a very nice square wave clock through them, so they're not great from a phase noise perspective.

For Kasli this may not be such an issue (since we don't care about phase noise too much), but I guess we figured that it was easiest/best to just do the same thing we're doing elsewhere (which would still be my preferred option).

hartytp commented 6 years ago

What would be the problem - excessive current through those diodes?

Exactly. But, only when a clock signal is applied while the clock chip is not powered.

When those things are properly biassed they're quite hard to kill. The diodes don't begin to conduct until the Vpp exceeds Vcc + 2*0.3V =3.1Vpp=1Vrms=+14dBm in our case. After that, the ADCLK chips can take 40mA through each diode. So, you're not likely to damage that with any standard signal generator.

When no supply is present, the positive-going part of the input signal sources current to the positive supply rail. That can be quite messy. But, in general, the supply rail charges up until enough circuitry powers up to provide a path to ground for this current. Usually to a volt or two. In rare cases, reverse biasing the LDO that normally supplies this rail can cause it to go into lockup (in which case, a diode is required across the LDO output).

Then what about adding a current-limiting resistor in series with the power pin of the clock chip (+decoupling of course), a diode, or a MOSFET-based switch? (semi-related: https://hackaday.com/2011/05/20/using-an-avr-as-an-rfid-tag/)

If you add resistance in series with the power rail, you also need to add it in series with the ground pin. These chips draw quite a lot of current, so to put enough resistance there to provide adequate protection can start to give a decent voltage drop across it, which is undesirable.

Also, FWIW, to get good close in phase noise, the power supply/ground needs to be low impedance all the way down to DC, so the decoupling capacitors aren't enough.

Not sure where you mean to put diodes? Between the connector and the clock chip? That's not a bad option, but:

Not sure what you mean by a MOSFET, but, again, there are the issues of ensuring that any components you add don't degrade the clock chip's performance, and thinking about how they operate when no supply is present.


This is all messy enough that it's probably not worth worrying about it for now and only fixing it if it turns out to be a problem in practice.

hartytp commented 6 years ago

One final thought about this: shall we populate the transformers on the clock inputs by default?

I don't feel strongly about this, just raising it.

With all of this, @gkasprow and @marmeladapk just do whatever you think is best (or whatever you have time for).

sbourdeauducq commented 6 years ago

Not sure what you mean by a MOSFET

In series with the clock chip's power, just like the diodes, without the drop-out voltage but needing more complex circuitry to turn it on/off with the board (like a synchronous rectifier). Then the rectified clock could only "power" the clock chip, which could reduce current to acceptable levels.

hartytp commented 6 years ago

That doesn't sound like a god idea to me at all.

Let's not overcomplicate (and potentially break) the design to try to solve something that we don't know is a problem -- hopefully, the ESD diodes on that Si chip are relatively beefy and can take the current that a standard +13dBm clock source can throw at them. If they can't then I still feel that diodes and a current limiting resistor on the input are the best way to protect the clock chip (although, that would probably need some prototyping to get right). Adding some pads for DNP/0R components was just intended as a quick way of ensuring that we can add extra protection in the future if needed without changing the layout, without actually adding them now. Edit: but, I'm still not sure that even that is an entirely worthwhile thing to do (I'll leave the decision about how to handle all this to @gkasprow and @marmeladapk).

sbourdeauducq commented 6 years ago

You still have to make sure that your FET switch functions properly when not biassed (taking into account all parasitic diode junctions)

Sure; worst case use a small solid-state relay, that can't go wrong. Anyway, agreed we should not look too much into this unless it's a real problem.

jordens commented 6 years ago

I'd be fine with that as long as it doesn't delay anything and as long as we change them from TLTs to isolating bal-uns.

hartytp commented 6 years ago

I'd be fine with that as long as it doesn't delay anything and as long as we change them from TLTs to isolating bal-uns.

With populating the baluns you mean?

Out of curiosity, why do you want to go for a flux-cored balun? For Kasli I'm not particularly fussed, but it does seem like a shame to use something that can't pass RF and I can't see an obvious advantage in terms of isolation (why do this galvanically rather than the current capacitive coupling)? Also, if you want to use the balun for isolation then you'll need to change the layout a bit IIRC since one half of the balun would need to be on the "ground island" with the connector...

jordens commented 6 years ago

Yes. For 100/125/150 MHz I'd like a DC isolated bal-un instead of trifilar one currently in the schematic. And yes, in that case make it a ground island. I like them because i would guess that breakdown voltage is higher than with capacitors. And AFAICT this (and not capacitors) is what people use in the industry to provide galvanic isolation. I expect them to have good reasons. What is a "flux-cored" balun? AFAIK they all have flux in the core.

marmeladapk commented 6 years ago

@jordens Are you fine with some pin swapping? Either way there will be new pinout. ed: and @sbourdeauducq

jordens commented 6 years ago

@marmeladapk depends a bit where. But generally yes.

marmeladapk commented 6 years ago

@jordens Only control lines for SFP.

jordens commented 6 years ago

Oh yes. Feel free. Same goes for LEDs.

hartytp commented 6 years ago

What is a "flux-cored" balun? AFAIK they all have flux in the core.

Flux cored/magnetic cored/flux coupled is relatively standard terminology IIRC. But, let's not get into a discussion about terminology here...

I like them because i would guess that breakdown voltage is higher than with capacitors.

It certainly is, and AFAICT that's the reason they're usually preferred for lower frequency work.

FWIW, in our case I don't think the breakdown voltage is such an issue, as the clock source is unlikely to have a ground potential that differs from Kasli's by a significant amount. Also, we're capacitively coupling RF signals in various other places, so if this is a problem for Kasli then we need a rethink elsewhere and, if it's not an issue elsewhere then there's no point doing something different on Kasli.

As I said, other than it being nice to use the same transformer everywhere, the only real downside I can see of using the magnetic balun on Kasli is that it won't be able to pass nice square waves, which could make the phase noise performance a bit worse. But, that isn't going to be an issue as Kasli isn't ultra low noise anyway.

hartytp commented 6 years ago

And AFAICT this (and not capacitors) is what people use in the industry to provide galvanic isolation.

FWIW, capacitive inside-outside DC blocks are also quite common, particularly for microwave work (where they're the only option).

jordens commented 6 years ago

Oh sure, "flux-coupled". In the datasheet you cite, I can't find the term "flux-cored". I mean flux-coupled when I say "a DC-isolated transformer that is not a transmission line transformer". Yes, we are capacitively coupling in several places on the board, just that we are not doing that with the ground/shield and we are not doing it yet between devices. That would parallel what industrial devices seem to be doing. We won't have a noise problem with flux-coupled transformers on Kasli.

hartytp commented 6 years ago

Right on Kasli this is fine.

For urukul and Sayma it probably wouldn't be, which is why we have the pads for capacitivrly coupled grounds.

a-shafir commented 6 years ago

@hartytp it is a good question about "ground loops" in the labs. I think there is no real way to improve much on RF with coax/BNC in case if the connecting devices are not grounded nearly perfectly. Breaking DC (and some low freq range) loop is good for preventing dangerous currents via PCB. But IMHO need to be careful not to burn the sink resistor when it small or not to burn the following circuit with high voltages in case of some ESD or even DC dropped to the BNC/shield.

For mostly unbalanced i/o design like we have here the best approach is to have metal front panel and all the signals are referring to it so the back plane of the boards is "floating" to avoid currents trough the PCB(s). In case if the signals indeed can be affected by wide range device to device noises and parasitic currents need to switch somehow to balanced. I don't know if it sounds a crazy idea to use SFTP CAT-7A cables or similar approach?

Also for the clocks >10MHz will work 100pF or less capacitor for the signal and ground lines. It can easily stop DC, low freq noises and relatively high voltages as well . So unless we will put high RF on the input it will be safe and also will not affect the RF clock performance.

For the balun IMHO the main question how good the matching of the input (output) coax/BNC with the PCB diff circuit. For the critical nets it shall be simulated layout or tested with the network analyzer IMHO.

dhslichter commented 6 years ago

I think if you want sharp rise times with DC ground isolation and DC center pin isolation, inner/outer DC blocking caps seems like the most sensible way to go. You don't care about frequencies below ~100 MHz, so finding appropriate component sizes should be fine. The "standard"/non-transmission-line baluns usually tend to give up the ghost above ~400 MHz or so, which is why transmission line baluns were selected for this initially.

marmeladapk commented 6 years ago

Rerouting is almost done. Tommorow I'll improve power distribution and I'll run DC simulations.

marmeladapk commented 6 years ago

Simulations done. I must say, that removing back power connector made routing signals and power much easier. Upper 1/3rd of board was taken entirely by planes connecting to power connectors in middle layers.

przechwytywanie Is that note clear enough?

marmeladapk commented 6 years ago

@jordens @hartytp Just to be sure: clock fanout does not need to be length matched now?

marmeladapk commented 6 years ago

I pushed RC version.

I can't remember what's our current stance on generated files, so didn't put PDF and BOM yet (seems that output folder dissapeared from Kasli, was it intentional?).

There's a bug with Altium, it didn't put 3d models for new parts, will solve that later.

Speaking of bugs, behold Altium generating teardrops: przechwytywanie przechwytywanie2

jordens commented 6 years ago

Thanks! The silkscreen markings are good. No length matching needed. I don't know who removed the files. But that's ok. Just tag a RC release and upload the files to the release.

hartytp commented 6 years ago

@marmeladapk Can you post the PDF to a RC release please so we can have a look over it? (Or, you can just attach it to a post here if that's easier).

hartytp commented 6 years ago

@gkasprow @marmeladapk One thing about the releases: please can you upload the PDF files directly to the releases as well/instead of putting them in the zip/7z file (as was done for many of the releases currently posted). It helps to have direct access to the shcematic PDFs without having to download and unzip a larger archive! Thanks.

marmeladapk commented 6 years ago

KASLI.zip

(edit by @jordens): RC files: Kasli/v1.1rc1

marmeladapk commented 6 years ago

@hartytp @jordens But how should we do it in the long run? Adding tags for each commit doesn't seem sustainable. I can upload PDF zip to comment commit.

jordens commented 6 years ago

@marmeladapk excellent. Very clean and tidy! I couldn't find anything I don't like on first glance. Will check more after lunch. Commits and tags are diffferent. You should do commits when you change anything or when you want somebody else to look at the files in source form (using the viewer or the editor). When you want to do a release or release candidate, you'd tag the commit, create a release, and upload the files (not as a zip) to that release. That is much better manageable than PDF zips in comments on issues or comments to commits. We have stable and semantic links to those files. That also makes space usage much more benign. We can delete/archive old releases or the data for releases and it is not a burden.

marmeladapk commented 6 years ago

@jordens Some arcs are still there. ;)

So I can assume that for incremental changes you'll use Altium Viewer?

jordens commented 6 years ago
marmeladapk commented 6 years ago

@jordens

I2C switch reset also (or predominantly) from the FTDI interface

Pyftdi (which, I assume, we want to use) doesn't support GPIO and I2C right now, so it would have to be connected to UART or 4th unused port. Also no point now in connecting the two resets together.

This mode is mutually exclusive with advanced serial MPSSE features, such as I2C, SPI, JTAG, … If you need to use GPIO pins and MPSSE interface on the same port, you need to use the dedicated API. For now, this shared mode is only supported with the SPI API. source

jordens commented 6 years ago

Fast I2C over MPSSE is nice but not critical. It works fine at lower speeds with GPIO. I'd rather like to be able to reset the switches using GPIO. You can always switch to GPIO mode, do the reset, and then switch back to MPSSE mode. But anyway, this is minor. (1) I don't expect to need that anymore now that we have the TVS on there and (2) we can reset over JTAG/FPGA.

marmeladapk commented 6 years ago

On the underside two of the I2C TVS are not populated. I guess that's Altium's fault.

That's a bug, 2V5 LDO and SATA also don't have 3d model.

It would have been nice if the three USER_LEDs had been towards the front panel.

For me that's not a problem, but we would have to change panels. @gkasprow ?

marmeladapk commented 6 years ago

You can always switch to GPIO mode, do the reset, and then switch back to MPSSE mode.

Good point.

jordens commented 6 years ago

Other items from our check list

hartytp commented 6 years ago
hartytp commented 6 years ago

Overall though, looks great!

hartytp commented 6 years ago

In the power budget, are you double counting the power draw from the clock buffers, since this is listed under the 2V5 column and under the 3V3 column?

jordens commented 6 years ago

Ok. I am done reviewing. Let me know what you think about the four items marked (!) above. Great work!

hartytp commented 6 years ago

@marmeladapk Where are the PCB mount clips that hold the heatsink onto the board?

jordens commented 6 years ago

@hartytp IIRC we said there is no space. Needs to be a glued heat sink.

hartytp commented 6 years ago

@jordens you're right, I'd forgotten about that. Thanks for reminding me.

marmeladapk commented 6 years ago

@jordens

I2C_SW1/2_RESET on CDBUS4 increase the pull up resistance on those I2C_SW1/2_RESET pins to 10k

And disconnect it from FPGA or keep it? If we're keeping we should add resistor in series. Connecting RESET to CDBUS4 won't be a problem.

Good work keeping the GTP diff pairs further apart!

I didn't touch them ;) I only removed lines in-between them and routed them where unfiltered P12V0 ran in v1.0.

put the MMCX shield grounding component groups like C43/R29/C44 closer to the center conductor capacitor

ACK.

rotate the (SATA) connector

ACK.

@hartytp

TR1 still needs to be populated and surrounding components changed.

ACK. I didn't see a clear conclusion from your discussion, that's why I didn't change it.

In the power budget, are you double counting the power draw from the clock buffers

No, total power draw is only calculated from 3V3, 2V5, 1V5 and 1V0.

jordens commented 6 years ago

@marmeladapk

jordens commented 6 years ago

For the SATA connector it doesn't matter wither it is 90 degree CCW or 90 degree CW. Both seem to be equally present.

marmeladapk commented 6 years ago

@jordens Rotating clockwise is easier.

I need to add an additional buffer between FTDI and I2C switch for this reset signal.

marmeladapk commented 6 years ago

EMI ground via stitching at the PCB edges?

Not sure if this is necessary because all high-speed signals are routed in the middle of the board (X/Y/Z) (except maybe SATA), however I have no experience with so @gkasprow comment is needed.