EVBplus MiniDragon-Plus2 Trainer User manual

MiniDragon-Plus2 Trainer
ForFreescaleHCS12microcontrollerfamily
User’sManual
Revision 1.03

Table OF Contents
Chapter 1. Introduction...........................................................................................................................4
1.1 Welcome....................................................................................................................................4
1.2 MC9S12DG256 features and memory map..........................................................................5
1.3 On-board hardware features..................................................................................................8
1.4 I/O pin usage.............................................................................................................................9
Chapter 2. Quick Start............................................................................................................................. 12
2.1 Install software from CD ...................................................................................................... 12
2.2 Getting Started ...................................................................................................................... 13
2.3 Test hardware........................................................................................................................ 15
Chapter 3. Software Desriptions.........................................................................................................16
3.1 Bootloader and D-BUG12 monitor..................................................................................... 16
3.1.1 EVB mode .................................................................................................................. 16
3.1.2 Jump to EEPROM mode.......................................................................................... 17
3.2.3 BDM POD mode........................................................................................................ 17
3.2.4 Bootloader mode ...................................................................................................... 20
3.2 Making a simple assembly program in RAM.................................................................... 21
3.3 Software development ......................................................................................................... 23
Chapter 4. Hardware Descriptions......................................................................................................25
4.1 Power LED............................................................................................................................. 25
4.2 Jumper switches and pushbuttons.................................................................................. 25
4.3 Seven-Segment LED display.............................................................................................. 25
4.4 Trimmer pot........................................................................................................................... 25
4.5 Speaker.................................................................................................................................. 26
4.6 Dual RS232 communication ports.................................................................................... 26
4.7 External SPI interface.......................................................................................................... 27
4.8 Servo motor controllers...................................................................................................... 27
4.9 Dual H-Bridge for DC motor and Stepper motor controllers........................................ 27
2

4.10 Temperature sensor........................................................................................................... 27
4.11 LCD display module........................................................................................................... 27
4.12 Keypad ................................................................................................................................. 28
4.13 All jumper settings.............................................................................................................. 29
Chapter 5. EmbeddedGNU..................................................................................................................30
Chapter 6. Code Warrior and serial monitor.....................................................................................32
Chapter 7. PLL code.............................................................................................................................33
Chapter 8. Appendix ............................................................................................................................34
8.1 D-Bug12 utility routines..................................................................................................... 34
8.2 Interrupt vector tables........................................................................................................ 35
8.3 Useful web links................................................................................................................. 38
8.4 Troubleshooting notes....................................................................................................... 38
3

Chapter 1. Introduction
1.1 Welcome
Thank you very much for purchasing the MiniDragon-Plus2 trainer. The MiniDragon-Plus2 trainer
is a low-cost, feature-packed training board for the Freescale HCS12 microcontroller family. It is
compatible with the Freescale 9S12DP256EVB board and other similar development boards on
the market today, but it also incorporates many on-board peripherals that make this board one of
the best trainers in universities around the world.
For engineers, it is a convenient prototype system suitable for designers who want to rapidly
develop and prototype new HCS12 applications. For students, it can not only to be used as a
general trainer for freshman and sophomore students, but also as a powerful platform for senior
projects as well. The compact size and new features of the MiniDragon-Plus2 board create a new
potential for students at every level.
The MiniDragon-Plus2 trainer kit comes with the following items:
1. MiniDragon-Plus2 board
2. CD ROM which contains:
a. AsmIDE with HCS12 assembler
b. Sample programs with source code
c. Freescale application notes for the HCS12
d. Data sheets for on-board hardware
e. User’s manual
f. Reference documents
3. RS232 cord
4. 110V AC adapter for North America customers
The specification of the AC adapter is:
DC input: 110V
DC output: 7.5V-9V
Current rating: 300mA
Type of plug: 2.1mm female barrier plug, center positive
The AC adapter is only available to North American customers.
WARNING: If more power is needed in some applications, you should upgrade the AC adapter.
Otherwise, the board could keep resetting itself when the VCC drops below 4.6V.
If your board sometimes resets by itself you need to upgrade your AC adapter to 9VDC
output at 800mA or at 1A. Do not use an AC adapter whose DC output voltage is rated
higher than 9V with this board. If an AC adapter is rated for 9V at 300mA it should have
an output DC voltage about 12.5V without a load, 9V with a full load.
4

1.2 MC9S12DG256 features and memory map:
The MiniDragon-Plus2 board may come with theMC9S12DP256CCPV or the
MC9S12DG256CVPE installed. The MC9S12DG256 is the best replacement for the
MC9S12DP256 since the latter has been discontinued by Freescale. The only difference
between DG256 and DP256 is the number of CAN ports. The DG256 has 2 CAN ports, but the
DP256 has 5 CAN ports. Other than the different number of CAN port these two microcontrollers
have the same features. If you don't use more than 2 CAN ports these two chips are identical
and all datasheets and manuals for the DP256 can be used for the DG256.
The MC9S12DG256 microcontroller consists of a powerful 16-bit CPU (central processing unit),
256K bytes of flash memory, 12K bytes of RAM, 4K bytes of EEPROM and many on-chip
peripherals.
The main features of the MC9S12DG256 are listed below:
• Powerful 16-bit CPU
• 256K bytes of flash memory
• 12K bytes of RAM
• 4K bytes of EEPROM
• SCI ports
• SPI ports
• CAN 2.0 ports
• I2C interface
• 8-ch 16-bit timers
• 8-ch 8-bit or 4-ch 16 bit PWM
• 16-channel 10-bit A/D converter
• Fast 25 MHz bus speed via on-chip Phase Lock Loop
• BDM for in-circuit programming and debugging
• 112-pin LQFP package offers up to 91 I/O in a small footprint
5

Fig 1-1: MC9S12DG256 Memory map
6

Fig 1-2: MC9S12DG256 MCU block diagram
7

Fig 1-3: MC9S12DG256 MCU pin assignments
1.3 On-board hardware features:
The MiniDragon-Plus2 board includes the following features:
1. Dual RS232 communication ports
2. CAN port
3. SPI expansion port for interfacing external SPI devices
4. Four robot servo controllers with terminal block for external 5V
5. 7-segment LED display
6. Two jumper switches
7. Two push button switches
8. 5V regulator with DC jack
9. Speaker to be driver by timer, or PWM signal for alarm or music applications.
10. Dual H-Bridge for controlling two DC motors or one Stepper motor
8

11. Power-On LED indicator
12. BDM-in connector to be connected with a BDM from multiple vendors for debugging
13. BDM POD mode for programming other HCS12 boards. No extra hardware needed
14. Abort switch for stopping program when program is hung in a dead loop
15. Mode switch for selecting 4 operating modes: EVB, Jump-to-EEPROM, BDM POD and
Bootloader
16. 4 X 4 keypad header
17. Wytec’s TinyBee 3-axis accelerometer interface or GP2-D12 distance measuring sensor
interface for distance measurement
18. Potentiometer trimmer pot for analog input
19. Temperature sensor
20. Female or male headers provides all I/O pins of the MC9S12DG256
21. 400-tie solderless breadboard included
22. Small PC board size is 5.25" X 3.40"
The MiniDragon-Plus2 board has the following features as options:
23. RF transmitter
24. RF receiver
25. 4 X 4 keypad
26. 16X2 LCD
27. RTC
28. RS485 communication
29. Form C relay output rated at 3A/30V or 1A/125V
1.4 I/O Pin Usage
Many I/O pins of the MC9S12DG256 on the MiniDragon-Plus2 board are used by on-board
peripherals, but thanks for the large 112-pin LQFP package, there are still many I/O pins available
for your circuits on the breadboard. Also it’s unlikely that all on-board peripherals will be used by
one application program. So the I/O pins on unused peripheral devices can still be used by your
circuits on the breadboard. For instance, if you don’t connect a keypad, the entire port A will be
available to your circuits. If you don’t use LCD, the port K will be available as well. Port B drives
H-Bridge, but if you don’t connect a motor, the port B can drive any other I/O devices on the
breadboard.
9

Pin Name Pin # I/O Usage
PA0 Pin 57 Col_0 of keypad (output)
PA1 Pin 58 Col_1 of keypad (output)
PA2 Pin 59 Col_2 of keypad (output)
PA3 Pin 60 Col_3 of keypad (output)
PA4 Pin 61 Row_0 of keypad (input)
PA5 Pin 62 Row_1 of keypad (input)
PA6 Pin 63 Row_2 of keypad (input)
PA7 Pin 64 Row_3 of keypad (input)
PB0 Pin 24 H-bridge (output)
PB1 Pin 25 H-bridge (output)
PB2 Pin 26 H-bridge (output)
PB3 Pin 27 H-bridge (output)
PB4 Pin 28 not used
PB5 Pin 29 not used
PB6 Pin 30 not used
PB7 Pin 31 not used
PE0 Pin 56 Abort switch SW8 (input)
PE1 Pin 55 not used
PE2 Pin 54 not used
PE3 Pin 53 not used
PE4 Pin 39 not used
PE5 Pin 38 not used
PE6 Pin 37 not used
PE7 Pin 36 not used
PH0 Pin 52 Segment A on display
PH1 Pin 51 Segment B on display
PH2 Pin 50 Segment C on display
PH3 Pin 49 Segment D on display
PH4 Pin 35 Segment E on display
PH5 Pin 34 Segment F on display
PH6 Pin 33 Segment G on display
PH7 Pin 32 not used
PJ0 Pin 22 not used
PJ1 Pin 21 not used
PJ6 Pin 99 not used
PJ7 Pin 98 not used
PK0 Pin 8 RS of LCD module (output)
PK1 Pin 7 EN of LCD module (output)
PK2 Pin 6 DB4 of LCD module (output)
PK3 Pin 5 DB5 of LCD module (output)
PK4 Pin 20 DB6 of LCD module (output)
PK5 Pin 19 DB7 of LCD module (output)
PK7 Pin 108 not used
Table 1-1: I/O pin usage list 1
10

Pin Name Pin # I/O Usage
PM0 Pin 105 CAN0
PM1 Pin 104 CAN0
PM2 Pin 103 not used
PM3 Pin 102 not used
PM4 Pin 101 not used
PM5 Pin 100 not used
PM6 Pin 88 not used
PM7 Pin 87 I/O for external SPI (J10)
PP0 Pin 4 EN12 of H-bridge (output)
PP1 Pin 3 EN34 of H-bridge (output)
PP2 Pin 2 not used
PP3 Pin 1 not used
PP4 Pin 112 Servo motor 1 (output)
PP5 Pin 111 Servo motor 2 (output)
PP6 Pin 110 Servo motor 3 (output)
PP7 Pin 109 Servo motor 4 (output)
PS0 Pin 89 SCI0 for PC communication, RECV (RJ11 connector P1)
PS1 Pin 90 SCI0 for PC communication, XMIT (RJ11 connector P1)
PS2 Pin 91 SCI1 for user applications, RECV (RJ11 connector P2)
PS3 Pin 92 SCI1 for user applications, XMIT (RJ11 connector P2)
PS4 Pin 93 MISO for external SPI (J10)
PS5 Pin 94 MOSI for external SPI (J10)
PS6 Pin 95 SCLK for external SPI (J10)
PS7 Pin 96 I/O for external SPI (J10)
PT0 Pin 9 not used
PT1 Pin 10 not used
PT2 Pin 11 not used
PT3 Pin 12 not used
PT4 Pin 15 not used
PT5 Pin 16 Speaker (output)
PT6 Pin 17 BDMout reset (output, used in POD mode only)
PT7 Pin 18 BDMout data line (bi-directional, used in POD mode only)
PAD0 Pin 67 D-bug12 mode select, S7
PAD1 Pin 69 D-bug12 mode select, S7
PAD2 Pin 71 Temperature sensor (U4, MCP9701A)
PAD3 Pin 73 Pushbutton S2
PAD4 Pin 75 Pushbutton S1
PAD5 Pin 77 Jumper switch S3
PAD6 Pin 79 Jumper switch S4
PAD7 Pin 81 Trimmer pot VR1
PAD8 Pin 68 X axis input for Wytec accelerometer module or ADC input for GP12D2
PAD9 Pin 70 Y axis input for Wytec accelerometer module or ADC input for GP12D2
PAD10 Pin 72 Z axis input for Wytec accelerometer module or ADC input for GP12D2
PAD11 Pin 74 not used
PAD12 Pin 76 not used
PAD13 Pin 78 not used
PAD14 Pin 80 not used
PAD15 Pin 82 not used
Table 1-2: I/O pin usage list 2
11

Chapter 2. Quick Start
By default the MiniDragon-Plus2 board is pre-installed with the bootloader (Freescale AN2153.pdf) and
the D-Bug12 monitor (Freescale DB12RG4.pdf). In chapters 2 and 3 the AsmIDE is used as the main
software tool to develop and debug assembly programs. If you prefer to use Code Warrior IDE for C
program development and your board is pre-installed, per your request, with the serial monitor
(Freescale AN2548.pdf), skip the chapters 2 and 3 except clicking on the setup.bat in the CD to
install software .
People often use different terminologies. In our product manuals, Download means to transfer a file
from PC to a development board, while Upload means to transfer a file from a development board to
PC. Through out the manual, left click means that you click the left button of the mouse and right
click means that you click the right button of the mouse.
2.1 Install software from CD:
The installation is automated by double clicking on the SETUP.BAT in the CD. It will create a
folder c:\MiniDragonP2\examples and copy all example program files from the CD to
c:\MiniDragonP2\examples
If the filename is only shown as SETUP, not SETUP.BAT, you should change a folder option of
the Explorer to show file extension. When a file's extension is hiding, it is hard to know what it is.
To have your files to be shown with extensions, click on the TOOL tab in Explorer menu, then
click on folder options, then click on view tab, finally un-check the item named ‘Hide extensions
for knowing file types’.
The AsmIDE is free to use under GPL license. If you would like to use it in the future, we
encourage you donate $5.00 to Eric Engler at: http://www.ericengler.com/AsmIDE.aspx
After the software is successfully installed, you can make a shortcut to AsmIDE.exe on the
desktop. It’s important to make a shortcut so that its target location is C:\MiniDragonP2, not
c:\Windows\desktop or other locations. First, right click the Start button, then left click “Explorer”,
left click on C:\MiniDragonP2, right click on AsmIDE.exe (an application program), left click “Send
to” and finally left click “Desktop” (do not click “COPY”). It will create an icon named “shortcut to
AsmIDE” on the desktop and you can rename it to MiniDragon-Plus2. You can double check the
target location by right clicking on the icon, then left click on “properties”. You should see that the
target location is C:\MiniDragonP2. If you want to make a shortcut for AsmIDE on the Desktop,
this is the correct way to do it. If you don’t follow this method, you may have a problem running
your program. Never drag the AsmIDE.exe to the desktop folder.
The default setting of AsmIDE for the MiniDragon-Plus2 board is created in a text file named
c:\MiniDragonP2\AsmIDE.ini. In the future if you get lost with all the changes, you always can
copy this file into the folder c:\MiniDragonP2.
12

2.2 Getting Started
To operate the MiniDragon-Plus2 board, follow steps1 through 5 below:
1. Make sure that the two DIP switches of S7 must be set in the “low” positions for EVB mode,
then plug the AC adapter into a wall outlet, and plug the female plug of the AC adapter into
the DC jack on the left side of the MiniDragon Plus2 board. After power up, the speaker
should chirp once, the 7-segment LED should display a diagnostic code of E-4-3
momentarily. The letter E stands for EVB mode, the number 4 stands for single chip mode
and the number 3 means that 2 switches (S3, S4) are open. Here is the code explanation:
First letter: E = EVB mode, J = Jump to EEPROM, P = Pod and b = Bootloader mode.
Second number: 4 = Single chip mode, 6 = Narrow expended mode, 7 = Wide exp. mode
Third number: 0 = S3 & S4 closed, 1 = S3 open & S4 closed, 2 = S3 closed & S4 open 3=
S3 & S4 open
If a 16x2 LCD module is connected the LCD should display the following message:
“MiniDragon+2 EVB” ; you can display your name on LCD and see details
“D-Bug12 EVB MODE” ; at CDROM\examples\name_display\readme.txt
If it does not occur check the Power-On LED indicator. The PWR LED is the decimal point of
the 7-segment. It is lit when VCC (5V) is present. If the PWR LED is off check the J14 on
solder side. It should be shorted by a solder bridge. Also check the output of the AC adapter.
It should be about 10V DC without a load (the output DC voltage of the AC adapter is rated
for 7.5V at 300mA, but usually the voltage is much higher without a load).
2. Plug the RS232 cable into the RJ11 jack P1 at the left side of the MiniDragon Plus2 board
and plug the DB9 female end of the cable into COM1 or COM2 port on your PC. The RJ11
jack P2 on the top edge of the board is the MC9S12DG256’s SCI1 port that can be used by
a user’s program.
3. To invoke the AsmIDE, you can right click the Start button, then left click “Explorer”, left click
on C:\MiniDragonP2 and finally, double left click on AsmIDE.exe. If you have created a
shortcut icon on the desktop, just double click the AsmIDE icon on the desktop.
4. The AsmIDE is simple and very easy to use. You only need to use three commands from the
AsmIDE for your HCS12 development work. Use the File command to edit your source
code, the Build->Assemble command to assemble your source code, and the Build-
>Download command to download an s19 file to the MiniDragon-Plus2 board.
5. If your PC has a COM port output (it’s a 9-pin male DB9 connector), you don’t need a USB to
RS232 converter. Usually the PC COM port will be COM1 or COM2. For setting the COM
port of the AsmIDE, you can click through View-> Option->Terminal Window Options menu,
then select the correct COM port and skip the step 6.
13

6. If your PC does not have a COM port output, you have to use a USB to RS232 adapter, the
COM port number that the AsmIDE uses must match the USB-to-Serial COM port number
that is assigned by Windows O/S. Windows O/S assigns the USB-to-Serial COM port
number randomly and it does not know which COM port number that AsmIDE is going to
use. In order to find the USB-to-Serial COM port number, you can click through control panel
-> systems -> hardware -> device manager -> ports, the USB-to-Serial COM port number
will appear ( In Windows Vista, you left click on Start, right click on Computer, left click on
propriety, then Device Manager and then Continue ).
For setting the COM port of the AsmIDE to match that USB-to-Serial COM port number, you
can click through View-> Option->Terminal Window Options menu, then select the correct
COM port from COM1 to COM8.
7. Also, set the COM port options at 9600, N, 8,1, and check the “enable the terminal window”
box.
8. After reset, the D-Bug12 monitor defaults baud rate at 9600 and Hyperbaud function is
disabled. If Hyperbaud function is enabled, the Hyperbaud toolbar button sends the BAUD
57600 command to the D-Bug12 monitor, and then it also changes the serial port to the
57600 baud rate. IMPORTANT: When you reset your board it will go back to 9600 baud
and you will see characters ‘aaaaaaaaaa’ on the screen. You will need to press the
Hyperbaud button once to return AsmIDE to 9600 baud, and press it again to get 57600
baud. To stay at the 57600 baud all the time, you need to press the Hyperbaud button twice
after every reset. The Hyperbaud function is disabled by default and it should only be used
by an experienced user, not a beginner.
9. You can program text values for function keys to be sent from the terminal window. Some
function keys are pre-programmed, but you can change it any time in configuration options
(View->Options->Terminal Func Keys).
In the View->Option->Assembler menu, make sure that the chip family is 68HC12, not
68HC11. If you would like to use your own assembler, you can replace the as12.exe with the
name of your own assembler.
10. The screen is divided into two windows. The top window is for editing your source code and
the bottom window is shared by the message window and the terminal window.
If the terminal options are set correctly, you should see the following prompt every time the
reset button on the MiniDragon-Plus2 board is pressed. If you do not see this, the bottom
window may be set for message window. Sometime it’s a little confusing when terminal
window is disabled and the message window does not display what you have typed. In order
to enable terminal window you have to click the terminal button in the bottom window to
enable the terminal window display, then move the cursor to any location in the terminal
window and click the left button on the mouse. After seeing a solid block cursor flashes, press
the <Enter> key and it will enable the terminal window.
D-Bug12 v4.0.0b32
Copyright 1996 - 2005 Freescale Semiconductor
For Commands type "Help"
>
14

2.3 Test Hardware:
To help users get up and running, the MiniDragon-Plus2 board comes with many fully debugged,
some fairly advanced ready-to-run sample programs including source code, not just "Hello World"
type demo programs. The hardware test program, test.asm, simultaneously scans the keypad,
plays a song, changes 7-segment display brightness by adjusting the trimmer pot and vary music
playing tempo according to temperature change.
All sample programs must be run from RAM in EVB mode. In order to run the test program in
EVB mode, the two DIP switches of S7 must be set in the “low” positions to match the picture for
EVB mode.
The steps to run your first sample program are as follows:
1. Click the File button to open the test.asm from c:\MniDragonP2\examples. After the
test.asm is loaded into the top window, you can view instructions of how to test all
hardware on the MiniDragon-Plus2 board.
2. Click the Build button to assemble code and generate the test.s19 file. This is how you
normally generate an s19 file. You can omit this step, because the test.s19 is already on
your hard disk.
3. Press the reset button on the board, you will see:
D-Bug12 v4.0.0b32
Copyright 1996 - 2005 Freescale Semiconductor
For Commands type "Help"
>
4. Type “LOAD” <Enter>.
5. Click the Build button. Select Download option and locate the file ‘test.s19’ for
downloading. If it prompts you with the “save changes?” message, you can ignore that
message and click the “No” answer.
6. After download is done, type “G 2000” <Enter> to run the test program.
All sample programs on the CD are developed in RAM. You can try to run a different example
program later after you have finished reading this manual. You should always press the reset
button before downloading a new program, because the new program may not work if an
interrupt was enabled by a previous program.
All example programs are fully debugged, so the assembler won’t generate an error. If you have
an error, even a warning error, in your program, you must correct it before it can generate an s19
file.
15

Chapter 3. Software descriptions
3.1 Bootloader and D-Bug12 Monitor
The MC9S12DG256 on the MiniDragon-Plus2 board is pre-loaded with bootloader and D-Bug12
monitor firmware and it will operate in 4 different modes depending on the setting of the 2-
position DIP switch, S7. After power up or reset, the MC9S12DG256 will read the PAD0 and
PAD1 to decide which mode to boot up.
The bootloader (AN2153.PDF), the D-Bug12 reference guide (DB12RG4.PDF) and the
MC9S12DG256 data book (MC9SDG256.PDF) are the most important documentation. They
can be found on the folder named C:\MiniDragonP2\document after software installation. The
HCS12 instruction set, register map and memory map can be found on page 26, 65 and 120 of
the data book, respectively.
The new D-Bug12 V4.x is much different and much larger (about 60K) than old D-Bug12 V2.x.
The $C000-$EFFF are just a part of the monitor, In 16-bit S1 record they are $C000-$EFFF. In
24-bit S2 record, they are $FC000-FEFFF (ppage=$3F). Since the ppage register deals with the
16K window $8000-$BFFF the addresses $C000-$FFFF are not affected by the ppage. The
other part of the monitor is at C0000-C87FF (16K window $8000-$BFFF when ppage=$30,$31
and $32). See details on page 20 of the app note AN2153 or page 71 of the D-Bug12 v4
reference guide on the CD.
3.1.1 EVB mode: PAD1=0, PAD0=0.
This is the standard debug environment running on the MC9S12DG256 for on-chip RAM
or EEPROM based code development. Using an IDE program to view and modify
registers and memory locations, you may set breakpoints, single step through programs,
and assemble and disassemble code as you would in a BUFFALO monitor based
Freescale 68HC11 EVB. It gives you 12K RAM and 3K EEPROM to develop and debug
your code. You must place your interrupt vectors at $3E00-$3E7F, because real interrupt
vector addresses are taken by bootloader, bootloader and D-Bug12 monitor will redirect
interrupts to the RAM interrupt vector table at $3E00-$3E7F.
After booting up in this mode, the LCD should display the following message:
“MiniDragon+2 EVB”
“D-Bug12 EVB MODE”
and you should see the following message on PC screen:
D-Bug12 v4.0.0b32
Copyright 1996 - 2005 Freescale Semiconductor
For Commands type "Help"
>
Typing “help” then <Enter> will display a list of available commands.
In this mode, you cannot erase or program on-chip flash memory.
If the D-Bug12 monitor is erased, the LCD will display the following message after reset:
“MiniDragon+2 EVB”
“ D-Bug12 ERASED ”
You can use bootloader to re-program D-Bug12 monitor into flash memory.
16

3.1.2 Jump-to-EEPROM mode: PAD1=0, PAD0=1
This mode enables the MC9S12DG256 to jump directly to the internal EEPROM at
location $0400 upon reset.
This mode makes the MC9S12DG256 a replacement for the old 68HC811E2
microcontroller, but it also gives you 3K EEPROM instead of 2K EEPROM with the
68HC811E2. The bus speed is 8MHz, one half of the crystal frequency by default, the
PLL function must be initialized by user’s code for a higher bus speed, because the D-
Bug12 monitor firmware that boosts bus speed to 24 MHz is bypassed. If you need to
auto start your code upon reset, the procedure is available in the folder named
eeprom_programming.
After booting up in this mode, the LCD should display the following message:
“MiniDragon+2 EVB”
“ JUMP TO EEPROM ”
3.1.3 BDM POD mode: PAD1=1, PAD0=0
In this BDM POD mode, the D-Bug12 firmware acts as a master to access all target MCU
resources on the target board (another MiniDragon-Plus2 board) via the BDM port in a
non-intrusive manner. It becomes a BDM that will have all the features that a standard
BDM has in debugging the target MCU. Also, it gains all the features a programmer has
for programming the flash memory of the MCU on the target board (another MiniDragon-
Plus2 board).
To use the master board as a programmer, you need a 6-pin ribbon cable to connect from
the BDM OUT of the master board to the BDM IN of the target board (make sure that the
orientation of the cable is correct). You don’t have to provide the power to both boards, but
only to one board. The master board communicates to a PC COM port while the target
board does not need to be connected to a PC COM port.
After booting up in this mode, the LCD should display one of the following two messages:
If the D-Bug12 monitor is erased, the LCD will display the following message after reset:
“MiniDragon+2 EVB”
“POD-Bug12 ERASED”
otherwise it will display:
“MiniDragon+2 EVB”
“ BDM POD MODE ”
and you should see the following message on PC screen:
Can't Communicate With Target CPU
1.) Set Target Speed (48000 KHz)
2.) Reset Target
3.) Reattempt Communication
4.) Erase & Unsecure
?
17

You first must set the target speed with the choice 1). After entering the first choice, you
will be prompted to enter the target speed. It’s the crystal frequency, not the bus speed
that is boosted up by the on-chip PLL. After a reset, before the PLL is enabled, the target
MC9S12DG256 is running from the crystal frequency, not the PLL frequency. Enter
16000 for the target speed. After the correct speed is entered, the master will try to
communicate with the target board. If it‘s not successful, enter choice 2) to reset the target
board.
Can't Communicate With Target CPU
1.) Set Target Speed (16000 KHz)
2.) Reset Target
3.) Reattempt Communication
4.) Erase & Unsecure
? 1
Enter Target Crystal Frequency (kHz): 16000
Can't Communicate With Target CPU
1.) Set Target Speed (16000 KHz)
2.) Reset Target
3.) Reattempt Communication
4.) Erase & Unsecure
? 2
When the communication is established, you will see the following sign-on message:
D-Bug12 v4.0.0b32
Copyright 1996 - 2005 Freescale Semiconductor
For Commands type "Help"
S>
You will notice that the debug prompt is “S>” in the POD mode, not just a “>” in the EVB
mode. The S> tells that this is the POD mode and the MC9S12DG256 on target (slave
board) is stopped. Sometimes the prompt could be a “R>” that means the target MCU is
running. If you see the “R>”, just type “reset” then <Enter> to reset the target and it will
come back to the “S>” prompt.
R>Reset <Enter>
S>
Note: The initial communication in POD mode does not always work smoothly and
sometimes the PC screen would only display an incomplete sign-on message. You need
to re-start it all over again by pressing reset buttons on both master board and target
board, then press the Enter key on PC keyboard. You cannot go to the next step until PC
screen shows the prompt ‘s>’.
In order to program the flash memory, you have to erase it by using the FBULK command.
S>fbulk <Enter>
S>
When the prompt “s>” returns, the FBULK command has already erased all of the flash
memory contents of the target MC9S12DG256 including the bootloader. If it returns with a
message “Flash or EEPROM Failed To Erase” the MC9S12DG256 is defective.
Now we are going to program the bootloader and the D-Bug12 into the flash memory of
the target MC9S12DG256.
Before we actually program the flash memory, we must understand there are two different
types of s-record file that can be generated by compilers and assemblers.
18

An s1-record uses a 16-bit starting address field while an s2-record uses a 24-bit starting
address field.
An s1-record file looks like this:
S123FFA0F64CF650F654F658F65CF660F664F668F66CF670F674F678F67CF680F684F6883D
S123FFC0F68CF690F694F698F69CF6A0F6A4F6A8F6ACF6B0F6B4F6B8F6BCF6C0F6C4F6C81D
S123FFE0F6CCF6D0F6D4F6D8F6DCF6E0F6E4F6E8F6ECF6F0F6F4F6F8F6FCF700F704F00009
S9030000FC
An s2-record file looks like this:
S2240FEFA0DB70DB66DB5CDB52DB48DB3EDB34DB2ADB20DB16DB0CDB02DAF8DAEEDAE4DADA41
S2240FEFC0DAD0DAC6DABCDAB2DAA8DA9EDA94DA8ADA80DA76DA6CDDD0DA62DA58DA4EDA4494
S2240FEFE0DA02DA0ADA12DA1ADA22DA2ADA32DA3AD9FAD9F2D9AFD98AD9D5EF00EF00EF0039
S9030000FC
We are not going to explain the s-record format here. If you would like to know more on
the subject, you can review the D-Bug12 reference guide on the CDROM
(BD12RG4.PDF). It explains the subject in great details. Right now, all you need to know
is that an s1-record file must be converted to an s2-record file before using the FLOAD
command. The “FLOAD” command in the D-Bug12 is for downloading an s2-record file.
Our MiniDragon Plus2 bootloader is modified from the Motorola’s BootDP256.asm. We
added our modification to the original source code and the s record file is generated by the
AsmIDE. It’s an s1-record file and we converted it into an s2-record file by using the
following commands:
Sreccvt –m c0000 fffff 32 –of f0000 -o Boot_MDP2_16MHz.s29
Boot_MDP2_16MHz.s19
Now we type “FLOAD” <Enter> at the prompt. Click the Build button, select the Download
option, and select the file named Boot_MDP2_16MHz.s29 located in the folder named
“D-Bug12_Monitor ”. You should see the following on the terminal window when
programming is done (when the prompt “s>” appears):
S>fload <Enter>
*****************************************************************************
S>
Now we are going to program the D-Bug12 monitor into the flash memory. We need to
type “FLOAD” <Enter> at the prompt. Click the Build button, select the Download option,
and select the file named DBug12v32_MDP2_16MHz located in the folder named “D-
Bug12_Monitor”. You should see the following on the terminal window when programming
is done (when the prompt “s>” appears):
S>fload <Enter>
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*****************************************************************************
*************************************************************
S>
19

With the bootloader and the D-Bug12 programmed in the flash memory, the target board
now becomes a true development board. That’s how we program the board before we
ship it. Your MiniDragon-Plus2 board actually becomes a programmer. You can then
repeat above steps as many times as you want. Just unplug the 6-pin BDM cable from
the target board, and then plug it into a new target board to program its flash memory with
these two files. You even don’t have to turn off the power while doing this.
For your convenience, we combined both the bootloader and D-Bug12 monitor into a
single s2 file named Boot_ DBug12v32_MDP2_16MHz .s29. In case you need to
update both of them, you can download this combined file.
The D-Bug12 monitor is an application program runs from the bootloader. If you program
the D-Bug12 portion of flash memory with your application program, your program will run
automatically in EVB mode after power up or reset. When running your code instead of
the D-Bug12 monitor, the bus speed is 8MHz, one half of the crystal frequency by default.
The PLL function must be initialized by your code for a higher bus speed, because the D-
Bug12 monitor firmware was not in flash memory anymore. For your convenience, we
include a PLL code template in chapter 7.
If you need to auto start your code upon reset, the procedure is available in the folder
named flash_programming.
3.1.4 BOOTLOADER mode: PAD1=1, PAD0=1
This bootloader allows you to erase/program flash memory and erase EEPROM. It is
mainly used to program the D-Bug12 monitor into flash memory or download a user’s fully
debugged code into the D-Bug12 portion of flash memory. The latter allows the board to
be operated in EVB mode and start your code every time the board is turned on or reset.
When you program your code into the D-Bug12 portion of flash memory, it wipes out the
D-Bug12 monitor. You can restore it any time, just as if you were downloading another
application program since the bootloader is not erased. You can erase and program the
D-Bug12 monitor portion of the flash memory of the MC9S12DG256 on its own board in
bootloader mode, but you cannot erase and program bootloader by itself. The bootloader
can only be erased by an external BDM via BDMin port.
After booting up in this mode, the LCD should display the following message:
“MiniDragon+2 EVB”
“ BOOT LOADER ”
and you should see the bootloader menu on PC screen:
MC9S12DG256 bootloader menu:
a) Erase Flash
b) Program Flash
c) Set Baud Rate
d) Erase EEPROM
?
The option a) will erase the D-Bug12 portion of flash memory, not the bootloader itself.
The option b) will program the D-Bug12 portion of flash memory, not the bootloader itself.
The file to be programmed into flash memory must be an s2-record file. If your assembler
and compiler generate s1-record files only, you must convert an s1-record file to an s-2
record file before programming flash memory with the bootloader.
20
Table of contents