Difference between revisions of "Programming the Device"

From OpenCircuits
Jump to navigation Jump to search
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Requirements==
+
Description on how to use dsPicProgrammer to download firmware to [{{SERVER}}/DsPIC30F_5011_Development_Board DsPIC30F 5011 Development Board]
  
===Hardware===
+
==Loading Bootloader (Once only)==
#PC with COM port (Windows XP Installed for MPLAB) OR use a USB-RS232 cable
+
 
 +
===Hardware Requirement===
 +
#PC with USB port (with Windows)
 
#ICD2 Programmer
 
#ICD2 Programmer
 
#Target Board
 
#Target Board
 
#5V Power Supply
 
#5V Power Supply
  
===Software===
+
===Software Requirement===
 
#[http://ww1.microchip.com/downloads/en/DeviceDoc/MP750.zip MPLAB IDE v7.50]: v7.60 is not compatible with our current [http://www.sure-electronics.com/ ICD2 Programmers]. There are consistent "Devices cannot be founded" warnings. See [http://www.sureelectronics.net/pdfs/DB-DP003.pdf manual] for details.
 
#[http://ww1.microchip.com/downloads/en/DeviceDoc/MP750.zip MPLAB IDE v7.50]: v7.60 is not compatible with our current [http://www.sure-electronics.com/ ICD2 Programmers]. There are consistent "Devices cannot be founded" warnings. See [http://www.sureelectronics.net/pdfs/DB-DP003.pdf manual] for details.
#[http://chungyan5.no-ip.org/vc/?root=dspicProgrammer dsPicProgrammer] ('''dsPicProgrammer.jar''')
 
  
 
===Files===
 
===Files===
 
#[http://chungyan5.no-ip.org/vc/?root=dspic_bootloader dsPicBootloader] ('''bl_$(MODEL).hex''').
 
#[http://chungyan5.no-ip.org/vc/?root=dspic_bootloader dsPicBootloader] ('''bl_$(MODEL).hex''').
#Application hex file (e.g. '''app.hex''')
 
 
  
==Loading Bootloader (Once only)==
+
===Procedure===
 
{|border="1" cellspacing="0" cellpadding="5"
 
{|border="1" cellspacing="0" cellpadding="5"
 
|+ Loading Bootloader
 
|+ Loading Bootloader
Line 31: Line 30:
 
*Run MPLAB IDE on PC
 
*Run MPLAB IDE on PC
 
*Select: Configure>Select Devices...
 
*Select: Configure>Select Devices...
*Choose dsPIC30F5011
+
*Choose the correct dsPic model
 
|-valign="top"
 
|-valign="top"
| Target <-> ICD 2  ||
+
| Load Bootloader ||
*Use six pin cable. Beware of the pin assignments. Only pin 1 - 5 should be used.
+
*Select: File>Import...
*Place Jumper on target board (if any). The Jumper connects target V<sub>cc</sub> to ICD 2.
+
*Select '''bl_$(MODEL).hex'''
*Do '''NOT''' power-up the target.
 
 
|-valign="top"
 
|-valign="top"
 
| ICD 2 <-> PC ||
 
| ICD 2 <-> PC ||
 
*Plug-in ICD 2 to PC via USB cable
 
*Plug-in ICD 2 to PC via USB cable
 +
|-valign="top"
 +
| Target <-> ICD 2  ||
 +
*Connect six pin cable to target board. Beware of the pin assignments. Only pin 1 - 5 are used.
 
*Power-up the target.
 
*Power-up the target.
 +
|-valign="top"
 +
| ICD 2 <-> PC ||
 
*Select: Programmer>Select Programmer>MPLAB ICD 2
 
*Select: Programmer>Select Programmer>MPLAB ICD 2
 
*If this is the first time the ICD 2 is connected to PC, MPLAB IDE will automatically download the required OS to ICD 2, wait until it has finished
 
*If this is the first time the ICD 2 is connected to PC, MPLAB IDE will automatically download the required OS to ICD 2, wait until it has finished
 
*If you have not connected and powered up the target, you might see Warnings on invalid device IDs, and/or running self tests.
 
*If you have not connected and powered up the target, you might see Warnings on invalid device IDs, and/or running self tests.
 
*See results of self test if necessary: Programmer>Settings, Status Tab. Refer to [http://ww1.microchip.com/downloads/en/DeviceDoc/51331B.pdf ICD2 User's Guide] Chapter 7.
 
*See results of self test if necessary: Programmer>Settings, Status Tab. Refer to [http://ww1.microchip.com/downloads/en/DeviceDoc/51331B.pdf ICD2 User's Guide] Chapter 7.
|-valign="top"
 
| Load Bootloader ||
 
*Select: File>Import...
 
*Select '''bl_5011.hex'''
 
 
|-valign="top"
 
|-valign="top"
 
| Start Programming ||
 
| Start Programming ||
 
*Select: Programmer>Program
 
*Select: Programmer>Program
 +
*Wait until finishes
 
|-valign="top"
 
|-valign="top"
 
| Finishing ||
 
| Finishing ||
*Power-down the Taget
+
*Power-down the Target
 
*Select: Programmer>Select Programmer>None
 
*Select: Programmer>Select Programmer>None
 
*Unplug USB cable
 
*Unplug USB cable
Line 61: Line 61:
  
  
==Hardware Setting==
+
==Download and Loading Firmware==
[[Image:DSC00921.JPG]]
+
===dsPicProgrammer User Guide===
*Connect your usb to rs232 cable to your computer
+
[http://chungyan5.no-ip.org/download/software/dsPicProgrammer/dsPicProgrammerUserGuide_V2.0.1.pdf dsPicProgrammerUserGuide_V2.0.1]
*Or Using a real RS232 Port -- COM PORT
+
 
 +
===Hardware Requirement===
 +
#PC (Linux/Windows) with COM Port OR USB-COM converter cable
 +
#Target Board (with bootloader)
 +
#5V Power Supply
 +
 
 +
===Software Requirement===
 +
#[http://chungyan5.no-ip.org/vc/?root=dspicProgrammer dsPicProgrammer]
 +
 
 +
===Files===
 +
#Application hex file (e.g. '''app.hex''')
 +
 
 +
===Procedure===
  
 +
====Setup COM Port====
 +
[[Image:DSC00921.JPG | 480px]]
 +
*Connect your USB-COM converter cable to your computer
 +
*Or Using a real COM PORT
  
==Download and Loading Firmware==
 
  
===Make sure the RS232 Port in your computer===
+
----
[[Image:1.jpg]]
+
=====Find out your COM port Number=====
 +
[[Image:1.jpg | 480px]]
 
*Go to Control Panel \ Device Manager
 
*Go to Control Panel \ Device Manager
  
[[Image:2.jpg]]
 
*Find out your Device comm port Number
 
  
===Get the Dspic Programmer===
+
----
*Download [http://chungyan5.no-ip.org/open_data/electronic_computer/platforms/dspic/dsPicProgrammer/dsPicProgrammer1.5.5.zip dsPic_Programmer.zip], [http://chungyan5.no-ip.org/open_data/electronic_computer/platforms/dspic/dsPicProgrammer/ws/ updated directory] or [http://chungyan5.no-ip.org/vc svn server]
+
[[Image:2.jpg | 480 px]]
*Save to a directory.
+
*Find out your Device COM Port Number
::e.g. desktop
+
 
*Unzip the dsPic_Programmer.zip, then you have an unziped file.
+
 
[[Image:prog_guid_dl.JPG]]
+
----
 +
====Get the Dspic Programmer====
 +
[[Image:programmer_3.jpg |480px]]
 +
*Download [http://chungyan5.no-ip.org/open_data/electronic_computer/platforms/dspic/dsPicProgrammer/dsPicProgrammer3.00.01s.zip dsPicProgrammer.zip], from [http://chungyan5.no-ip.org/open_data/electronic_computer/platforms/dspic/dsPicProgrammer/ws/ updated directory] or [http://chungyan5.no-ip.org/vc svn server]
 +
*Unzip the dsPicProgrammer.zip, then you have an unziped file.
 +
 
 +
 
 +
----
 +
====Download Firmware====
 +
[[Image:programmer_4.jpg |480px]]
 +
*Save your .hex file(foo.hex) to the folder called firmware.
 +
*Run dsPicProgrammer.bat (Windows) / dsPicProgrammer.sh (linux)
 +
**Make sure your device is connected through a "Direct RS232 Cable" to PC Serial Port.
 +
 
  
 
----
 
----
 +
[[Image:programmer_6.jpg |480px]]
 +
*Choose a COM port
 +
*Choose a baudrate
 +
::115200 is communication speed [in bps]
  
*Drag the unzip file to a director.
 
::eg. USB memory devics
 
[[Image:prog_guid_drag.JPG]]
 
  
 
----
 
----
 +
[[Image:programmer_7.jpg |480px]]
 +
*Choose a .hex file
 +
 +
 +
----
 +
[[Image:programmer_8.jpg |480px]]
 +
*Press start
 +
*Then press Yes to confirm programming the device
  
*Save your .hex file(foo.hex) to your directory location 
 
::e.g. X:\dsPic_Programmer\ ---> X:\ is the driver where the dsPic_Programmer located
 
[[Image:prog_guid_hex.JPG]]
 
  
===Download Firmware===
 
*Start a Command Prompt
 
**Start -> Run<br>[[Image:2 1 run.JPG]]<br>
 
**Enter cmd<br>[[Image:2 2 cmd.JPG]]<br>
 
*Run dsPicProgrammer
 
**Make sure your device is connected through a "Direct RS232 Cable" to PC Serial Port.
 
**Change to the directory where dsPicProgrammer.jar is located and run the command:
 
***for example, '''jre\bin\java -Djava.library.path=.\rxtx\bin -jar dspicProgrammer.jar COM1 115200 foo.hex'''
 
***Or directly using '''dsPicProgrammer.bat COM1 115200 foo.hex'''(Windows)
 
***'''jre\bin\java -jar dsPicProgrammer.jar /dev/ttyS0 115200 foo.hex''' (Linux)
 
:::where COM1 is your COM Port ID
 
:::115200 is communication speed [in bps]
 
:::foo.hex is your firmware new file
 
::[[Image:5.jpg]]
 
:*When the program prompt you for an input, press y:<br>[[Image:2 4 prompt.JPG]]<br>
 
:*If communication can be established, you should see something like this:<br>[[Image:2 5 progress.JPG]]<br>
 
:*Wait until programming is completed.<br>[[Image:2 6 complete.JPG]]<br>
 
:*after all completed, power OFF your device, then power ON again, enjoy your new updated.
 
  
 +
----
 +
[[Image:programmer_9.jpg | 480px]]
 +
*The status during programming
  
==Troubleshooting==
 
===Invalid COM Port===
 
*In case of selecting an invalid COM port, you should see the error message:<br>gnu.io.NoSuchPortException: Choosing COM Port Error<br>[[Image:3 1 com err.JPG]]<br><br>
 
===Missing firmware file===
 
*In case of selecting a firmware file that does not exist, you should see the error message:<br>java.io.FileNotFoundException: foo1.hex <The system cannot find the file specified><br>[[Image:3 2 file err.JPG]]<br><br>
 
===Missing RXTX driver===
 
*In case of missing the RXTX driver, you should see the error message:<br>Exception in thread “main” java.lang.NoClassDefFoundError: gnu/io/UnsupportedCommOperationException<br>[[Image:3 3 rxtx err.JPG]]<br><br>
 
  
 +
----
 +
[[Image:programmer_10.jpg |480px]]
 +
*The programming have been completed, press OK the close the message box
  
==Downloads==
+
----
{| border="1" cellspacing="0" cellpadding="5"
+
===Troubleshooting===
|+ Related software download links for dsPicBootloader and dsPicProgrammer
+
====Invalid COM Port====
! Program
+
*In case of selecting an invalid COM port, you should see the error message:<br>''gnu.io.NoSuchPortException: Choosing COM Port Error''<br>[[Image:3 1 com err.JPG]]<br><br>
! Site
+
*Solution: check the COM port ID, or close any programs that are using the COM Port
! Remarks
+
====Missing firmware file====
|- valign="top"
+
*In case of selecting a firmware file that does not exist, you should see the error message:<br>''java.io.FileNotFoundException: foo1.hex <The system cannot find the file specified>''<br>[[Image:3 2 file err.JPG]]<br><br>
| JDK
+
*Solution: check the file path
| [http://java.sun.com/javase/downloads/index.jsp website]
+
====Missing RXTX driver====
| Download latest JDK
+
*In case of missing the RXTX driver, you should see the error message:<br>''Exception in thread “main” java.lang.NoClassDefFoundError: gnu/io/UnsupportedCommOperationException''<br>[[Image:3 3 rxtx err.JPG]]<br><br>
|- valign="top"
+
*Solution:
| RXTX
+
**Copy '''RXTXcomm.jar''' to '''/dsPicProgrammer/rxtx/lib'''
| [http://users.frii.com/jarvi/rxtx/download.html website]
+
**Copy '''rxtxSerial.dll''' to '''/dsPicProgrammer/rxtx/bin''' (Window)
| Download rxtx-2.1-7-bins-r2.zip or later
+
**Copy '''librxtxSerial.so''' to '''/dsPicProgrammer/rxtx/bin''' (Linux)
|- valign="top"
+
====Missing JAVA====
| dsPicBootloader
+
*In case of missing JAVA JDK or JRE, an error message will be prompted.
| [http://chungyan5.no-ip.org/vc click]
+
*Solution:
| Under "dsPicBootloader/", download bl_5011.s or bl_j128gp306.s
+
**Copy the contents under directory '''C:/Program Files/Java/jre$(VERSION)/''' to '''/dsPicProgrammer/jre'''
|-valign="top"
+
 
| dsPicProgrammer
+
== Further reading ==
| [http://chungyan5.no-ip.org/vc click]
+
 
| Under "dsPicProgrammer/", dowload dsPicProgrammer.jar<br><br>Alternatively, if you want to compile yourself or modify the source code, download <br>all source files under "dsPicProgrammer/" '''plus''' RdFileIntelHex.java under <br>"IntelHexPaser/tags/0.02.00/".<br>You should also install RXTX on your local machine as recommended in the readme file.
+
* [[PIC Programmers, In Circuit Programming and BootLoaders]]
|- valign="top"
 
| Ingenia's bootloader
 
| [http://www.ingenia-cat.com/en/downloads.php website]
 
| Download original ingenia's bootloader
 
|-
 
|}
 

Latest revision as of 22:29, 25 April 2012

Description on how to use dsPicProgrammer to download firmware to DsPIC30F 5011 Development Board

Loading Bootloader (Once only)[edit]

Hardware Requirement[edit]

  1. PC with USB port (with Windows)
  2. ICD2 Programmer
  3. Target Board
  4. 5V Power Supply

Software Requirement[edit]

  1. MPLAB IDE v7.50: v7.60 is not compatible with our current ICD2 Programmers. There are consistent "Devices cannot be founded" warnings. See manual for details.

Files[edit]

  1. dsPicBootloader (bl_$(MODEL).hex).

Procedure[edit]

Loading Bootloader
Step Remarks
Install MPLAB IDE
  • Do NOT connect ICD 2 (via USB) to PC
  • Execute MPLAB vX.XX Install.exe
Install USB Driver
  • Follow the instruction in (C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers\Ddicd2.htm)
Select Target Chip
  • Run MPLAB IDE on PC
  • Select: Configure>Select Devices...
  • Choose the correct dsPic model
Load Bootloader
  • Select: File>Import...
  • Select bl_$(MODEL).hex
ICD 2 <-> PC
  • Plug-in ICD 2 to PC via USB cable
Target <-> ICD 2
  • Connect six pin cable to target board. Beware of the pin assignments. Only pin 1 - 5 are used.
  • Power-up the target.
ICD 2 <-> PC
  • Select: Programmer>Select Programmer>MPLAB ICD 2
  • If this is the first time the ICD 2 is connected to PC, MPLAB IDE will automatically download the required OS to ICD 2, wait until it has finished
  • If you have not connected and powered up the target, you might see Warnings on invalid device IDs, and/or running self tests.
  • See results of self test if necessary: Programmer>Settings, Status Tab. Refer to ICD2 User's Guide Chapter 7.
Start Programming
  • Select: Programmer>Program
  • Wait until finishes
Finishing
  • Power-down the Target
  • Select: Programmer>Select Programmer>None
  • Unplug USB cable


Download and Loading Firmware[edit]

dsPicProgrammer User Guide[edit]

dsPicProgrammerUserGuide_V2.0.1

Hardware Requirement[edit]

  1. PC (Linux/Windows) with COM Port OR USB-COM converter cable
  2. Target Board (with bootloader)
  3. 5V Power Supply

Software Requirement[edit]

  1. dsPicProgrammer

Files[edit]

  1. Application hex file (e.g. app.hex)

Procedure[edit]

Setup COM Port[edit]

DSC00921.JPG

  • Connect your USB-COM converter cable to your computer
  • Or Using a real COM PORT



Find out your COM port Number[edit]

1.jpg

  • Go to Control Panel \ Device Manager



2.jpg

  • Find out your Device COM Port Number



Get the Dspic Programmer[edit]

Programmer 3.jpg



Download Firmware[edit]

Programmer 4.jpg

  • Save your .hex file(foo.hex) to the folder called firmware.
  • Run dsPicProgrammer.bat (Windows) / dsPicProgrammer.sh (linux)
    • Make sure your device is connected through a "Direct RS232 Cable" to PC Serial Port.



Programmer 6.jpg

  • Choose a COM port
  • Choose a baudrate
115200 is communication speed [in bps]



Programmer 7.jpg

  • Choose a .hex file



Programmer 8.jpg

  • Press start
  • Then press Yes to confirm programming the device



Programmer 9.jpg

  • The status during programming



Programmer 10.jpg

  • The programming have been completed, press OK the close the message box

Troubleshooting[edit]

Invalid COM Port[edit]

  • In case of selecting an invalid COM port, you should see the error message:
    gnu.io.NoSuchPortException: Choosing COM Port Error
    3 1 com err.JPG

  • Solution: check the COM port ID, or close any programs that are using the COM Port

Missing firmware file[edit]

  • In case of selecting a firmware file that does not exist, you should see the error message:
    java.io.FileNotFoundException: foo1.hex <The system cannot find the file specified>
    3 2 file err.JPG

  • Solution: check the file path

Missing RXTX driver[edit]

  • In case of missing the RXTX driver, you should see the error message:
    Exception in thread “main” java.lang.NoClassDefFoundError: gnu/io/UnsupportedCommOperationException
    3 3 rxtx err.JPG

  • Solution:
    • Copy RXTXcomm.jar to /dsPicProgrammer/rxtx/lib
    • Copy rxtxSerial.dll to /dsPicProgrammer/rxtx/bin (Window)
    • Copy librxtxSerial.so to /dsPicProgrammer/rxtx/bin (Linux)

Missing JAVA[edit]

  • In case of missing JAVA JDK or JRE, an error message will be prompted.
  • Solution:
    • Copy the contents under directory C:/Program Files/Java/jre$(VERSION)/ to /dsPicProgrammer/jre

Further reading[edit]