Joris full speed USB CDC (ACM), full speed pullup resistor


I rarely get time to do this sort of thing these days…

I finally got Joris’ USB ACM-CDC design running on the TinyFPGA B2. It turns out it was ‘working’ all along, I was misunderstanding what it was doing. I had to break out the logic analyser to find that out.

One thing I might suggest, when doing the next board revision of the TinyFPGA B2… You really want the 1.5k pullup on D+ to be driven by an FPGA pin (there are lots of them). That way, an FPGA design can disconnect from the USB bus cleanly, and designs that don’t have a USB Function don’t trigger a Host trying to enumerate it.

The Joris CDC-ACM (USB Serial) design is attached. It is set up to echo text typed in to a terminal emulator, backwards when you hit (46.5 KB)


That is awesome! I completely agree about the controllable pull-up resistor. I have two batches of prototype boards that both have USB on them and I added the controllable pull-up on both of them.

I’ll have to take a look at the source code later. Thanks for sharing!


I tried this on the TinyFPGA BX with no luck. I changed the pins as appropriate. Any immediate guesses as to why it wouldn’t just work? Unfortunately, I haven’t paid any attention to VHDL.