How to upgrade the firmware on Microchip’s CAN BUS Analyzer Tool

The CAN BUS Analyzer Tool from Microchip is a CAN bus monitor that supports CAN 2.0b and ISO11898-2. It’s available from Digi-Key for a little over $100.00.

I’ve just started looking into it, but from what I can tell the device uses two PIC microcontrollers:

The PIC18F2680 is the CAN controller and talks to an 8-pin CAN transceiver (MCP2551) over what looks like serial TTL. The two MCUs talk to each other over SPI. I’m guessing the PIC18F2680 is configured as the SPI master and the PIC18F2550 is the SPI slave. The PIC18F2550 has a full speed USB 2.0 interface (12 Mbit/s??), which is how the CAN bus analyzer communicates with a PC.

One thing I like about this device is that it has a SocketCAN driver. From the list of known issues, someone found a bug in V2.3 of the official Microchip firmware. In V2.3 there is a synchronization issue between SPI Master and SPI Slave that causes CAN frames to be dropped. Since I’m planning to use this device for a while, I decided to upgrade to rkollataj’s firmware. The purpose of this page is to document how I installed the firmware.

Programming headers

From the schematic on page 13 of the user guide, there is one programming header per MCU. J1 is for programming the PIC18F2550 (U1) and J2 is for programming the PIC18F2680 (U2).

When programming the PIC18F2680, the board can be powered by the Mini USB cable or by an external 9-24 V power supply. When programming the PIC18F2550, the external power supply must be used.

Items used

Checking firmware version in CAN BUS Analyzer software

  1. Connect CAN BUS Analyzer Tool to USB port on PC
  2. Open CAN BUS Analyzer software
  3. Go to Help > About…
  4. The firmware versions are listed under “Firmware Information”

Program the PIC18F2680

  • Open MPLAB X IPE
  • Connect PICkit3 to USB port on PC
  • Connect external 9-24 V power supply
  • Verify “PICkit3 S.No: xyz” is shown in the “Tool” drop down
  • Connect PICkit3 to J2 programming header
  • In the “Device” drop down, select “PIC18F2680”
  • Click “Apply” and then click “Connect” to activate the session
  • To load the HEX file, click “Browse”
  • Select the file “PIC18F2680_Full_v255_3.hex”
  • Click “Program” to program the microcontroller.

On using the PICkit2 – 11/3/2018

If you are using the PICkit2 to program the 2680 and not the PICkit3, a reader provided this helpful tip:

I just thought I would share a bit of information about programming with a PICKIT2 (not 3 as in your guide). For the PICKIT2 to auto-detect the 18F2680, the button under the “J2” programming header needs to be held whilst the device type “18F” is selected, the device with then be found 🙂

Program the Program the PIC18F2550

  • Open MPLAB X IPE
  • Connect PICkit3 to USB port on PC
  • Connect external 9-24 V power supply
  • Verify “PICkit3 S.No: xyz” is shown in the “Tool” drop down
  • Connect PICkit3 to J1 programming header
  • In the “Device” drop down, select “PIC18F2550”
  • Click “Apply” and then click “Connect” to activate the session
  • To load the HEX file, click “Browse”
  • Select the file “PIC18F2550_Full_v255_0.hex”
  • Click “Program” to program the microcontroller.

Check firmware versions again

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *