Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
48 views27 pages

Ds30 Loader Main Manual

Uploaded by

ZhitaiLiu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views27 pages

Ds30 Loader Main Manual

Uploaded by

ZhitaiLiu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

ds30 Loader

Main manual March 2013

ds30 Loader
Main manual

Copyright 2010-2013 MG Digital Solutions 1 / 27


ds30 Loader
Main manual March 2013

Table of contents
Table of contents ........................................................................................................................ 2
Introduction................................................................................................................................ 5
ds30 Loader ............................................................................................................................ 5
Prerequisites and Requirements ............................................................................................ 5
Trademarks............................................................................................................................. 5
Why use a boot loader ........................................................................................................... 5
Usage .......................................................................................................................................... 6
Operating system considerations........................................................................................... 6
Windows ............................................................................................................................. 6
Linux ................................................................................................................................... 6
Mac OS X ............................................................................................................................ 6
Install the required tool suite ................................................................................................. 6
Modify firmware settings ....................................................................................................... 6
Build the firmware.................................................................................................................. 6
Write firmware ....................................................................................................................... 6
Prepare the application .......................................................................................................... 7
Setup the host application ..................................................................................................... 7
Write the application ............................................................................................................. 7
Procedure 1 ........................................................................................................................ 7
Procedure 2 ........................................................................................................................ 7
Procedure 3 ........................................................................................................................ 7
Wait for the write operation to complete. ............................................................................ 7
Firmware matrix ......................................................................................................................... 8
Clients ......................................................................................................................................... 9
Console ................................................................................................................................... 9
GUI .......................................................................................................................................... 9
API........................................................................................................................................... 9
CAN ........................................................................................................................................... 10
Lawicel .................................................................................................................................. 11
IXXAT .................................................................................................................................... 11
Vector ................................................................................................................................... 11
Configuration ............................................................................................................................ 12
Basic settings ........................................................................................................................ 12
Port name ......................................................................................................................... 12
Baud rate .......................................................................................................................... 12
Write flash ........................................................................................................................ 12
Write eeprom ................................................................................................................... 12
Read flash ......................................................................................................................... 12
Read eeprom .................................................................................................................... 12
Serial ..................................................................................................................................... 12
Flow control...................................................................................................................... 12
CAN ....................................................................................................................................... 12
PIC ID ................................................................................................................................ 12

Copyright 2010-2013 MG Digital Solutions 2 / 27


ds30 Loader
Main manual March 2013

GUI ID ............................................................................................................................... 12
Extended frames .............................................................................................................. 13
DLC.................................................................................................................................... 13
Advanced .............................................................................................................................. 13
Don’t write goto to the user application.......................................................................... 13
Allow overwrite of the boot loader.................................................................................. 13
Write configuration bits ................................................................................................... 13
Custom boot loader.......................................................................................................... 13
Auto baud rate ................................................................................................................. 13
Echo verification ............................................................................................................... 13
Put CRC before goto ......................................................................................................... 14
Don’t write empty pages .................................................................................................. 14
Don’t set goto to bl at 0x00.............................................................................................. 14
Timing ................................................................................................................................... 14
Hello timeout.................................................................................................................... 14
Poll time............................................................................................................................ 14
Timeout ............................................................................................................................ 14
Delay after port open ....................................................................................................... 14
Reset ..................................................................................................................................... 14
RTS .................................................................................................................................... 14
DTR ................................................................................................................................... 14
Command ......................................................................................................................... 15
ID ...................................................................................................................................... 15
DLC.................................................................................................................................... 15
Baud rate .......................................................................................................................... 15
Activation ............................................................................................................................. 15
RTS .................................................................................................................................... 15
DTR ................................................................................................................................... 15
Security ................................................................................................................................. 15
Password .......................................................................................................................... 15
Operation ................................................................................................................................. 16
Parsing of hex‐file ................................................................................................................. 16
Validation ......................................................................................................................... 16
Data collection.................................................................................................................. 16
Check of data that could overwrite the boot loader ....................................................... 16
Check and move of GOTO ................................................................................................ 16
Counting of data ............................................................................................................... 16
Set GOTO to boot loader .................................................................................................. 16
Write ..................................................................................................................................... 16
Raise of process priority ................................................................................................... 16
Device reset ...................................................................................................................... 16
Auto baud rate ................................................................................................................. 16
Find boot loader ............................................................................................................... 17
Determine boot loader size .............................................................................................. 17
Parse hex‐file .................................................................................................................... 17

Copyright 2010-2013 MG Digital Solutions 3 / 27


ds30 Loader
Main manual March 2013

Write ................................................................................................................................. 17
Boot loader upgrade procedure ............................................................................................... 18
Troubleshooting ....................................................................................................................... 19
Known issues ........................................................................................................................ 19
Error messages ..................................................................................................................... 19
HW schematics ......................................................................................................................... 21
UART / software UART ......................................................................................................... 21
Components ..................................................................................................................... 21
Schematic ......................................................................................................................... 21
CAN ....................................................................................................................................... 22
Components ..................................................................................................................... 22
Schematic ......................................................................................................................... 22
Appendix A – Links ................................................................................................................... 23
Appendix B – memory map ...................................................................................................... 24
Appendix C – Write time samples ............................................................................................ 25
Appendix D ‐ Files ..................................................................................................................... 26
Package content ................................................................................................................... 26
Files created by ds30 Loader ................................................................................................ 26

Copyright 2010-2013 MG Digital Solutions 4 / 27


ds30 Loader
Main manual March 2013

Introduction
ds30 Loader
ds30 Loader is a boot loader supporting PIC12, PIC16, PIC18, PIC24, dsPIC, and PIC32 families
of MCUs from Microchip. It supports all devices in each family out of the box (those in
production). The firmware is written in assembler. The PC clients run on Windows, Linux,
and Mac OS X.

Prerequisites and Requirements


Requirements for the different parts of ds30 Loader is found in their respective manual.

Trademarks
All rights to copyrights, registered trademarks, and trademarks reside with their respective
owners.

Why use a boot loader


A boot loader usually allows software upgrade with cheap or generally available equipment
such as an RS232 port, as opposed to specialized and expensive equipment such as a PIC
programmer. Write time might also be lower with a boot loader.

Drawbacks of using a boot loader include added boot‐up time and increased flash memory
usage.

Copyright 2010-2013 MG Digital Solutions 5 / 27


ds30 Loader
Main manual March 2013

Usage
Operating system considerations
Windows
N/A

Linux
The user running ds30 Loader should be a member of the dialout group. To add a user in the
dialout group run the following command as a super user:
useradd –G dialout username

Mac OS X
The user running ds30 Loader should have sufficient rights to read from and write to the
desired port.

Install the required tool suite


The required compiler/assembler tool suite needs to be installed before the boot loader
firmware is opened in MPLAB IDE. If the tool suite is not installed when the project is opened
important settings may be lost. See the firmware manual for information about the required
tool suite(s).

Modify firmware settings


Refer to the firmware manual for detailed information.

 Start Microchip MPLAB IDE.


 Open the firmware by clicking Open on the project menu, and then browse to the
ds30loader.mcp file which is located in the firmware directory.
 Open settings.inc(assembler firmware) or board_xxx.h(C firmware) by double‐clicking
it in the project tree to the left. Review all settings and modify when needed.
 Open user_code.inc(assembler firmware) or board_xxx.c(C firmware) by double‐
clicking it in the project tree to the left. Review the available macros/functions and
add init/exit code if needed.
 Use exactly the same configuration bits from the application in the boot loader
unless you have a good reason not to.

Build the firmware


Build the firmware by clicking Build all on the project menu. Notice any warnings in the
output window. Correct any errors that appear in the output window. Refer to the firmware
manual for detailed information about ds30 Loader specific warnings and errors.

Write firmware
Write the firmware to your device using your favorite programmer. For detailed information,
refer to the firmware manual.

Copyright 2010-2013 MG Digital Solutions 6 / 27


ds30 Loader
Main manual March 2013

Prepare the application


You need to make sure there is a goto placed at location 0x00 in your application. In most
cases your linker already does this for you. To check if it does you can pick Progam Memory
from the View‐menu in MPLAB. It will look something like the screen‐shot below. The GUI
will let you know if it does not find a goto.

Setup the host application


 Start the GUI.
 Select the desired communication settings and pick your hex‐file. For details, refer to
the GUI manual.

Write the application


There are three ways to invoke the boot loader and perform the write.

Procedure 1
1. Press the write button in the GUI.
2. Reset the PIC/dsPIC.

Procedure 2
1. Reset the PIC/dsPIC.
2. Press the write button in the GUI before the boot loader times out.
This procedure may be more reliable than procedure 1.

Procedure 3
0. Implement a reset command in the application. See the reset part in the
configuration section in this document for more information.
1. Configure the reset command under the reset the in the GUI. Advanced mode need
to be enabled first.
2. Press the write button in the GUI.

Wait for the write operation to complete

Copyright 2010-2013 MG Digital Solutions 7 / 27


ds30 Loader
Main manual March 2013

Firmware matrix
The following firmwares are available. For detailed information refer to the firmware
manual.

UART Sw UART* CAN* I2C* SD card*


PIC12 X X n/a
PIC16 X X n/a
PIC18F X X X
PIC18FJ X X n/a
PIC24FK X X n/a
see see
PIC24FJ X X n/a
ds30 HEX ds30 SD
PIC24H X X X
Loader card loader
PIC24E * - X
dsPIC30F X X X
dsPIC33F X X X
dsPIC33E * - X
PIC32 * - X
* Only available in the commercial version

Copyright 2010-2013 MG Digital Solutions 8 / 27


ds30 Loader
Main manual March 2013

Clients
Console
It is a command line interface that runs on Windows, Linux, and MAC OS X. Refer to the
console manual for more information.

GUI
It is a graphical user interface that runs on Windows, Linux, and MAC OS X. Refer to the GUI
manual for more information.

API
The API is used to integrate boot loader functionality in a .NET application. It is ordered
separately; contact MG Digital Solutions for more information.

Copyright 2010-2013 MG Digital Solutions 9 / 27


ds30 Loader
Main manual March 2013

CAN
The ds30 Loader supports boot loading on the CAN bus. See table 1 for available firmwares
and table 2 for supported CAN adapters. CAN operation is not available in the free edition.

Device Family Firmware available Supported DLC


PIC12 n/a ‐
PIC16 n/a ‐
PIC18 yes 1‐8*
PIC24F n/a ‐
PIC24FJ n/a ‐
PIC24H yes 1‐8*
PIC24E yes 1‐8
dsPIC30F yes 1‐8
dsPIC33FJ yes 1‐8*
dsPIC33E yes 1‐8
PIC32 yes 1‐8
Table 1. Available CAN firmwares, * = older version may only support a DLC of 1.

Adapter Supported Windows Linux Mac OS X


bit rates x86 x64 x86 x64 x86 x64
10k, 20k, 50k, 100k,
IXXAT 125k, 250k, 500k, 800k, X X ‐ ‐ ‐ ‐
and 1M
50k, 62k, 83k, 100k,
Kvaser 125k, 250k, 500k, and X X ‐ ‐ ‐ ‐
1M
100k, 125k, 250k, 500k,
Vector X X ‐ ‐ ‐ ‐
and 1M
5k, 10k, 20k, 50k, 100k,
Peak 125k, 250k, 500k, and X X ‐ ‐ ‐ ‐
1M
10k, 20k, 50k, 100k,
Lawicel
125k, 250k, 500k, 800k, X X X X X X
USBtin
1M
10k, 20k, 50k, 100k,
IS‐CAN 125k, 250k, 500k, 800k, X X ‐ ‐ ‐ ‐
1M
ESD
IntrepidCS Contact
NI‐CAN ‐
X = supported and recommended ‐ = not supported
Table 2. Supported CAN adapters

Copyright 2010-2013 MG Digital Solutions 10 / 27


ds30 Loader
Main manual March 2013

Lawicel
There may be issues related to Lawicel CAN adapters, see the Trouble shooting‐Known issues
section in this document.

The Lawicel CAN232 adapter is shipped with the baud rate set to 57600. The baud rate can
be increased for a performance improvement; it is done in the configuration window
available in ds30 Loader GUI. The serial interface baud rate cannot be changed with the ds30
Loader console application.

If the ds30 Loader console application is used, the serial interface baud rate must be set
manually in the Lawicel port configuration file to reflect the baud rate the Lawicel adapter is
configured for.

IXXAT
There may be issues related to IXXAT CAN adapters, see the Trouble shooting‐Known issues
section in this document.

The bitrates can be fully customized by editing the ixxatBitRates.xml file. It is located in the
same directory as the ds30 Loader executables.

Vector
The bitrates can be fully customized by editing the vectorBitRates.xml file. It is located in the
same directory as the ds30 Loader executables.

Copyright 2010-2013 MG Digital Solutions 11 / 27


ds30 Loader
Main manual March 2013

Configuration
This section is valid for ds30 Loader GUI, ds30 Loader console and the ds30 Loader API.

Basic settings
Port name
The name of the port that will be used to communicate with the boot loader firmware.

Baud rate
The baud/bit rate that the port will be setup for prior to communicating with the boot loader
firmware.

Write flash
When checked, the flash memory is written during a write operation. This is disabled if the
chosen hex‐file does not contain any program memory locations.

Write eeprom
When checked, the eeprom memory is written during a write operation. This is disabled if
the chosen hex‐file does not contain any eeprom memory locations.

Read flash
When checked, the flash memory is read during a read operation.

Read eeprom
When checked, the eeprom memory is read during a read operation.

Serial
Flow control
Sets the serial port flow control mode.

CAN
PIC ID
This setting is only available for CAN ports, it specifies the PIC CAN ID, and it should be set to
the same value as in the boot loader firmware. This can be entered as decimal (example 10)
or hex (example 0xa).

GUI ID
This setting is only available for CAN ports. It specifies GUI CAN ID and it should be set to the
same value as in the boot loader firmware. This can be entered as decimal (example 10) or
hex (example 0xa).

Copyright 2010-2013 MG Digital Solutions 12 / 27


ds30 Loader
Main manual March 2013

Extended frames
When set extended frames are sent and only extended frames are received.

DLC
This setting determines how many bytes of data will be send in each CAN frame. Not that
not all CAN firmwares support high DLC than 1.

Advanced
This page contains advanced settings that are normally not used.

Don’t write goto to the user application


When enabled, the first instructions in the hex file will not be moved to just before the boot
loader. This can be useful when writing part of an application or only data to flash.

Allow overwrite of the boot loader


When a hex file is parsed there is control to make sure that the contents will not overwrite
the boot loader, by enabling this setting that control is disabled. This does not bypass the
firmwares own overwrite protection if any.

Write configuration bits


When checked, the configuration bits is written during a write operation. This is disabled if
the chosen hex‐file does not contain any configurations bits or if the hex‐file contains more
configuration bit locations than the selected device has. Writing configuration bits are only
possible once per power on cycle.

Custom boot loader


Allows proper operation with custom boot loader firmwares where size and placement has
changed. Great care must be taken to set correct custom placement and size, they must
match the BLPLP and BLSIZEP defines in the firmware. If a write is made with the wrong
custom parameters, the boot loader may get broken if the firmware doesn’t feature
overwrite protection.

Auto baud rate


When enabled, an auto baud rate synchronization character is sent prior to the write, read
and check for boot loader operations. The firmware must be set‐up for auto baud rate
detection. Not all firmwares come with this feature.

Echo verification
If the device hardware or firmware is set‐up to echo all received data this option must be
enabled. When enabled, the ds30 Loader engine will compare all sent data with the echo
and give an error if there is a mismatch.

Copyright 2010-2013 MG Digital Solutions 13 / 27


ds30 Loader
Main manual March 2013

Put CRC before goto


Calculates a 16‐bit (14‐bit for PIC12 and PIC16) checksum value of the program memory and
stores it just before the user application goto that in turn is placed just before the boot
loader.

Don’t write empty pages


When this is enabled pages that only contain 0xff will not be written. This may decrease
write time and may also resolve the “The hex‐file contains code that will overwrite the boot
loader” message.

Don’t set goto to bl at 0x00


Usually a goto to the boot loader is placed at 0x00. When this option is checked, the first few
words at 0x00 will not be modified. If a hex file that contains data in the first page is written
with this option enabled and the boot loader firmware does not feature goto protection, the
boot loader will not work any more because it will not be called on start‐up.

Timing
Hello timeout
Specifies the time to send the hello command before giving up when no response is
received.

Poll time
Specifies the interval at which the hello command is sent to the boot loader.

Timeout
Specifies the communication timeout.

Delay after port open


This delay is issued right after the port is opened. It can usually be kept at 0.

Reset
RTS
When enabled, the RTS pin is held high prior to communication with the firmware. The value
of reset time specifies the time the RTS pin is held high. This is only available for serial ports
and hardware support must be present.

DTR
When enabled, the DTR pin is held high prior to communication with the firmware. The
value of reset time specifies the time the DTR pin is held high. Hardware support must be
present. This is only available for serial ports.

Copyright 2010-2013 MG Digital Solutions 14 / 27


ds30 Loader
Main manual March 2013

Command
When enabled, a command is sent to the device to request reset or loading of the boot
loader. When a CAN port is used, the macros $PICID and $GUIID can be used, they will be
expanded to a two or four‐byte big endian value depending on if extended is used or not.

The value of reset time specifies the time to wait after the command is sent before trying to
communicate with the boot loader.

The format of the data is hexval1;’string’;”string”….


Example hex only: 0;11;f;ab;3e
Example strings only: ‘Hello’;”Reset”
Example mixed: a5;’Reset’

ID
The CAN id to be used when sending the reset command.

DLC
The CAN DLC to use when sending the reset command.

Baud rate
The baud rate to use when sending the reset command.

Activation
RTS
When checked, the RTS pin is used to activate the device by holding it high during a write
operation. Hardware support must be present.

DTR
When checked, the DTR pin is used to activate the device by holding it high during a write
operation. Hardware support must be present.

Security
Password
The password will be sent before any boot loader operation is performed.

Copyright 2010-2013 MG Digital Solutions 15 / 27


ds30 Loader
Main manual March 2013

Operation
Parsing of hex-file
The following operations take place during the parsing of a hex file:

Validation
The hex file is validated. Line checksums, file format and file completeness is checked. If any
error is detected, the parsing is aborted.

Data collection
All data found in the hex‐file that fits in the selected devices memory area are stored in RAM
buffers.

Check of data that could overwrite the boot loader


If data found in the hex‐file belong to the same memory space as the boot loader, a warning
is displayed and the Write program check box gets disabled.

Check and move of GOTO


This step is not performed if the hex‐file is encrypted. If no GOTO is found at address 0x00
the boot loader does not know how to load the user application and the Write program
check box gets disabled. If a GOTO at 0x00 is found, it is moved to the two words just before
the boot loader.

Counting of data
The data in the buffers are counted for presentation.

Set GOTO to boot loader


A GOTO to the boot loader is inserted in the first words beginning at 0x00.

Write
The following operations take place during a write operation:

Raise of process priority


If the poll time is set lower than 100ms, the GUI process priority is raised to above normal.

Device reset
If activated in the reset tab, the device is reset.

Auto baud rate


If auto baud rate is checked, the auto baud rate synchronization character (0x55) is sent
using poll time until time out is reached or the boot loader responds.

Copyright 2010-2013 MG Digital Solutions 16 / 27


ds30 Loader
Main manual March 2013

Find boot loader


The hello command is sent using poll time until time out is reached or the boot loader
responds. The boot loader responds with device id and firmware version. The received
device id is checked against the selected device in the GUI.

Determine boot loader size


The boot loader size is determined based on the firmware version.

Parse hex-file
The hex‐file is parsed if needed depending on if the determined boot loader size is different
from the one used during last parse.

Write
Program, eeprom and configuration bits are sent for write by the firmware. If checksum
error is detected by the firmware, the GUI retries 3 times. If all 3 tries fail, the write
operation is aborted.

Copyright 2010-2013 MG Digital Solutions 17 / 27


ds30 Loader
Main manual March 2013

Boot loader upgrade procedure

This is not recommended and support is not guaranteed.

This guide assumes you have the ds30 Loader installed in the default location. The default
location may differ between different firmware versions. Follow these steps carefully. The
most critical step is 16: if it fails the boot loader is likely to stop working.

1. Make a copy of boot loader MPLAB project directory.


2. Open the MPLAB project of the temporary boot loader created in the previous step
3. Open settings.inc
4. Disable goto protection if available
5. Enable boot loader protection if available
6. Change the boot loader placement, BLPLP (in older versions this define may be
located in ds30loader.s/asm):
Device Boot loader placement of temporary
family boot loader, BLPLP/BLPLR
PIC16F Upgrade is not supported
PIC18F BLPLP × 2 + 1
PIC18FJ BLPLP + 2
PIC24F BLPLR × 2 + 1
PIC24FJ BLPLP + 2
PIC24H BLPLP + 2
dsPIC30F BLPLR × 2 + 1
dsPIC33FJ BLPLP + 2

7. Build the project, Menu Project‐>Make or F10


8. Open ds30 Loader GUI and choose the hex file generated in the previous step
9. Write the temporary boot loader as you would with any hex file
10. If not already activated, activate advanced mod on the menu View‐>Advanced mode.
11. Check “Don’t write goto at 0x00” under the advanced tab
12. Check “Custom boot loader” under the advanced tab
13. Put value of BLPLP/BLPLR from the temporary boot loader the placement textbox
14. Put value of BLSIZEP/BLSIZE from temporary boot loader in the size textbox
15. Choose the hex file of the new boot loader
16. Make sure the temporary boot loader is active, either using time or use a led to
indicate that the temporary boot loader is active.
17. Write
18. The boot loader upgrade is finished

Copyright 2010-2013 MG Digital Solutions 18 / 27


ds30 Loader
Main manual March 2013

Troubleshooting
Known issues
 With the Lawicel CAN adapters read operation is not possible for most combinations
of bit rate and serial interface baud rate. Typically any bit rate above 50k will not
work for read flash operation. Write operation still works.
 The IXXAT ISB‐to‐CAN compact adapter takes several hundred milliseconds to setup.
This means that the firmware timeout cannot be set shorter than this if a reset
command is used and the application uses a different bit rate than the boot loader.

Error messages

Trouble Possible cause Solution


Broken chip Replace the chip.
Worn out flash Replace the chip.
Chip is used Read data sheet and make
outside specifications sure all specifications are
“Verification failed" met
Code protection is used If code protection is used the
device should be completely
erased before the boot
loader is written.
“Uart rx buffer not empty as This could happen if the Restart the device before
expected (is device sending device is not restarted pressing download.
data?)” properly and is sending data
“Hardware detected a This might happen when the Try a different baud rate,
framing error” baud rate error is just on the higher or lower. Needs to be
limit. changed in both the boot
loader firmware and the
host application.
Try another com‐port.

“The hex‐file contains code This occurs when the loaded Select correct device.
that will overwrite the boot hex‐file contains memory Set custom boot loader
loader” locations that could properties under the
overwrite the boot loader. Itadvanced tab to the values
can also occur if the wrong from the firmware, usually
device is selected. called BLPLP and BLSIZEP in
settings.inc.
Because the application does Free up program memory if
not know the actual boot needed.

Copyright 2010-2013 MG Digital Solutions 19 / 27


ds30 Loader
Main manual March 2013

loader size prior to Reserve boot loader memory


communication with the space in the application
boot loader it assumes a linker script.
size. This value might be
wrong; one can tell the
application the correct value
under the advanced tab.

“Hex‐file contains more If you use the export Use the hex‐file produced by
config locations than the function from MPLAB this the assembler or linker.
device has” might happen.

“Last row containing configs On PIC18FJ, PIC24FJ, and on To write the last page in
was found in hex file, last some PIC24E/dsPIC33E flash, check the write configs
page has been disabled. devices the configuration checkbox under the
Consult manual for more words are stored as the last advanced tab.
information.” words in the ordinary flash
address space. The It is unlikely that the last
configuration words are vital page will contain any code,
to the PIC operation. To therefore it is usually safe to
avoid corrupting the not write the last page and
configuration words or this is also recommended.
changing them which could
lead to the boot loader not
functioning properly the last
page in flash will not get
written.

Copyright 2010-2013 MG Digital Solutions 20 / 27


ds30 Loader
Main manual March 2013

HW schematics
UART / software UART
This is just a sample implementation of UART communication. The schematic comes without
warranty.

Components
Name Value Comment
IC1 PIC Required PIC microcontroller
IC2 MAX202 Required RS232 level converter
X1 DB9 Optional Connector
R1 10kΩ Required Master clear pull-up
C1 100n Recommended Decoupling capacitor
C2 10µF Recommended Filter capacitor
C3 100nF Recommended Decoupling capacitor
C4 100nF Required Charge pump capacitor
C5 100nF Required Charge pump capacitor
C6 100nF Required Charge pump capacitor
C7 100nF Required Charge pump capacitor
R2 10kΩ Optional Reset by RTS, base current limiter
R3 10kΩ Optional Reset by RTS, base pull-down
D1 1N4148 Optional Reset by RTS, RTS signal rectifier
Q1 BC547 Optional Reset by RTS, RTS signal inverter

Schematic

Copyright 2010-2013 MG Digital Solutions 21 / 27


ds30 Loader
Main manual March 2013

CAN
This is just a sample implementation of CAN communication. The schematic comes without
warranty.

Components
Name Value Comment
IC1 PIC Required PIC microcontroller
U1 MCP2551 Required CAN transceiver
X1 DB9 Optional Connector
R1 10kΩ Required Master clear pull-up
R2 120Ω Optional Bus termination
R3 22k Ω Required Slew rate control, see the datasheet
C2 10µF Recommended Filter capacitor
C3 100nF Recommended Decoupling capacitor

Schematic

Copyright 2010-2013 MG Digital Solutions 22 / 27


ds30 Loader
Main manual March 2013

Appendix A – Links
ds30 Loader website
http://www.ds30loader.com

ds30 Loader free edition website


http://mrmackey.no‐ip.org/elektronik/ds30loader/

Microsoft Visual C# express edition


http://www.microsoft.com/express/vcsharp/

Mono / MonoDevelop
http://www.mono‐project.com

Eagle
http://www.cadsoft.de

Copyright 2010-2013 MG Digital Solutions 23 / 27


ds30 Loader
Main manual March 2013

Appendix B – memory map

a. The goto application word at 0x00 is normally created automatically by the compiler.
The GUI moves the goto to just before the boot loader code.
b. The user application is not affected by the boot loader
c. A new goto at 0x00 pointing to the boot loader code is created by the GUI.
d. The boot loader code is normally placed at the end of the memory.

Without bootloader With bootloader With bootloader


START OF
EXECUTION
a GOTO USER c GOTO c GOTO
APPLICATION BOOTLOADER BOOTLOADER

b b b

USER USER
APPLICATION APPLICATION

USER
APPLICATION

a GOTO USER
APPLICATION
a GOTO USER
APPLICATION d
d BOOTLOADER
BOOTLOADER
CONFIGS

PIC16, PIC18F, PIC24F, PIC18FJ, PIC24FJ


PIC24H, dsPIC

Copyright 2010-2013 MG Digital Solutions 24 / 27


ds30 Loader
Main manual March 2013

Appendix C – Write time samples


These are sample times and should not be seen as a warranty, performance may be different
in your application. Data is actual data that ends up in the flash memory.

UART data [kB] baud rate time [s] kB/s Device


PIC12F 3,1 115 200 5,5 0,6 PIC12F1822
PIC16F 14,0 115 200 16,5 0,8 PIC16F1936
PIC18F 31,5 115 200 8,3 3,8 PIC18F2550
PIC18FJ 14,0 115 200 2,8 5,0 PIC18F24J11
PIC24F 15,5 115 200 2,3 6,7 PIC24F16KA102
PIC24FJ 125,0 115 200 15,5 8,1 PIC24FJ128GA010
PIC24HJ 126,5 115 200 15,8 8,0 PIC24HJ128GP504
PIC24E 510,0 115 200 57,9 8,8 PIC24EP512GU810
dsPIC30F 47,3 115 200 7,7 6,1 dsPIC30F4011
dsPIC33FJ 254,5 115 200 31,9 8,0 dsPIC33FJ256GP710
dsPIC33E 510,0 115 200 58,1 8,8 dsPIC33EP512MU810
PIC32MX 508,0 115 200 69,4 7,3 PIC32MX795F512L

CAN data [kB] bit rate time [s] kB/s Device


PIC18F 61,6 250 000 15,1 4,1 PIC18F66K80
PIC24HJ 126,5 250 000 40,0 3,0 PIC24HJ128GP504
PIC24E 510,0 250 000 46,5 11,0 PIC24EP512GU810
dsPIC30F 47,0 250 000 5,9 8,0 dsPIC30F4011
dsPIC33FJ 253,0 250 000 84,0 3,0 dsPIC33FJ256GP710
dsPIC33E 510,0 250 000 45,8 11,1 dsPIC33EP512MU810
PIC32MX 508,0 250 000 51,0 10,0 PIC32MX795F512L

Copyright 2010-2013 MG Digital Solutions 25 / 27


ds30 Loader
Main manual March 2013

Appendix D - Files
Package content

File Description
\copying.txt The license for ds30 Loader
\bin Contains binaries
\bin\canlibCLSNET.dll Use by the Kvaser CAN port plug‐in
\bin\PCANBasic.dll Used by the PCAN CAN port plug‐in
\bin\PCANBasic_x64.dll Used by the PCAN CAN port plug‐in, this needs to be
manually renamed to PCANBasic.dll on x64 systems.
\bin\PCANBasic_x86.dll Used by the PCAN CAN port plug‐in, this needs to be
manually renamed to PCANBasic.dll on x86 systems.
\bin\vcinet2.dll Used by the IXXAT CAN port plug‐in
\bin\vxlapi.dll Used by the Vector CAN port plug‐in
\bin\vxlapi64.dll Used by the Vector CAN port plug‐in
\bin\vxlapi_NET20.dll Used by the Vector CAN port plug‐in
Requires: vxlapi.dll
\bin\ds30LoaderGui.exe Graphical user interface for ds30 Loader
\bin\ds30LoaderConsole.exe Console application for ds30 Loader.
\bin\ixxatBitRates.xml Contains CAN timings used by IXXAT CAN port plug‐in
for different bit rates
\bin\vectorBitRates.xml Contains CAN timings used by IXXAT CAN port plug‐in
for different baud rates
\documentation Contains all documentation for the ds30 Loader
\firmware xxx Contains a MPLAB IDE project for a single Microchip
device family
\firmware xxx\ds30loader.mcp MPLAB IDE project file
\firmware xxx\src\devices.inc Contains device constants
\firmware xxx\src\settings.inc Contains boot loader settings that should be
checked/changed before download
\firmware xxx\src\user_init.inc User initialization and exit code
\firmware xxx\src\ds30loader.s/asm Contains the boot loader code

Files created by ds30 Loader


Created files are usually placed in user home directory\ .ds30Loader

File Description
settingsPortLawicel.xml Settings saved by Lawicel CAN port plug‐in
settingsPortSerial.xml Settings saved by serial port plug‐in
settingsPortVector.xml Settings saved by Vector CAN port plug‐in
settings.xml GUI settings

Copyright 2010-2013 MG Digital Solutions 26 / 27


ds30 Loader
Main manual March 2013

recentfile*.xml GUI settings for recent files

Copyright 2010-2013 MG Digital Solutions 27 / 27

You might also like