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

PCB PMOD Request: USB2.0 PHY (usbIO) #43

Open
chili-chips-ba opened this issue Nov 3, 2024 · 10 comments
Open

PCB PMOD Request: USB2.0 PHY (usbIO) #43

chili-chips-ba opened this issue Nov 3, 2024 · 10 comments
Assignees
Labels
Assembled Board is assembled PCB request Proposal for new PCB designs

Comments

@chili-chips-ba
Copy link
Owner

USB2.0 is affordable and ubiquitous, with peripherals ranging from HIDs to webcams, and more. However, FPGAs typically don't have a good way of direct interfacing to USB (with a notable exception of Gowin LittleBee lineup). This proposal is to bridge that gap.

We have not seen a similar PMOD on the market. The reason is that it is hard to transfer 480Mbps over a PMOD. Should we manage to do it, we would directly play into the market segment occupied by SPI Camera modules like these:

Our PMOD could be based on one of the following technologies:

Granted, there are chips that convert USB to SPI, but they are limited to 12Mbps (aka "Full Speed), thus not suitable for cameras.

@chili-chips-ba
Copy link
Owner Author

chili-chips-ba commented Nov 5, 2024

... @goran-mahovlic pointed to a few additional, very interesting references to USB PHY examples for FPGA:

They need only an external connector with a resistor or two, such as shown by @WangXuan95, or found on the ULX3S:

image

image

@chili-chips-ba chili-chips-ba added help wanted Extra attention is needed PCB request Proposal for new PCB designs and removed help wanted Extra attention is needed labels Nov 6, 2024
@chili-chips-ba chili-chips-ba changed the title PCB PMOD Request: USB2.0 PHY PCB PMOD Request: USB2.0 PHY (usbIO) Nov 20, 2024
@goran-mahovlic
Copy link
Collaborator

Could you please check if pins on this connectors are differential.

They are not routed as diff are but I think USB will still work if they can be used as diff pair...

image

@chili-chips-ba
Copy link
Owner Author

@TarikHamedovic , @TsvetanUsunov any insights into this question?

@goran-mahovlic
Copy link
Collaborator

Here is initial version - let me know if you see something that could be better

Screenshot from 2024-11-25 12-43-42

Screenshot from 2024-11-25 12-43-04

@chili-chips-ba
Copy link
Owner Author

Two USB connectors is a welcome expansion!
@pu-cc , @DadoCCAG, @D4VF0 any comments from your side?

@goran-mahovlic
Copy link
Collaborator

I have checked differential pairs and they are connected right on Olimex board, so we can use them as pairs!
But I have switched P and N on the connector side.

image

I do still did not find if A1 has dedicated clock input pins or any pin can do true diff input, for example on ECP5 you can only use fast clock input on dedicated clock input pins?

As I have created experimental DVI-OUT/DVI-IN board it would be great to find that info....

@pu-cc
Copy link
Collaborator

pu-cc commented Dec 5, 2024

I do still did not find if A1 has dedicated clock input pins or any pin can do true diff input,

Dedicated clock input pins are:

  • IO_SB_A8: CLK0
  • IO_SB_A7: CLK1
  • IO_SB_A6: CLK2
  • IO_SB_A5: CLK3

You can use them all as differential inputs.

It is also possible to use any GPIO as a clock input. The only thing to note here is that the signal must be routed via the routing structure to the entry point of the global clock mesh. These paths are longer than via the dedicated clock pins, which is why it is essential to pay attention to clock skew.

@goran-mahovlic
Copy link
Collaborator

goran-mahovlic commented Dec 5, 2024

Perfect! Thanks @pu-cc

It is not perfect in this case as I only have NA and NB banks, but we can try with those. With opensource tool chain on ECP5 it is also possible to use any pin as CLK source but lattice tool only allows true clock pins to be used. It is also because of the reason you have mentioned.

@goran-mahovlic
Copy link
Collaborator

dvi

@chili-chips-ba
Copy link
Owner Author

Please, also post link to the schematic, that we have it all in one place.

@goran-mahovlic goran-mahovlic added the Assembled Board is assembled label Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Assembled Board is assembled PCB request Proposal for new PCB designs
Projects
None yet
Development

No branches or pull requests

3 participants