I put together my UBW32 free (guest) PCB the other day. Here's a pic:
[attachment=0]
I didn't have the SOT-223 LM317, so I used a fixed 3v3 1117 instead. Since it doesn't require resistors to set the output voltage, I left the feedback one off and used a 603 zerohm jumper to short the GND pin to GND. Also, I didn't want to buy the tiny power selector switch, so I just soldered a 1206 zerohm jumper to permanently select USB power. That meant I could leave off the 5V regulator / external power subcircuit.
The 0.4mm pitch PIC was really daunting, but I used Arup's "use the solder already on the pads" trick, and it looks like a good connection all around. I'm used to having more space for the 603s, maybe these pads are tinier than the ones from DP that I'm used to doing, but there was hardly any extra room. I used my new soldering station, but the chisel tip I have is way too big, I definitely need to get a smaller one.
I haven't had a moment to try it out yet (my MPLAB PC is down :-[ ), so maybe I'll post an update when I get it up and running again.
It looks like you might have put too much solder on the oscillator pins. Looks like huge globs of it. :P
How are those buttons? I was once planning on getting those but ended up ditching the project. Are they "pleasant" to press? :P Or do they have no feedback when pressed? (like a click sound or resistance when approaching click)
I envy you so much with your PIC prowess! They are so fast, they have full blown DMA's, the ADC's are fast, so much ram! What is holding me back is that I can't make boards yet and the PICKIT2 does not officially support all those new high end pic's.
The oscillator had the pads on the bottom, and almost nothing on the sides, really tricky to do by hand. I ended up dabbing a little on each of the 4 pads, and then reflowing it with my hot-air station, which seemed to work pretty well.
I hate the buttons : (. Digikey was out of stock on the recommended ones, and I found those in the same series, but you need to press them with a pen or something, just a finger won't work. I guess they're designed to be inside something that has other mechanical stuff to actuate them.
As I understand it, the PICkit2 *will* program these chips with its stand-alone programming application, just not with MPLAB (though I'm not sure why). I have an ICD3 I can use for them in MPLAB, but successfully programmed some other PIC32s with my PICkit2 (clone) and the standalone app.
pk2 will program them but not debug them. pk3/icd3 will debug them
Oh, good thing I did not get those buttons then. :P
Let me rephrase, the high end PIC's meaning the more new pic's like the PIC32MX220's and PIC32MX110's and the PIC32MX534 and up. They are not in the officially supported list, so to get them programmed you need to either edit the device file or use a 3rd party software with the PICKIt2. Though, I have yet to dabble with the device file, as my current breadboards that I used with the DIP pic32's was broken which lead me to believe that the PICKIT2 just won't work with the unsupported devices. I have yet to retry it with proper breadboards.
And, regardless, good job soldering them! :)
Hi,
I have a Mini32 board from Mikroelektronika. The microcontroller inside is a PIC32MX534F064H.
I also have a PICkit2 and I would like to program my Mini32 board using it.
I know that my CPU is not officially supported by PICkit2 but I just want to program flash, I am not interested in the debug part.
I have read this is possible, by modifying the.dat file. I just have no idea how to modify this file and what should I modify inside it.
I use the Linux version of pk2cmd as application but I also have a windows computer with PICkit software installed.
From now on, what I have is:
1) Answer to ./pk2cmd -P -A3.3 -W (get device id)
Device id is not found (this is normal) but I have something other than 0 in usb_read_array for PIC32 family: 0x4 0x53 0x0 0x40 0x4
That means that found device id is 0x14400053. Quite strange because device mask for this family is 0xff000.
2) Answer to ./pk2cmd -C -PPIC32MX320F064H (check blank)
Downloading Programming Executive...
...FAILED. ReadPEVersion:0. wanted:265
memory is NOT blank.
The error comes from function BusErrorCheck. Status value is 0x40a. I assume this means that command did not complete but I am just guessing.
So my questions are: what do I need to twist in PK2DeviceFile.dat? Can PIC32MX534F064H be a member of existing PIC32 family or is it a totally new family? Should I start from data for PIC32MX320F064H or is there better board/part to start from?
Hoping my questions are clear enough,
Christophe
[quote author="cronco"]
So my questions are: what do I need to twist in PK2DeviceFile.dat? Can PIC32MX534F064H be a member of existing PIC32 family or is it a totally new family? Should I start from data for PIC32MX320F064H or is there better board/part to start from?
[/quote]
Yes it should work with the existing family.
Yes that 320 part seems the easiest to alter/copy.
If you don't already have it find and download the device file editor, this won't be any fun at all in a hex editor =)
You need to change the device ID, replace the 53 with 00.
[quote author="DS61145J-page 45"]
PIC32MX320F064H 0x0906053
PIC32MX534F064H 0x4400053
[/quote]
The masks differ also.
[quote author="DS61145J-page 45"]
Device DEVCFG0 DEVCFG1 DEVCFG2 DEVCFG3 DEVID
PIC32MX3XX 0x110FF00B 0x009FF7A7 0x00070077 0x0000FFFF 0x000FF000
PIC32MX534F064H 0x110FF00F 0x009FF7A7 0x00078777 0xC407FFFF 0x0FFFF000
[/quote]
Hi AndThen,
Thanks for your answer. I have modified PK2DeviceFile.dat file using the device file editor and advanced a bit in the debug.
I now have:
./pk2cmd -P -W
Auto-Detect: Found part PIC32MX534F064H.
But I still have an error if I try to check if memory is blank:
./pk2cmd -C -PPIC32MX534F064H -I -W
Downloading Programming Executive...
...FAILED. ReadPEVersion:0. wanted:265
memory is NOT blank.
I have added a bit of debug to the pk2cmd source files (I use pk2cmd on a Linux computer but I have the same error on a windows computer with the standard microchip tool) to try to see where the error comes from.
So to be able to read RAM or flash, there are lots of steps well described in PIC32MX flash programming specification (http://http://ww1.microchip.com/downloads/en/DeviceDoc/61145J.pdf) and pk2cmd follows these steps. My error is a bus error (timeout). The PICkit returns a status indicating that communication between PICkit and target board has failed.
My error occurs in step 7. We have just copied a small executable to target RAM (pe_loader) and try to execute it to load another program to RAM. In PICKit2cmd source code, error is detected in function CPICkitFunctions::DownloadPE by the call to BusErrorCheck function done after step 7-A. I am quite stucked here. I have only the machine code of the PE_loader, I can't read it and I am quite sure there is no error in the pkcmd2 code (this code is used to read/write flash for all PIC32 devices).
My guess was that RAM mapping on my board was different from PIC32MX320F064H RAM mapping but it looks OK.
Any idea is welcomed,
Christophe