Time wasted with Microchip USB chip and Mac OS

January 23, 2009

This is here only so search engines can find it and other people can avoid this mistake.I bought a PIC ICD2-Pocket from SparkFun, intending to program it from my MacBook.

Long story short, there appears to be no Mac OS drivers for the USB chip. I can find lots of advice online that tells me about PC drivers, but I have a Mac, so that is not useful.

This guy seemed to be making a stab at it (in particular, his vendor ID matches), but his page is two years stale.

Here’s drivers for handheld devices, but those seem slightly non-serial (IP?)

This looks better yet. Allegedly a serial driver, for a variety of devices. Perhaps it will suffice to edit the kext properties.

I’ll update this if I succeed. If YOU succeed (with a Mac, not a PC), please let me know in the comments. Otherwise, this is a dead end.

This also suggests that communication with between the USB on a PIC18F2550/4550 will not work so well. That seems implausible, but lack of a driver, is lack of a driver.

Update: libusb (from MacPorts, for example) can see devices without kext drivers. I bought a Pickit2; that seems to be the better choice, and both Pk2cmd and piklab can see it (note that piklab from MacPorts does not build out of the box because it depends on arts, which is broken). I have not yet successfully programmed the PIC, but I have not yet given it a serious try with the new programmer.

Update 2: The new version of Piklab at MacPorts recognizes the Pickit, but is surprised by the firmware version. Pk2cmd seems to work, once the firmware upgrade is applied to the Pickit. To do that, you must install pk2cmd, and then type “pk2cmd -DPK2V023200.hex” to download the new firmware.

MacPorts has support for sdcc — no, not really, things fail later. Better to follow these instructions instead, which first require installation of gputils.

Gputils you can download from sourceforge. Be sure to choose a directory that has no spaces in its path name. Then configure: “./configure –prefix=/opt/local”, and “make”, and “make install”. This installs it into the MacPorts /opt/local area, which might be a mistake, but that’s a problem for another day. It seems to build and install ok.

Using the instructions above (which seem a little dated, I sent email to the author, but no reply yet) I got a good deal further and installed sdcc, but assembly of part of the test program failed. It could be for some stupid reason, but I ran out of steam. Mail to author:

Your instructions are more helpful than anything else I have come across, but they seem to be getting maybe a little dated, and there's at least one step missing.


3.5. Compiling/Installing the Remaining Device-specific PIC Libraries

this part doesn't match what is there any more; perhaps it is not necessary, I cannot tell for sure.


How to get crt018.o ?

"Obviously", do this, but then it fails:

gpasm -c crt018.asm
crt018.asm:5:Warning [205] Found directive in column 1.
crt018.asm:5:Error [176] incorrect syntax. use `CONFIG KEY = VALUE'
crt018.asm:6:Error [152] Executable code and data must be defined in an appropriate section.

(Source code follows  -- perhaps there was a mistake in the cut/paste, or the html?)
   processor  18F2550
   radix  DEC
   include "p18f2550.inc"

config CODE
   DATA 3F32H

   DATA 1234H


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: