Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r3 todo #1

Open
35 of 40 tasks
rroohhh opened this issue May 1, 2020 · 0 comments
Open
35 of 40 tasks

r3 todo #1

rroohhh opened this issue May 1, 2020 · 0 comments

Comments

@rroohhh
Copy link
Member

rroohhh commented May 1, 2020

  • try to reduce bom size and find appropriate packages for each part (guided by jlc)

  • add testpoints for all the stuff

  • figure out if we want to rely on internal termination, or add external one (id vote for external for the important stuff; we can still decide to not populate it)

  • connect all the i2c stuff, add their addresses to the schematic, add the pullups, AN262_2 has some guidance on the pullup values
    Using 2k for the pullups should work over the whole voltage and capacitance range for normal mode and below 175pF for fast mode.

    • figure out which pins we want to use for the mux, I think BANK 8 should be better, because Vih = 0.7 VDD = 1.75V for the mux, which could be a bit close if the sensor gpio bank is at 1.8V
      yes we will use BANK 8
    • figure out if / what we want to use the last channel for (-> sensor pcb?, but that one already has two...)
  • connect the ecp oscillator

    • figure out if enable is active high or low (or open????) (or keep the two resistor footprints)
    • decide if it should go to the RAM bank (or BANK 0), or BANK 8
      probably BANK 0, BANK 0 is a top/bottom bank, which means it has 3V3
      ⇒ it goes to BANK0
      inputs powered by VCCAUX, which should work independently of VCCIO0. BANK 8 would also be fine, but we have no pins left on it.
  • connect the current / voltage sense ic's

    • figure out which resistors we want to use
      probably 0805W8F100MT5E or CS05W8F100MT5E
    • figure out if we want to measure the ldo's
      doesn't seem worth it
    • figure out how to use the last channel (maybe monitor 5V for the z-turn lite?)
      just add one more and monitor all the 5V things :)
  • add moar leds!!!

    • leds connected to ecp
      • find leds with Vf > 2.1, for the RAM bank (lol)
        possible choices: (all basic parts)
        0603 C2290 white 2.7 - 3V
        0805 C2297 green 2.7 - 3V
        0805 C2293 blue 2.9 - 3V
        0603 C72041 blue 2.5 - 3.1V
    • do we want leds connected to all the power rails? (noo; annoying)
  • figure out switcher frequency
    I think 500kHz should be fine, thats what the reference board is using.
    (This means ~300kΩ resistor)

    • consider making the switching frequency greater for more flexibility, as the buck converter has internal dividers
  • add external programming headers

    • what kind of headers, 100mil? which pinout order
    • switchers (100 mil pinout doesnt matter)
    • ecp jtag (100 mil standart jtag pinout?)
    • spi flash (not too important)
  • should we have a button to reset the ecp (yes)?

  • reconsider pullup resistors
    how big do they actually need to be? with 10k we get for 3V3 330μA... (i would chose higher values; 2k2 or 2k7?)
    10k seems fine for now. Can always swap the out after the fact.

  • can we get away with the jtag level shifter and just doing open drain io + external pullup on the zynq side? (i dont think that a level shifter would be to bad there. this would likely be slower (dependent on the pullup value).
    Ok lets use a level shifter.

  • do we want to use resistor networks for the ddr termination resistors?
    maybe 4D02WGJ0510TCE? (jaro: seems smart if these are jlcpcb basic)
    doesn't seem worth it, if they are not available on jlcpcb basic

  • do we want some random buttons or so for the left over pins? (possible but i dont think that this is to helpful)
    -> no

  • figure out if we want bulk decoupling for the sensor board on the mainboard (O(100uF))
    yeah why not, lets to 4x100uF maybe?

  • figure out if we want to connect RAM_S3 and RAM_S5
    doesn't hurt to connect them

  • figure out what PWRGD on the plugin modules means
    correct, we didn't agree on whether it should be a power good or reset or both or something else :)

  • should the ecp be able to reset itself?
    I would say yes. However it is unclear if it actually works, lets add a 0Ω series resistor.

  • figure out usb series termination situation
    usb is 90Ω, unclear what we need from the ecp side, i would say lets put a footprint there and populate whatever we need (by testing it out experimentally).

  • figure out the usb pullup situation
    1k5 on D+ to 3V3 for high-speed (then a "special chirp sequence")

  • decide if we need a i2c gpio expander (we probably do atleast for the usb pullups)

    • what should go to the gpio expander, all the power supply enables, or ignore them, as we can set them via i2c
      I don't think a i2c gpio expander is worth it, the power supply enables are fine on high for the fixed supplies and low on the ones we can set via i2c.
  • figure out how to connect the 2 VBUS together
    resolution: use FPF1048

  • figure out switcher soft start capacitor
    10nF / 5uA * 0.8V = 1.6ms which should be fine? (ecp has 10V/ms max)
    also the soft start rate is programmable

  • figure out if we want to connect the i2c mux reset
    Connected to BANK 7, the reset is active low, so pulling it low should always be possible. If the voltage on the reset is higher than VCC (2V5) current flows from the reset pin to VCC. To avoid this, put the fpga pin in Hi-Z if we are not resetting the device.

@rroohhh rroohhh pinned this issue May 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant