Giter Site home page Giter Site logo

glasgowembedded / glasgow Goto Github PK

View Code? Open in Web Editor NEW
1.9K 1.9K 155.0 44.19 MB

Scots Army Knife for electronics

License: BSD Zero Clause License

Python 94.17% Makefile 0.07% C 4.15% XSLT 0.32% HTML 1.19% Shell 0.10%
debugging-tool fpga hardware usb

glasgow's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

glasgow's Issues

Use an FX2LP in a BGA package?

We can save a dollar if we go for 56-ball 0.5 mm pitch VFBGA package. We only need to route out two rows of balls at most, so it seems fine that it's 0.5 mm pitch. Should we?

Make SYNC pullup smaller

The FPGA has ridiculously powerful drivers (what, 10 mA?) so if we use a pullup smaller than 1k we can go well into MHz range. Useful, because the PLL has a minimum frequency of 16 MHz--can we get that high?

IC footprints

  • Cypress CY7C68013A-56LTXC QFN-56 (#15) (footprint merged in ~2 months, 3D package merged in ~2 months)
  • ON Semi CAT24C256WI-GT3 SOIC-8 (#16) (symbol merged in 30 minutes)
  • ON Semi CAT24M01WI-GT3 SOIC-8 (#7) (symbol merged in 3 days)
  • Lattice ICE40UP5K-SG48ITR QFN-48 (#8) (symbol merged in ~3 months)
  • TI TPS73101DBVR SOT-23-5 (#9) (symbol merged in 1 day)
  • TI DAC081C081CIMK TSOT-6 (#10) (symbol merged in 13 days)
  • TI ADC081C021CIMM MSOP-8 (#11) (symbol merged in 3 days)
  • ON Semi FXMA108BQX QFN-20 (#12) (footprint merged in 4 days, symbol merged in 13 days, 3D package merged in 14 days)
  • Micrel MIC5355-S4YMME MSOP-8 (#13) (footprint merged in 21 days, symbol merged in 23 days)
  • TI LM3880MFX-1AF SOT-23-5 (#14) (symbol merged in 3 hours)
  • Lattice iCE40HX8K-BG121 121-ball caBGA (#28) (footprint merged in ~1.5 months, symbol merged in ~2.5 months)
  • TI SN74LVC1T45 (#52) (footprint merged in 12 days, symbol merged in 12 days, 3D package merged in 28 days)
  • TI TPD3S0x4 (#60) (symbol merged in 27 days)
  • Microchip ATECC508A (#84)
  • TI TCA9517 (#85)
  • TI PCA6408 (#105)
  • ON Semi MG2040 (#121)
  • TI TLV733/TLV755 (#134)

Add an USR LED connected to FPGA

Since we now have a lot of I/O in the FPGA we can afford this. It should be white. This means moving D1-D5 upwards and shifting R3/C13 a bit.

Slew rate limiting resistors

Two arrays of four resistors per port. I'm not sure yet what the values should be; worst case, we can always populate with 0R and decide later.

Implement USB benchmarks

At least:

  • "Source": device emits an endless stream of data via one or two FIFOs, host validates (simulates a logic analyzer subtarget)
  • "Sink": host emits an endless stream of data via one or two FIFOs, device validates (simulates an I2S protocol subtarget)
  • "Loopback": host emits an endless stream of data via one or two FIFOs, device puts it all back into the other end of the pipe, host validates (simulates an SPI protocol subtarget)

Test/loopback PCB

When (at this point, apparently not "if") we do a production run we'll need to do QA, and for that we should use a simple board that plugs into both ports and connects them to each other. It should also have LEDs (buffered to Vioa, since the level shifters cannot drive a LED directly) for visual verification.

TI TPS73101DBVR SOT-23-5

KiCAD has a closely related TPS763xx series, the TPS731 series probably just needs to be a few aliases.

Implement SPI subtarget

This should demonstrate:

  • how to do bidirectional communication in a subtarget
  • how to implement an interactive subtarget

Disable ~OEQ while flashing FPGA or in alert?

It looks like resetting the FPGA intrinsically tristates all pins (verify!), and it's not clear that tristating every port (~OEQ is routed to all buffers) on alert in any port is the right thing to do.

FX2_MEM EEPROM is absurdly slow

We should maybe use a faster one if it's not much more expensive, this is pretty annoying.
This also likely applies to ICE_MEM EEPROM.

Cache bitstreams

Synthesis and PAR are slow, rerunning them on every invocation is wasteful, and explicit --no-build is awful.

Needs extra care so that it works on:

  • Linux
  • macOS
  • Windows

Make status registers possible

Right now all registers are storage registers (i.e. writable by host only), which makes the whole thing kind of useless.

Add IFCLK test point

I'm observing some strange issues related to post-bitstream-upload reset and CDONE is currently not easily accessible at all.

Migrate to iCE40HX8K-BG121

BG121 is a new 0.8 mm pitch package. Mouser only has it via drop shipment MOQ 260, Digikey has MOQ 1. Investigate if CT256 is a better option after all.

Y1 footprint is way too big

Not actually an issue for the component selected, since it still solders nicely, but this is not what I was expecting at all.

Move R12-R16 to top side

It's a pain in the ass to do double-sided assembly, that's what it is. No need to make it worse.

Implement a self-test routine checking for solder bridges

This is essentially #26-lite; a proper loopback PCB would allow to test input/output on every single pin, but you need to have it. On the other hand, all our I/O are adjacent on both FPGA and FXMA, and being able to quickly eliminate any possible shorts is enormously valuable.

This should run the check twice, once with ~OEQ high and once low, to check for shorts on either side of FXMA.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.