ユーザーガイド

DDK0668T
6-ch FET H-Bridge モータコントロールボード
型名 6 Channel Motor Controller Board
ユーザーガイド
2008.01.12
Overview
Features 特長
各チャンネル連続2Aドライブ可能
12ⅤまでのDCモータに使用できます。
6チャンネル個別のスピード制御
PWM制御・最大周波数1.92kHz
USART(シリアル)通信
9600、19200、38400、57600、115200
I²C 通信インターフェイス装備(100kHzまたは400kHz)
Description 概要
この6chモータコントロールボードは6個までのDCモータをそれぞれ個別にスピ
ード制御できるもので、車輪走行の小型のロボット用に開発されましたが、もちろん他
のいろんな用途での使用もできます。
この6chモータコントロールボードは弊社ロボットTJ2使用のプログラム
「C-Style」で使えるように設計されていますが、I²C、または USART(シリアル)通信で
簡単に使用して頂けます。
Absolute Maximum Ratings 絶対最大定格
下記絶対最大定格を超えるストレスを加えると、ボード上のディバイスに恒久的な損傷を与え
ることがあります。また、絶対最大定格は条件内であっても長時間の使用を規定するものでは
ありません。使用に当っては下記の推奨操作範囲での使用をお勧めします。
モータ電圧 (VMOT)
コントロール端子電圧
モータ電流
- 0.3V to +20.0V
- 0.3V to +5.5V
12A continuous (2A/channel)
Recommended Operational Ratings
推奨操作範囲
モータ電圧 (VMOT)
コントロール端子電圧
モータ電流
+3.0V to +12.0V
+4.5 to +5.5V
0 to 6A continuous (1A/channel)
1
Device Details
This board is controlled by a PIC18F2431 microcontroller, which controls both the
PWM and communication signals.
There are three (3) PWM controlled FET H-bridge motor outputs on each side of the
PCB. Motors 1, 3 and 5 are on the left, and motors 2, 4, 6 are on the right. Each side
can drive up to 3A total current and each motor can drive up to 2A each. So 2A max
for one motor, 1.75A each for two motors and 1A each for 3 motors per side. Two
LED’s are paired with each motor output to indicate the “direction” of the motor, either
forward (green) or reverse (red).
Top View
モータ出力 2,4,6
モータ出力 1,3,5
PIC18F2431
マイコン
USART(シリアル)
通信コネクタ
I²C 通信
コネクタ
2
At the bottom of the board are three connectors, two on top and one on the bottom.
The blue connector is for I²C communication and the black one is for USART, which
can be modified to 232C level for PC communication. The red connector on the
bottom is the motor power supply. Any DC voltage between +0 and +12V can be
supplied here. A more detailed description of some of the features of these connectors
will follow in the next section.
Bottom View
モータ電源
コネクタ
3
Motor Connections
The red connector marked “Motor
Power” provides voltage (0 to
+12VDC) to only the motors. The
CPU is powered separately through
the I²C connection. The diodes
protect the circuit from over-current
and reverse voltage.
Please take care to use the
correct polarity and not to drive
current or connect voltage over
the maximum recommended
levels.
Control Connections
Serial Port
The black 4-pin connector on the 6-channel
motor controller board is the serial interface.
The standard level is TTL, and can be
connected directly to another PIC (or
micro-controller). By using a level converter,
you can connect the board to a PC and can
use the included software. Details about
controlling via the serial connection are found
in the user guide for the PC software.
Pin Assignment
Pin 1 - RX
Pin 2 - +5VDC
Pin 3 - TX
Pin 4 - GND
4
Control Connections Cont’d
I²C Port
The blue 4-pin connector should be
connected to a Master Controller, which
would provide +5VDC, ground, data and clock
for both the Master and the Slave. Sample
Master software for the Microchip PIC18F
series is included on the CD; however, I²C is
compatible with many micro-controllers. Make
sure when connecting, to have the correct
pins matched as shown on the PCB.
Pin Assignment
Pin 1 - SCL
Pin 2 - +5VDC
Pin 3 - SDA
Pin 4 - GND
Controlling the Motors
The motors are controlled using a 1.92 kHz PWM signal. The data to determine the speed
and direction of the motors is received from the Master through the I²C bus. The total
transmitted data is 6 bytes, plus the address byte.
The MSB of each byte indicates the direction of the motor. A “0” in the MSB would move
the motor in a forward direction, while a “1” would move the motor in the reverse direction.
The 7 LSB’s determine the speed (duty) of the motor (PWM output) from 0 to 100%.
(Note: any value over 100 or less than 0, will default the motor to 0% duty and the OFF
state)
The I²C Master should always send 6 bytes to the Slave, even if only one motor is used or
changed, because the order in which the data is received determines motor
number/speed/direction. A brief explanation of I²C will follow later.
5
Using C-Style
If you are using Top Junior 3 or Orca Junior 2, or another compatible ROBOSiTE
robot, just connect the “I2C” port on your robot to the “I2C” port on the motor controller
board. Then, you can easily control the motors using C-Style for TJ3/OJ2.
After installing/updating your C-Style, the window will look the same as pictured
below. It should not be different from the previous C-Style (depends on version). You
can also download the newest C-Style versions from our homepage at
http://www.daisendenshi.com/
6
Using C-Style (Cont’d)
Click on the “Options” tab at the top of the C-Style window and a drop-down menu will
appear as shown in the picture to the right.
Select “Use PWM Mode” using either your mouse or by pressing the “P” key on your
PC keyboard.
7
Using C-Style (Cont’d)
A new “PWM-6” icon should appear in the upper right-hand area of the icon window.
Also, the usual motor icon should have changed to a “PWM-2” icon. Your C-Style
should now look as it does below (depends on version).
8
Using C-Style (Cont’d)
Now, let’s place the “PWM-6” icon in the main window. If you don’t know how to do
this, please check the C-Style manual, also included in the CD.
The PWM control window should pop up, as seen below. From this window, you can
set all 6 PWM outputs to be transmitted to the motor controller board. If you don’t
want to change a motor’s previous settings, deselect the “Modify” check box. (Note:
6 bytes will still be transmitted, just using the previous data. Also, care should be
taken as to what the previous settings were)
9
Using C-Style (Cont’d)
Above is a larger image of the control window. By default, all of the “Modify” boxes
are checked and the PWM’s are set at 50% duty. To change the PWM duty, click the
arrows up or down (Double-arrow is 10% and the single-arrow is 1%) or use the
slide bar directly.
Now, let’s change some of the settings as pictured above. First, deselect the PWM
OUT 6. You will see that the control bar disappears. Remember, the previous
PWM settings will be sent, not the stop command. Slide the PWM OUT 1 bar all
the way to the top or click the double-arrow until it reaches the top. It should now
read 100%. Keep PWM OUT 2 at 50% but select the “Rev.” box. Do the same for
PWM OUT 4 to reverse the direction of the +V and GND. (Caution: Use reverse
only for motors and similar hardware. Reversing the polarity in regular circuits can
cause serious damage and/or injury!). Drag the slide bar on PWM OUT 3 all the
way down or click the double-arrow until it reaches 0%. When your window looks
like the one above, click “OK”.
10
Using C-Style (Cont’d)
Your C-Style window should look as it does above. The PWM duties are listed from
left to right (1-6). For unmodified duties a (***) will appear.
That’s all there is to it!
11
Using the Serial (USART) Port
If you are planning to control the DDK0668 from another microcontroller directly, no level
converter is needed. But, to use the included PC Tool, the USART must be converted to
RS-232C level. The ddkit0507 or ddkit0704 can be used for this purpose.
How to use the 6Ch MCB Tool. First, download the most recent version from
http://robosite.jp then copy the “ROBOSiTE_MCB_Tool.exe” file to
“C:¥Program Files¥Daisen¥ROBOSiTE MCBTool¥” on your PC, as shown below.
12
Once you have copied the file, it’s ready to be used. Just double click on the icon. (You
may want to make a shortcut on your desktop.)
After opening the tool, you should see a window similar to the one above. Please make
sure to have to most recent version.
The control window is quite similar to the dialog window in C-Style. The 2 extra buttons
are “Output On” and “Output Off”.
There are three ways to send the signal to your DDK0668. First, while the “Output Off” is
selected, set the slidebars to your desired settings. Then click the “Output On” button to
send the data. This method should be familiar if you have used C-Style before.
Second, while the “Output On” is selected, you can click the arrows or the slidebars
directly to control your motors in real-time. When “Output Off” is selected again, the Tool
sends the stop signal to all the motors and disables the real-time output of the slidebars.
Third, using the “Text Send” command, you can enter the text directly. Using this method,
you could create a script and run it from any terminal program. The pattern is as follows:
Ex. 1F010:2R030:3F050:4R070:5F090:6R100 then click the “Text Send” button.
In the example above, Motor 1 is 10% forward, Motor 2 is 30% reverse, Motor 3 is 50%
forward, Motor 4 is 70% reverse, Motor 5 is 90% forward and Motor 6 is 100% reverse.
13
All 6 sets need not be sent all at once as in the I2C case. If you only wish to modify
Motor 3, then 3F050 only can be sent. Also, the “:” is not necessary, except only to be
more readable. (Ex. 1F0102R0303F0504R0705F0906R100).
Upgrading DDK0668
Using the serial connection, you can update the firmware for your DDK0668. Connect
the board as usual, and then double-click in the bottom area of the main window. Then
“Update” will appear in the bottom corner.
You can now access the “Firmware Update” option in the “File” Menu.
Click “Firmware Update” and follow the instructions to download the new firmware.
For a detailed description of the UART Port, please refer to the Microchip homepage
(http://www.microchip.com).
14
Using I²C Directly
For a detailed description of the I²C Bus, please refer to the Microchip homepage
(http://www.microchip.com).
A sample code for I²C is included on the CD for Microchip PIC18F devices and
compatible. The included sample is setup to run at 400kHz, although DDK0668 can also
run at 100kHz. With only a few adjustments, you can easily add it into your code and
have direct control over the PWM output on the DDK0668 from your Master CPU. The
default address of the DDK0668 is 0x14.
First, make sure to have the proper references to D_I2C.c and D_I2C.h in your build
area and #include part of your code. You could also copy and paste the variables,
constants, prototypes and functions directly into your code.
Then add the line:
i2c_init();
somewhere in your initialize routine, or at the start of your main(); loop.
You will also need to set some registers needed for I²C to work properly, as well as an
interrupt to take care of the bit clearing that needs to be done. Add the following code
into your initialize routine:
// Enable interrupt priority
RCONbits.IPEN = 1;
// Enable all high priority interrupts
INTCONbits.GIEH = 1;
And then add the following in your function area to handle the SSPIF bit clearing:
////////////////////////////////////////////////////////////////
// high_interrupt routine
void high_handler (void){
//I2C
if (PIR1bits.SSPIF) {
PIR1bits.SSPIF = 0;
}
}
#pragma code high_interrupt = 0x0008
void high_int(void){
_asm goto high_handler _endasm
}
#pragma code
#pragma interrupt high_handler
////////////////////////////////////////////////////////////////
If you already have a high interrupt handler just add the following into it:
//I2C
if (PIR1bits.SSPIF) {
PIR1bits.SSPIF = 0;
}
I²C works by the Master first sending out a 7-bit address on the I²C bus, along with one
bit to determine read/write. The Slave with the matching address responds with an
“ACK”, or acknowledge. In I²C, “ACK” is logic low or zero (0). If the Master receives the
15
“ACK”, then the data is sent in 8-bit packets, followed by another “ACK” by the Slave, if
the data is received without error. If a “NAK”, or negative acknowledge, is received, the
program included in the ddk668 Motor Controller will repeat the data 10 times before
giving up. If the data is received the first time, it will not be repeated.
In order to correctly drive the motors, the DDK0668 needs one byte of data for each; 6
bytes total. Each byte consists of two parts. The Most Significant Bit (MSB), or bit 7 in
this case, contains the direction of the motor, 0 for forward and 1 for reverse. The
remaining bits (0-6) are for the PWM duty from 0-100. Any value over 100 or less than 0
will result in a 0 value and the motor will stop. Exactly 6 bytes must be sent to the
DDK0668 each time in order to correctly determine which motor gets which value. If less
or more than 6 bytes are sent (not including the address), the motors will move in an
unpredictable way.
An example of correct initialization would be to create a 6-byte buffer and a function
prototype (refer to the function in D_I2C.c as shown below).
// I2C Defines & variables
#define MAX_MSG_LEN
6
GLOBAL volatile unsigned char gPwm[MAX_MSG_LEN];
void pwm_out(void);
Then, to control the motors all you need to do is decide on the values for gPwm and then
call the pwm_out() function to send the data along the I²C bus to the DDK0668. For
example:
// Bit #’s
76543210
gPwm[0] = 0b10110010;
gPwm[1] = 0b00110010;
gPwm[2] = 0b10110010;
gPwm[3] = 0b00110010;
gPwm[4] = 0b00110010;
gPwm[5] = 0b00110010;
pwm_out();
Although you can set the values using decimal, hexadecimal or binary, please remember
that the MSB determines direction, so it helps to view your values in binary, at least on
paper. From the above list, you can easily see that gPwm[0] and gPwm[2] are in reverse
while the rest are in forward direction.
Disclaimer of Liability and Accuracy: Information provided by Daisen Electronic Industrial Co., Ltd. is
believed to be accurate and reliable. However, Daisen Electronic Industrial Co., Ltd. assumes no
responsibility for inaccuracies or omissions. Daisen Electronic Industrial Co., Ltd. assumes no
responsibility for the use of this information and all use of such information shall be entirely at the user’s
16
own risk.
Life Support Policy: Daisen Electronic Industrial Co., Ltd. does not authorize any Daisen Electronic
Industrial Co., Ltd. product for use in life support devices and/or systems without express written approval
from Daisen Electronic Industrial Co., Ltd.
17
MTR_2A/PGC
P0MTR02B/PGD
MTR_2B/PGD
P0MTR02A/PGC
P0R1102
MBRS340CT
LED2_fwd
P0R1301
8
P0MTR02B/PGD
MTR_2B/PGD
G
SP3055LD
10
P0U1C010
P0R1402
S
74HC08
P0PWM02
PWM_2
R14
100k
P0SW102
P0MTR04A
MTR_4A
1 P0CN901
+5
2 P0CN902
/MCLR
3 P0CN903
PGM
4 P0CN904
PGC
5 P0CN905
PGD
6 P0CN906
GND
P0R2502
P0TR80CP0R2501
P0FET150S
P0FET150D
P0FET130D
13
D
P0U2D013
11
FET14
P0FET140G
G
SP3055LD S
P0U2D011
12
P0U2D012
P0PWM04
PWM_4
10k
P0C1002 P0C1001
C10
U2D
ICD
2SC2712
P0R2602
C11
1uF
1uF
C12
1uF
D
74HC08
S
P0R5802
P0R5801
470
R27
10k
B
LED4_fwd
2SC2712
R58
P0R2702
10k
R26
P0TR80B
P0R2601
P0LED40fwd0K
P0LED40fwd0A
R24
10k
P0R2302P0TR70B
TR8
P0R2701
1k
CN4
P0TR80E
P0R2301
TR7
FET15
P0FET150G
G
D SP06P03LD
Motor 4
R25
10k
P0FET160D
P0R5901
FET13
P0FET130G
G
SP06P03LD D
P0FET140D
P0R5902
R23
S
P0TR70E
R59
P0R2402
P0LED40rev0K
P0LED40rev0A
R51
10k
S
P0TR70CP0R2202
R22
10k
P0FET130S
P0R2201
VDD2
1
P0CN402
2
P0D20K
P0D20A
P0JP101
A
P0U1C08
P0R1401
P0SW101
P0R5002
10k
P0LED20fwd0K
P0LED20fwd0A
P0TR40CP0R1101
P0FET70S
P0TR40E
P0R1302
P0CN201
1
P0CN202
2
P0FET70D
P0FET80D
9P0U1C09
U2C
9P0U2C09
FET16
P0FET160G
G
SP3055LD
P0MTR04B
MTR_4B
8
P0U2C08
10
P0U2C010
P0R2802
P0/MCLR
/MCLR
FET8
74HC08
P0R2801
P0PWM03
PWM_3
470
R13
10k
U1C
P0FET80G
P0FET160S
2
P0U2A02
D
P0FET140S
3
P0U2A03
C6
1uF
P0R5401
MTR_GND
P0R5101
P0TR130E
P0/MCLR
/MCLR
MTR_GND
+5
R48
10k
10k
P0R5402
SW1
JP1
P0MTR03A
MTR_3A
2SC2712
R54
P0R1202
P0C401
P0FET80S
12
C5
1uF
R12
P0TR40B
P0R1201
P0C601
P0FET60D
FET6
G
SP3055LD S
P0FET60G
P0U1D012
P0R4802
1
74HC08
2SC2712
TR4
1uF
P0C501
P0C3002 P0C3001
LED2_rev
P0R1002
11
P0U1D011
TR13
P0JP102
P0U2A01
FET12
P0FET120G
G
SP3055LD
D
RESET
LED4_rev
1k
R20
10k
U2A
P0R1001
13
P0U1D013
P0MTR02A/PGC
MTR_2A/PGC
+5
P0R5601
P0U2A014
P0R2001
P0R5602
LED3_rev
P0R1902
10k
2SC2712
P0C402
C4
P0C502
P0C2902 P0C2901
P0FET250D
P0TR130C P0FET250G
D1 D2
P0R5102
P0R4901
R56
P0LED30rev0K
P0LED30rev0A
R19
P0R2002
TR6
2SC2712
Motor 2
R11
10k
VDD2
R50
P0R4801
S
VDD1
P0TR130B
P0R5001
P0TR60E
D
P0R4902
P0R1802
R18
10k
P0FET120D
C9
1uF
LED13
P0U2A07
74HC08
P0TR60CP0R1801
P0FET90S
P0FET110S
P0FET110D
1
2
P0CN302
P0CN301
C8
1uF
P0FET100S
P0U2B05
R21
100k
D
FET10
P0FET100G
G
SP3055LD S
5
P0R2102
P0R2101
P0PWM03
PWM_3
6
P0U2B06
P0C701
1uF
P0FET120S
4
P0U2B04
P0C702
C7
P0C901
2SC2712
P0R4701
P0LED130A P0LED130K
470
P0TR60BP0R1901
P0C902
10k
U2B
P0MTR03B
MTR_3B
P0FET90D
P0R1602P0TR50B
P0C801
R17
10k
CN3
P0C802
470
P0TR50CP0R1502
P0R1501
P0R1601
TR5
P0FET100D
P0R5701
R16
FET11
P0FET110G
G
D SP06P03LD
P0FET90G
P0TR50E
P0R5702
P0R1702
R57
P0R1701
P0LED30fwd0K
P0LED30fwd0A
LED3_fwd
B
FET9
G
SP06P03LD D
P0PWR0LED
PWR_LED
P0R4702
P0FET50S
P0C2802 P0C2801
FET25
SP06P03LD
N0VDD0IN
VDD_IN
P0FET250S
1 P0CN801
2 P0CN802
R49
10k
R47
VDD1
10k
FET7
P0FET70G
G
D SP06P03LD
CN2
P0R902 P0TR30B
74HC08
CN8
S
C21
0.1uF
P0PWM02
PWM_2
+5
S
R10
10k
TR3
U1D
P0PWM01
PWM_1
P0D10K
74HC08
MTR_GND
R15
10k
1k
P0U1A02
MOTOR
PWR IN
Motor 3
P0R901
FET5
G
SP06P03LD D
P0FET50G
P0CN401
2
C20
0.1uF
P0R5501
S
P0C1102 P0C1101
3
P0U1A03
C19
0.1uF
P0R5502
R9
P0R2401
FET4
P0FET40G
G
SP3055LD
P0MTR01A
MTR_1A
R55
S
P0FET50D
P0C2702 P0C2701
AND IC Caps - 1 per chip
+5
P0R801
P0C2602 P0C2601
MTR_GND
P0U1A01
C30
10uF
P0FET60S
1
C29
10uF
P0LED20rev0K
P0LED20rev0A
P0U1A014
U1A
C28
10uF
P0R5201
1k
R6
10k
C27
10uF
P0C2102 P0C2101
10k
P0R5202
LED1_rev
P0R502
C26
10uF
R8
10k
P0TR30C P0R802
VDD2
C25
10uF
8
P0TR30E
VDD2
P0D10A
S
VDD2
P0C1902 P0C1901
D
VDD1
P0LED10rev0K
P0LED10rev0A
P0R602
R52
P0R601
P0TR20E
74HC08
R5
2SC2712
P0FET40D
P0C301
P0FET20S
C3
1uF
VDD1
P0C2502 P0C2501
P0R402
P0TR20C P0R401
P0FET30S
P0FET30D
P0CN102
P0CN101
FET2
G
SP3055LD S
5
P0R702
C2
1uF
P0FET20G
P0U1B05
R7
100k
D
TR2
P0U1A07
6
P0U1B06
P0C101
1uF
P0FET40S
4
P0C102
C1
7
VDD2
VDD1
R4
10k
P0TR20BP0R501
P0C302
2SC2712
P0C201
10k
P0U1B04
P0R701
P0PWM01
PWM_1
1
2
P0FET10D
P0R202P0TR10B
U1B
P0MTR01B
MTR_1B
CN1
P0C202
R3
10k
FET3
P0FET30G
G
D SP06P03LD
P0FET10G
P0FET20D
470
P0FET10S
P0R101
P0R201
S
P0TR10E
P0R302
P0R5301
P0TR10C P0R102
TR1
R2
P0R301
P0LED10fwd0K
P0LED10fwd0A
LED1_fwd
A
R53
S
FET1
G
SP06P03LD D
6
Motor Caps - 1 per motor
VDD1
R1
10k
P0R5302
5
MBRS340CT
Motor 1
4
P0C602
3
P0C1202 P0C1201
2
P0C2002 P0C2001
1
P0PWM04
PWM_4
R28
100k
CN9
U4
S
3
2
P0U3A02
P0PWM05
PWM_5
P0PWM06
PWM_6
13
D
P0U3D013
11
FET22
P0FET220G
G
SP3055LD S
P0U3D011
12
P0U3D012
C17
1uF
1uF
C18
1uF
D
S
P0R6202
470
R41
10k
U3C
9P0U3C09
FET24
P0FET240G
G
SP3055LD
P0MTR06B
MTR_6B
8
P0U3C08
10
P0U3C010
74HC08
1 P0CN701
2 P0CN702
3 P0CN703
4 P0CN704
P0R4602
P0JP202
P0JP201
R46
10k
P0R4601
R44
470
P0R4502
R45
10k
P0R4501
P0R4402
R43
470
P0R4401
CN7
P0R4301
D
I2C
CPU
PWR IN
3
R42
100k
P0RX
RX
MTR_GND
JP2
0
CN10
1
P0CN1002
2
P0CN1003
3
P0CN1004
4
D
P0CN1001
P0TX
TX
P0SCL
SCL
SERIAL I/O
Title
P0SDA
SDA
Size
A3
Date:
File:
2
P0PWM06
PWM_6
+5
P0R4302
C24
10uF
P0C2402 P0C2401
MTR_GND
P0R6201
LED6_fwd
P0R4101
10k
P0R4002
P0LED60fwd0K
P0LED60fwd0A
P0TR120C
P0R3901
P0FET230S
P0R3902
2SC2712
R62
P0R4102
1
P0CN602
2
P0FET210D
R40
P0C1602 P0C1601
C16
74HC08
+5
1
TR12
P0FET240D
P0MTR06A
MTR_6A
P0FET230D
P0TR110C
P0R3602
P0TR120E
2SC2712
Motor 6
R39
10k
P0TR120B
P0R4001
P0C1802 P0C1801
P0MTR05A
MTR_5A
P0U3A03
74HC08
P0R3702
P0TR110B
U3D
1
P0CN601
10k
FET23
P0FET230G
G
D SP06P03LD
CN6
P0C1702 P0C1701
R38
10k
P0FET210S
P0R3601
P0R3701
1k
P0U3A01
FET20
P0FET200G
G
SP3055LD
P0R3802
P0R6301
TR11
P0R3801
P0LED60rev0K
P0LED60rev0A
P0R6302
R37
S
FET21
P0FET210G
G
SP06P03LD D
P0FET220D
U3A
LED6_rev
1k
R34
10k
LED5_rev
P0R3401
P0FET200D
P0R6001
P0U3A014
10k
2SC2712
P0R6002
P0LED50rev0K
P0LED50rev0A
P0R3302
R63
S
P0TR110E
P0R3202
P0FET190S
P0TR100C
P0R3201
R60
P0R3402
1
2
P0FET190D
P0FET170S
P0FET170D
P0CN502
D
R36
10k
C
P0R4202
74HC08
FET18
P0FET180G
G
SP3055LD S
C15
1uF
P0RX
RX
P0TX
TX
P0SCL
SCL
P0SDA
SDA
VDD2
C23
0.1uF
P0R4201
R35
100k
C14
1uF
+5
P0FET240S
P0R3502
5
D
P0MTR02B/PGD
MTR_2B/PGD
P0MTR02A/PGC
MTR_2A/PGC
P0PWR0LED
PWR_LED
P0PWM02
PWM_2
P0PWM01
PWM_1
P0MTR04B
MTR_4B
P0PWM04
PWM_4
P0MTR04A
MTR_4A
P0FET220S
6
P0U3B06
P0U3B05
R33
1uF
P0FET200S
4
P0U3B04
P0R3501
P0PWM05
PWM_5
TR10
P0C1302 P0C1301
C13
28
/MCLR
RB7/PGDP0U4027
27
P0U402
RA0/AN0
RB6/PGC
P0U4026
26
P0U403
RA1/AN1
RB5/PWM4/PGM
P0U4025
25
P0U404
RA2/AN2
RB4/PWM5
P0U4024
24
P0U405
RA3/AN3
RB3/PWM3
P0U4023
23
P0U406
RA4/AN4
RB2/PWM2
P0U4022
22
P0U407
AVDD
RB1/PWM1
P0U4021
21
P0U408
AVSS
RB0/PWM0 P0U4020
20
P0U409
OSC1/CLKI/RA7
VDD P0U4019
19
P0U4010
OSC2/CLKO/RA6
VSS
P0U4018
18
P0U4011
RC0/T1OSO/T1CKI
RC7/RX/DT/SDO
P0U4017
17
P0U4012
RC1/T1OSI/CCP2
RC6/TX/CK/SS
P0U4016
16
P0U4013
RC2/CCP1/FLTB
RC5/INT2/SCK/SCL
P0U4015
15
P0U4014
RC3/T0CKI/INT0
RC4/INT1/SDI/SDA
P0U401
PIC18F2431 - SOIC
P0TR100E
2SC2712
U3B
P0MTR05B
MTR_5B
P0CN501
10k
P0MTR06A
MTR_6A
P0MTR06B
MTR_6B
P0MTR05A
MTR_5A
P0PWM03
PWM_3
P0PWM05
PWM_5
P0MTR05B
MTR_5B
R32
10k
P0TR100B
P0R3301
P0C1502 P0C1501
R31
10k
FET19
P0FET190G
G
D SP06P03LD
CN5
P0R3002P0TR90B
P0FET180D
470
FET17
P0FET170G
G
SP06P03LD D
P0C1402 P0C1401
P0R3001
S
P0FET180S
P0R6101
TR9
S
P0TR90E
P0R6102
R30
P0R3102
R61
P0R3101
P0LED50fwd0K
P0LED50fwd0A
LED5_fwd
R29
10k
P0TR90CP0R2902
P0R2901
VDD1
P0U3A07
Motor 5
C
P0C2201 P0C2202
+5
C22
0.1uF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
P0/MCLR
/MCLR
P0MTR01A
MTR_1A
P0MTR01B
MTR_1B
P0MTR03A
MTR_3A
P0MTR03B
MTR_3B
P0PWM06
PWM_6
MTR_GND
P0U4028
P0C2301 P0C2302
MTR_GND
4
5
6
6 Channel Motor Controller V2
Number
Revision
DDK0668T
2007/04/09
C:\Altium\..\DDK0668T.SchDoc
7
Sheet of
Drawn By:
8