tinyvision-ai-inc / UPduino-v3.0

UPduino 3.0: new 4 layer layout, various other improvements
MIT License
323 stars 39 forks source link

Task list for UPduino 3.0 #1

Open vr2045 opened 4 years ago

vr2045 commented 4 years ago

Board layout:

vr2045 commented 4 years ago

All the above feedback has been incorporated except for the silkscreen changes & the RISCV port.

classic-gentleman commented 4 years ago

All the above feedback has been incorporated except for the silkscreen changes & the RISCV port.

Really exciting development! I'm wondering though if the remaining two are to be addressed eventually; I understand you're probably testing the modifications with the customer that reported the PLL going out of phase first and foremost, but are the RISC-V and silkscreen changes planned for the 'release' version?

classic-gentleman commented 4 years ago

Also: when should we expect to see some bitstreams?

And: Not sure if I followed correctly (didn't look up the gerbers but only the PDF printout) but are both the FTDI and the iCE40 connected to the flash with QSPI? I can't find FLASH_M[O/I]S[I/O] routing to the FPGA, only to the FTDI. Conversely, not seeing IOB_18A/IOB_25B_G3 routing to FTDI, only to the FPGA. I am however noticing a bus switch, but it seems to just route whether CRAM or Flash is the target.

Please: What am I missing?

vr2045 commented 4 years ago

Thank you @classic-gentleman!!! I think you found a rather major bug in the schematic in the MISO/MOSI lines. Would have cost me not only $$$ but debug/re-build time etc. Will fix this and also the silkscreen while I'm at it... I have updated the PDF schematic in GitHub with the modification. I'd like to send you a couple of the built boards as a bug bounty. If you dont mind, please send me your mailing address to sales at tinyvision dot ai.

Appreciate more sets of eyes on this! Power of open source!

classic-gentleman commented 4 years ago

This is very kind of you!

I'm contacting you through c(...)@a(...)a.com, just so you know it's me.

When I mentioned "bitstreams" I refer to some demonstrations and exploration of the new features such as qSPI and extra PWM, indeed. I find it enticing to have a collection of "hello-word-ish" streams, especially for those wetting their feet in Verilog. Going from simple blinkenlights to a full-blown CPU core is beyond encouraging!

(I'm really fond of the LED matrix in this project: https://dadamachines.com/product/doppler/; in fact I'd love to explore switching the FTDI for an inexpensive STM32F103 "Bluepill", linking their GPIOs while still routing them to the protoboarding pins. Could give us the best of all worlds if done right; but that probably requires a fifth layer not to mess up everything, though.)

As far as eyes go, count on my pair. When the new project files are published I'll make sure to study them thoroughly.

vr2045 commented 4 years ago

Fixed silkscreen with missing symbols and also the bug identified by @classic-gentleman . Thank you! Files updated and gerbers on Git now.

vr2045 commented 4 years ago

Yes, I totally agree: the blinking LED gets old pretty fast. qSPI will be exercised by the processor. The external PWM pins could be used to drive a servo perhaps so its not just an old LED? Will have to think about this some more. At some point, I want to switch to Migen and the LiteX project, too many late night projects :)

I dont like the FTDI: its expensive and has only a single function. I'd rather replace it with an STM part like you suggest for not just programming but to build a more complete system with the processor+FPGA working together. This topic has been brought up in this request...

RossBencina commented 4 years ago

I'm just reviewing the schematic (UPduino.pdf). If I understand correctly, you've changed the behavior of the IO Bank power jumpers. As with Upduino 2.0, there are separate jumpers for VCCIO_0 and VCCIO_2. But unlike the 2.0, the options are either (1) onboard 3.3V or (2) a user supplied voltage supplied on a new edge terminal VIO_BANK_0_2.

This change suits me just fine, since I'm providing an off-board 1.8V reference, but it does appear to create a regression for 2.0 users who want to take 1.2V from the onboard regulator, since the schematic shows no user source for 1.2V. It would be nice to at least provide a solder pad exposing 1.2V for greenwire mods.

vr2045 commented 4 years ago

Thanks for reviewing! Are you trying to make sure that the 1.2V IO voltage is supported? I changed the IO voltage for the pads intentionally away from 1.2V and this could cause an issue for users. However, as pointed out by a user on the UPduino Discord channel, the IO pads of the iCE40 are not specified for operation at 1.2V so the UPduino 2.0 with the 1.2V jumper on the IO was not correct. Also, 1.2V isnt a common IO voltage yet for most devices so not very useful even if it were within spec.

If you want the user to have access to the onboard 1.2V, this is exposed as a test point on the bottom of the board for mfg test and can also be repurposed by the user.

I hope this addresses your questions?

RossBencina commented 4 years ago

Yes, that addresses my questions, thank you. I did not realise that 1.2V was not a supported IO voltage,

ghost commented 4 years ago

Nice to see a new version of the board actually has been made :) Other thing have been taking my time (FPGA's cost a lot of time! :) ). Put my email in on the waitlist to get one ordered regardless, I like to put in my tiny bit of support :) Wish I could say I'll be able to do something with it, but have to find the time.. XD Maybe I can at least update https://github.com/cranphin/updosoc with a better tutorial for it (and update it to the latest upstream). Hackaday has done articles on the old upduino, think they might be interested in the new version? With a good risc tutorial it might have their interest, would be nice to get more people interested :)