chipKIT® Development Platform

Inspired by Arduino™

PIC32MX250F128B preprogrammed with the chipKIT USB Bootload

Created Fri, 31 May 2013 09:10:20 +0000 by caroper


caroper

Fri, 31 May 2013 09:10:20 +0000

Now that this Part is Officially Released.

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,1174&Prod=CHIPKIT-DP32 http://chipkit.net/products/?slug=product_info.php&products_id=55

I already have a stock of PIC32MX250F128B MCU's and have been attempting to get a bootloader on to them, the main consideration being how to allocate the PPS Pins. It is pointless me continuing now that it has been done officially, I may as well fall in line with what will become the defacto Standard, so is the Bootloader available anywhere to download?.

EDIT: The bootloader is contained in this file: http://www.digilentinc.com/Data/Products/CHIPKIT-DP32/DP32_variant.zip

I can't find any references to it other than the preprogrammed parts and the chipKIT DP32 Prototyping Platform linked above.

Cheers Chris


majenko

Fri, 31 May 2013 09:26:01 +0000

The latest version of the bootloader is always available on EmbeddedMan's github:

[url]https://github.com/EmbeddedMan/PIC32-avrdude-bootloader/tree/master/bootloaders[/url]

Pre-compiled for most common boards, or you can roll your own easily enough.


caroper

Fri, 31 May 2013 09:34:13 +0000

Thanks Majenko,

I am aware of the Github repository, in fact that is where I got the bootloader code that I have been modifying, but I see nothing in there that is specifically for the chipKIT DP32 Prototyping Platform.

In the in the chipKITâ„¢ DP32â„¢ Reference Manual available here: http://www.digilentinc.com/Data/Products/CHIPKIT-DP32/chipKIT%20DP32_rm.pdf

It says "The bootloader image can be downloaded from the DP32 product page on the Digilent website." but I can find no link to it on the Digilent site or the Github, hence asking here.


majenko

Fri, 31 May 2013 09:44:01 +0000

Ah, sorry, didn't see the DP2 bit - you didn't explicitly mention it.

The whole point of the PPS system is that the pins can be changed at any time - they're not set in stone by the bootloader.

All you really need to implement in the bootloader is "defaults" and the UART pins you're going to use for uploading the code. Those you can get from the specs of the DP2, and find the MX2 bootloader setting that most closely resembles it (it may exist as a different name in the github repo), and use or modify that to your own ends.


caroper

Fri, 31 May 2013 10:06:42 +0000

There appear to be more differences than that in the DP32 release.

It is a USB rather than UART based Bootloader. It boots by default into the user sketch and requires a line be held low during reset to enter programming mode. Certain Pins have been allocated to certain Chipkit Pin Numbers and are predefined with PPS in the Bootloader, we may as well use the same mapping.

So reengineering it from the documentation, whilst feasible, may be pointless if Digilent have stated that the Bootloader is available for download.

Cheers Chris


caroper

Fri, 31 May 2013 10:30:29 +0000

SOLVED :)

The Bootloader is contained in this zip file:

http://www.digilentinc.com/Data/Products/CHIPKIT-DP32/DP32_variant.zip

I initially overlooked it as the file description reads:

"This zip file contains the necessary files and instructions to add support for the chipKIT DP32 board into an existing distribution of the MPIDE that doesn't otherwise provide support for the board."

I hope that is of use to others,

Cheers Chris


blackstealth

Wed, 17 Jul 2013 18:59:10 +0000

I'm also trying to install the same bootloader posted on here onto PIC32MX250F128B, but I get an error during verification using PICKit3.

Attached is screenshot. Any suggestions? Thanks in advance.


caroper

Fri, 19 Jul 2013 07:36:38 +0000

Hi,

I compiled and tested it with MPLAB 8.91. I don't use MPLAB X but one of the reasons I gave up on it was seeing issues suach as you are.

I seam to recall from the Microchip Forum that it has actually worked and the verify message is wrong, but don't hold me to that.

You could just try it on a breadboard and see if it runs, failing that I suggest you use MPLAB 8.x to Burn it.

Others with MPLAB X knowledge may be able to help us both out.

Cheers Chris


majenko

Fri, 19 Jul 2013 08:37:26 +0000

Or use a pickit2 and the pic32prog command line utility. I use it all the time on linux (it's available for linux, windows and mac) for programming all my bootloaders (usually MCPHID) with no problems whatsoever.


caroper

Fri, 19 Jul 2013 09:02:16 +0000

Or use a pickit2 and the pic32prog command line utility. I use it all the time on linux (it's available for linux, windows and mac) for programming all my bootloaders (usually MCPHID) with no problems whatsoever.

I don't think the PICKit 2 supports the PIC32MX1/2 family, it supports a few of the MX3x and up but, to the best of my knowledge, not the newer devices.

I would be happy to be proven wrong though.

Cheers Chris

Just realised that pic32prog is not a Microchip Product, I though you meant the Official Command line scripting tool.

Thanks for the Heads up, I am downloading it now.

Here is the Project Link for other who may be interested https://code.google.com/p/pic32prog/


majenko

Fri, 19 Jul 2013 09:06:43 +0000

The pickit2 is a dumb device. The pk2cmd and pickit2 programming software from Microchip don't support many (if any) pic32 devices.

The pic32prog command, however, specifically makes the pickit2 work with pic32 chips.

I don't think I've used it on an MX1/2 yet, but I use it all the time on the MX7 chips, which the pickit2 "doesn't support".

Just make sure your pickit2 does 3.3v - mine is a cheap clone that is 5V only, so I modified it with a 1117-3.3 to make it 3.3v :)


caroper

Fri, 19 Jul 2013 09:23:45 +0000

I don't see where to download it from.

I found a reference to Non Members under Source, but no download links for any executables.

Has anyone got a pre-built copy for WIN7?

Even if I could find the source, I don't have any compilers install for building windows apps.

Cheers Chris


majenko

Fri, 19 Jul 2013 09:33:29 +0000

Hmmm... There used to be a download link on the left of the GC site.

Try [url]http://pic32prog.googlecode.com/svn/trunk/pic32prog.exe[/url]

Better still, check out the source tree with SVN - it's precompiled in there.


caroper

Fri, 19 Jul 2013 09:45:52 +0000

Thanks,

I found the Download, but I can't get it to recognise my PICKit2, I have it connected and have the Circuit is powerd. The PICKit app sees it fine but of course, won't recognise the Device (PIC32M250 in this case).

But if i open a CMD console all I get is..

C:\Program Files (x86)\Microchip\PICkit 2 v2>pic32prog Programmer for Microchip PIC32 microcontrollers, Version 1.58M Copyright: (C) 2011-2012 Serge Vakulenko Adapter: PICkit2 Version 2.32.0 No device attached. No target found.

Is there anything else I should have running or any other files needed beyond pic32prog.exe ?

Cheers Chris


majenko

Fri, 19 Jul 2013 09:52:32 +0000

Nope, it should just work.

The MX250 is supported by the software:

target.c:    {0x4D00053, "MX250F128B", 128,  3, 1},

caroper

Fri, 19 Jul 2013 10:08:38 +0000

Nope, it should just work. The MX250 is supported by the software:

target.c:    {0x4D00053, "MX250F128B", 128,  3, 1},

Looks like the problem may be my end. I can't get MPLAB to detect it via the PICKit 3 either. I will check my wiring and revert.

Cheers Chris


caroper

Fri, 19 Jul 2013 10:21:05 +0000

OK It works :)

C:\Program Files (x86)\Microchip\PICkit 2 v2>pic32prog
Programmer for Microchip PIC32 microcontrollers, Version 1.
    Copyright: (C) 2011-2012 Serge Vakulenko
      Adapter: PICkit2 Version 2.32.0
    Processor: MX250F128B (id 14D00053)
 Flash memory: 128 kbytes
  Boot memory: 3 kbytes
Configuration:
    DEVCFG0 = 7ffffffb
                     3 Debugger disabled
                     8 Use PGC2/PGD2
    DEVCFG1 = ff6a0d5b
                     3 Primary oscillator with PLL
                   1   Primary oscillator: XT
                   4   CLKO output active
                  0    Peripheral bus clock: SYSCLK / 1
                 a     Watchdog postscale: 1/1024
    DEVCFG2 = fff979d9
                     1 PLL divider: 1/2
                    5  PLL multiplier: 20x
                   1   USB PLL divider: 1/2
                       Enable USB PLL
                 1     PLL postscaler: 1/2
    DEVCFG3 = 0fffffff
                 7     Assign irq priority 7 to shadow set
               1       Ethernet MII enabled
               2       Default Ethernet i/o pins
               4       Default CAN i/o pins
                       USBID pin: controlled by port
                       VBuson pin: controlled by port

C:\Program Files (x86)\Microchip\PICkit 2 v2>

It helps if you remember to connect the MCLR line (BLUSH)

Cheers Chris