Whichever pins you transmit on need to have resistors after them. The exact values will depend on the internal resistance of the pins; usually something around 27 ohms will be ok.
You also need to pull the D+ line up to 3.3V via a 1.5k resistor. You can pull it directly, or via a pin on your FPGA, if you want to dynamically attach/detach to the bus.
The USB spec will tell you.What about D- line ?
Code Verilog - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 module usb( input rst_n, input clk_48, input rx_j, input rx_se0, output tx_en, output tx_j, output tx_se0, input[6:0] usb_address, output usb_rst, output reg transaction_active, output reg[3:0] endpoint, output reg direction_in, output reg setup, input data_toggle, input[1:0] handshake, output reg[7:0] data_out, input[7:0] data_in, input data_in_valid, output reg data_strobe, output reg success );
USB FS requirement of 28 - 44 ohm driver impedance
Pull-up and -down resistors need to be implemented discretely in case of doubt, but can be switched by tri-state outputs.
Since D+ and D- are bi-directional, do we need 15 kilo-ohm pull-down resistors for both D+ and D- line at FPGA pins ??
15kOhms pulldown are only at the HOST or HUB side.
But I assume (did you write it somewhere?) you want to design an USB_DEVICE.
Is this correct?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?