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 enter.TinyFPGA-CDC.zip (46.5 KB)