André's 8-bit Pages  Projects  Code  Resources  Tools  Forum
(by Google)

Commodore Userport USB interface

The userport USB interface provides USB connectivity to the Commodore line of computers - it's designed to work with the PET, VIC20, and C64 (and in extension with the C128).

The USB interface provides the host as well as client USB interface. So you can use USB devices on the PET - see the video below for example - or you can use the PET as device on a PC's USB bus (although not at the same time)!

The userport interface actually not only uses the userport, but also the tape port - as there is no supply voltage on the userport (at least on the PET - on the C64 you could conjure up something from the 9VAC). But also the device needs more control lines than available on the userport, so it takes them from the tape port.

The chip used is a MAX3421 USB interface chip, and the interface board includes some glue logic to connect it to the CBM. The 3421 uses an SPI interface in mode  3 (or, alternatively, 0). Fortunately the VIA uses SPI mode 3 when shifting through its serial shift register. There is only one shift register, though, so shifting out is taken care of by the VIA shift register, the data shifted in (at the same time as data is shifted out) is de-serialized by a simple external 74LS164 shift register and presented as 8  bit parallel data on the userport's I/O port.

  •  
    2013-10-13 Started this page
 

Table of content

USB65

This driver is a collection of drivers for this and some other platforms. You can find it on github

Please note that since board version 1.1, if you want to use the switchable USB supply voltage, some care has to be taken with the interrupt routine. The PET ROM for example handles the tape MOTOR output - which controls the power supply - in the interrupt routine. If you don't work around this, the power will stay off...

Version: 1.1A

Status: untested

Notes

 
This version adds a separate - jumperable - way to produce the 5V required by the USB host bus. It uses the tape output of unregulated 9V DC and uses a power requlator separate from the 5V used for the actual USB interface. This way you can switch USB power, and don't have any bad effects of USB power consumption on the actual interface or the main computer itself.
 
This version also moves the mini-USB interface to the side, as the assumption goes this will be less used than the USB micro. Some parts options have been removed due to space optimization.
 
This schematics and board is only derived from some experiments with board version 1.0, and thus untested as a real board.

Version: 1.0A

Status: ok

Notes

 
This is the initial version of the board. And it worked right without further changes! :-)
 
Although this board has soldering jumpers to work with different types of machines from PET over VIC20 to C64, it has so far only been tested with the PET.

Last modified: 2013-10-13.

Return to Homepage

follow

Follow my 8-bit tweets on Mastodon (In new window) or Bluesky

discuss

Discuss my site on this 6502.org forum thread

(Forum registration required to post)

hot!

Dive into the retro feeling and build yourself a Micro-PET or a Multi-board Commodore 4032 replica

Need more speed? Speed up your 6502 computer with this 10 MHz 6502 CPU accelerator board

Interested in electronics design? Look at the design lesson I got from Bil Herd, the hardware designer of the C128

Want 64bit? - pimp the 6502 with the 65k processor design!