Saturday, October 13, 2012

USB RS-485 Adapter Surface Mount Boards

The surface mount PCB version of my RS-485 adapter recently arrived from overseas.  This one is cheaper and cleaner using the 20-pin PIC18F14K50, mostly surface mount parts, and fewer LEDs.  These require more patience to build than the through hole version.

I like the expansion ports on this one.  They are Arduino-esque, with power rails opposite data rails, allowing good stability of possible shield expandability.  Every data pin, including the ones used for RS-485 are drawn out to pads. 

Jumpers are provided to choose whether to connect the RS-485 read enable and drive enable lines from PORTB or PORTC.  This allows for varied resource allocation depending on the other I/O used.  If PORTC is completely free, it can be used as a full 8-bit I/O port.  Otherwise SPI can be used.
 
The first board I built out has the headers, and a Beau Interconnect (now Molex) terminal block socket with detachable screw terminals socket.  The second board built has dedicated screw terminals and no headers for a cleaner look.
 
If you look closely, you can see the green wire work done on the first board due to me stripping a pad of one of the capacitors while trying to replace an incorrect value capacitor.  And I originally built the first one with a 4MHz crystal before reading the datasheet and realizing a 12MHz or 48MHz crystal are the only ones that work for USB with this cpu.  I was able to remove the wrong crystal using two soldering irons, and then replaced it with the 12MHz crystal after another order from Digi-Key.
 
Next step is to load these with the Microchip USB HID bootloader, write up some documentation, and start selling some on eBay.