mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Merge pull request #9260 from cladmi/pr/pic32/doc
pic32prog: add a documentation on how to update PICkit3
This commit is contained in:
commit
9c612d4766
166
dist/tools/pic32prog/doc.md
vendored
Normal file
166
dist/tools/pic32prog/doc.md
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
Flashing on Linux using pickit-3
|
||||
================================
|
||||
|
||||
This document describes how to enable flashing a pic32-wifire from Linux with a
|
||||
PICkit3 using [pic32prog](https://github.com/sergev/pic32prog).
|
||||
|
||||
It will require flashing a specific firmware on the PICkit3.
|
||||
As this can only be done from a Windows computer, that not many Linux users
|
||||
have, the following steps explain how to setup a Windows VirtualBox virtual
|
||||
machine and flash the PICkit3 from it.
|
||||
|
||||
Informations come from this comment
|
||||
|
||||
https://github.com/RIOT-OS/RIOT/pull/6092#issuecomment-261987955
|
||||
|
||||
|
||||
Steps
|
||||
-----
|
||||
|
||||
### Setup your computer
|
||||
|
||||
The steps were run on Ubuntu 16.04
|
||||
|
||||
* Install VirtualBox
|
||||
* Add yourself to the 'vboxusers' group
|
||||
```
|
||||
sudo usermod -a -G vboxusers your_username
|
||||
```
|
||||
* Reboot
|
||||
|
||||
### Setup Windows VM
|
||||
|
||||
You can download a free 90 days valid windows VirtualBox image from:
|
||||
|
||||
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
|
||||
|
||||
This document was tested on a Windows 10 VirtualBox image
|
||||
|
||||
* Create a machine in VirtualBox in File-Import Appliance.
|
||||
* Start the virtual machine and wait until you are on the windows desktop
|
||||
* Install VirtualBox Guest-additions for USB support
|
||||
* Doc: https://www.virtualbox.org/manual/ch04.html#additions-windows
|
||||
* Shutdown the virtual machine
|
||||
* Plug the PICkit3 flasher USB to your computer
|
||||
* In the virtual machine settings, go to USB:
|
||||
* Select "Enable USB Controller" with "USB 1.1"
|
||||
* Click the small '+' sign on the right and add the Microchip devices.
|
||||
* Doc: https://www.virtualbox.org/manual/ch03.html#idm1640
|
||||
* Start the virtual machine
|
||||
|
||||
### Downloads
|
||||
|
||||
Download and extract:
|
||||
|
||||
* PICkit3-Programmer http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit3%20Programmer%20Application%20v3.10.zip
|
||||
|
||||
The steps were adapted from the archive's README:
|
||||
|
||||
* Extract `PICkit3 Programmer Application Setup v3.10.zip`
|
||||
* Run `setup.exe`
|
||||
* Run PICkit3
|
||||
* Tools/Download PICkit Operating System
|
||||
* Select `c://Program Files/Microchip/PICkit3/PK3OSV020005.hex`
|
||||
* Device will be flashed with the new firmware
|
||||
* The GUI status should now say that the board is found
|
||||
* Close the program (it crashes when closing it but it is ok)
|
||||
* Turn off your VM
|
||||
|
||||
|
||||
pic32prog
|
||||
---------
|
||||
|
||||
Download and compile `pic32prog` flasher
|
||||
|
||||
https://github.com/sergev/pic32prog
|
||||
|
||||
Run the following command with PICkit3 connected in usb but without the
|
||||
chipKIT-Wi-Fire board connected
|
||||
|
||||
```
|
||||
$ pic32prog
|
||||
Programmer for Microchip PIC32 microcontrollers, Version 2.0.221
|
||||
Copyright: (C) 2011-2015 Serge Vakulenko
|
||||
Adapter: PICkit3 Version 2.0.5
|
||||
No device attached.
|
||||
|
||||
No target found.
|
||||
```
|
||||
You should see the `Adapter: PICkit3 Version 2.0.5` line.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
If you do not get the `Adapter: PICkit3 Version 2.0.5` line,
|
||||
try running it with `sudo pic32prog`. If it works with `sudo` it is a
|
||||
permission issue.
|
||||
|
||||
Add yourself to the `plugdev` group, add the following `udev` rule to
|
||||
`/etc/udev/rules.d/26-microchip.rules` and reboot.
|
||||
|
||||
```
|
||||
# Adapted from http://en.microstickplus.com/mplabx-on-linux
|
||||
ATTR{idVendor}=="04d8", MODE="664", GROUP="plugdev"
|
||||
```
|
||||
|
||||
Flashing
|
||||
--------
|
||||
|
||||
* Connect the chipKIT-Wi-Fire to USB
|
||||
* Connect the PICkit3 to JP1 ICSP holes
|
||||
* https://docs.creatordev.io/wifire/guides/wifire-programming/
|
||||
* The triangle `▶` goes into the port number 1 (a hole with a square around it)
|
||||
Opposite side of the JP1 ICSP text.
|
||||
|
||||
Run pic32prog again
|
||||
|
||||
```
|
||||
$ pic32prog
|
||||
Programmer for Microchip PIC32 microcontrollers, Version 2.0.221
|
||||
Copyright: (C) 2011-2015 Serge Vakulenko
|
||||
Adapter: PICkit3 Version 2.0.5
|
||||
Processor: MZ2048EFG100 (id 1720E053)
|
||||
Flash memory: 2048 kbytes
|
||||
Boot memory: 80 kbytes
|
||||
Configuration:
|
||||
DEVCFG0 = fff6fff7
|
||||
3 Debugger disabled
|
||||
4 JTAG enabled
|
||||
8 Use PGC2/PGD2
|
||||
3 Flash ECC disabled, unlocked
|
||||
DEVCFG1 = 03743cb9
|
||||
1 System PLL
|
||||
8 Internal-external switch over enabled
|
||||
0 Primary oscillator: External
|
||||
4 CLKO output disabled
|
||||
DEVCFG2 = fff9b11a
|
||||
2 PLL divider: 1/3
|
||||
1 PLL input frequency range: 5-10 MHz
|
||||
31 PLL feedback divider: x50
|
||||
1 PLL postscaler: 1/2
|
||||
4 USB PLL input clock: 24 MHz
|
||||
8 Enable USB PLL
|
||||
DEVCFG3 = 86ffffff
|
||||
2 Default Ethernet pins
|
||||
USBID pin: controlled by port
|
||||
```
|
||||
|
||||
Now try flashing the chipKIT-Wi-Fire with RIOT default example compiled for
|
||||
pic32-wifire with `pic32prog path/to/firmware.hex`
|
||||
|
||||
|
||||
```
|
||||
$ pic32prog bin/pic32-wifire/default.hex
|
||||
Programmer for Microchip PIC32 microcontrollers, Version 2.0.221
|
||||
Copyright: (C) 2011-2015 Serge Vakulenko
|
||||
Adapter: PICkit3 Version 2.0.5
|
||||
Processor: MZ2048EFG100
|
||||
Flash memory: 2048 kbytes
|
||||
Boot memory: 80 kbytes
|
||||
Data: 117020 bytes
|
||||
Erase: done
|
||||
Program flash: ########################### done
|
||||
Program boot: #### done
|
||||
Verify flash: ########################## done
|
||||
Verify boot: ### done
|
||||
Program rate: 6159 bytes per second
|
||||
```
|
Loading…
Reference in New Issue
Block a user