DsPic-Raspberry programmer interface

From wwwelab
Revision as of 23:28, 15 November 2020 by Ist155317 (talk | contribs) (→‎dsPIC 33F)
Jump to navigation Jump to search

dsPic-Raspberry programmer interface

dsPIC 30F

A general purpose interface consisting in two opto-couplers have been developed to program the dsPic micro-controllers directly from the Raspberry, allowing remote maintenance and reprogramming of each de-localized unit.

It as to be powered by 12 V (minimum voltage 10.5V - maximum voltage 13.5V) dsPic node unregulated Vcc and feed by the Raspberry GP_I/O, with a common digital ground.

Pin-out and connections

Photo of the pic programmer.
Schematic design the pic programmer for the 30F family.

The following table describes the pin-out assembly of the opt-programmer developed to be used with picpgm software.

Programmer pin-out
Rasp I/O Label Programmer I/O Picpgm function (invert) Cable
39 GND GND - Blue/Wh
37 BCM26 PGD1//470 DIN (0) Brown
35 BCM19 PGD2//470 DOUT (0) Blue
33 BCM13 PGC CLK (0) Green
29 BCM5 RST (when high) MCLR (1) Brown/Wh
03 BCM2 PGMmode (high) PGM (0) Orange

If RST low and PGMmode high the pic enter program mode (12V @ MCLR). If RST high (PGMmode any but should be low) the pic reset and hold. If PGMmode low and RST low the pic run with MCLR at high impedance (or pulled up from dsPicnode side.

PGD1 and PDG2 are summed with two 470 ohm resistors to the pic PGD PGC is connected to the pic PGC with one series resistor of 470 ohm.

The 12V pull-up is wired with a 100 Ohm resistor (version 1) and 470 ohm (original version). This is a non-essential situation as it was devised to create 4.3V if PGMmode and RST were independent.

The Picpgm column shows how to set the Picpgm configuration file in order to use this programmer with the GPIO's shown on the table. It also shows if the invert option should be selected for each of them.


dsPIC 33F

The dsPIC 33F family are programed with 3.3 V digital signals. Therefore, and unlike the dsPIC 30F, a 33F does not require any special hardware interface to be programed by the Raspberry Pi: a direct connection between the Raspberry Pi GPIO pins and the dsPIC programing pins is the only requirement.

RPi pinout.png

Software use

The picpgm software is hosted here and should be used with the following script:


Bash file @ /etc/rc.local

#The following lines should be added to file rc.local to allow the pic to run after RPI boot
#The wiringpi package needs to be installed
gpio -g mode 5 down
gpio -g mode 2 down

A backup is also founded at elab1/...