Académique Documents
Professionnel Documents
Culture Documents
!" #
%&&'
$
$(
" "
!"
" #
"
"*
, -*&&
+ "
, -*&&
I2C COMMUNICATION........................................................................................................9
Device memory arrangement..................................................................................................................................... 10
DISPLAY ...........................................................................................................................11
BLUETOOTH ...................................................................................................................12
Bluetooth functionality within the NXT Brick ....................................................................................................... 12
Interfacing with the BlueCoreTM chip....................................................................................................................... 13
UART interface between the ARM7 and the BlueCore chip.................................................................................... 14
SOUND..............................................................................................................................15
DEBUGGING INFORMATION ..........................................................................................16
Interfacing with the ARM7 microcontroller ............................................................................................................ 16
Interfacing with the AVR microcontroller ............................................................................................................... 17
Firmware requirements: ............................................................................................................................................ 17
. %&&'
+ "
, -*&&
The LEGO MINDSTORMS NXT brick uses various advanced electronics to yield its broad functionality. To view
the hardware schematics of the LEGO MINDSTORMS NXT, see Appendix 1 and 2; for hardware schematics of the
LEGO MINDSTORMS NXT sensors, see Appendices 3-6.
Here is a summary list of hardware specifications for the NXT brick:
Main processor:
Co-processor:
4 input ports
3 output ports
Display
Loudspeaker
4 button user-interface
Rubber buttons
Power source
6 AA batteries
- Alkaline batteries are recommended
- Rechargeable Lithium-Ion battery 1400 mAH is available
Connector
. %&&'
+ "
"
"" (
"
1 (!*
"
(
# $
$
, -*&&
)
"
#
($
(
##
"
(
#$ (
2
"
"
"
(
* 3
"(
5-
%*
"!
"
. %&&'
+ "
, -*&&
# !# !
"
" $"
($
"(
1 (!*
4 '2
#
$"
1 (!
# $
8
4&
$
1 (!
"
5
"(
$
"*
"
"
1 (!
"(
- 4&
% 4/
0 9 :
6 48
4
4&
'
4-
=9 :
4> " (
5 $
$ $ ($
(
"
5
$
( )
$ #$
" *
48
"
9:
9:
(
$ $" ;&&
" 9:
"
"
1 (!
$ "$
"
(" #
"7
#
#
($
($
$
"
"
$ "$
)
($ " (
)
$
($
" (
$
" "$
"
"
"
"
"(
$ "
$ "
( "( $
" "
"
(
1)
(
$ $
! ($
#
( (
1 (
1
!
#
(
1$ 2
(
"
#
$(
$
( )
<$"
$ $ ($
(
#
1 (!*
"
$
$
$
*
"*
(
)
(
1
#
) %& 4* #
* #
"
"
$
$
$
0*/ +
$
#$ (
$
#$ (
($
4
$
4 #
9
9
9
9
9
$ $ "
"#
( (
"$
) (
) - 4*
$ $ "
"
"*
$ )
#
"
$" $
"1
48
4&
48
4$
"
$
"
4
;
( "" *
"
(
")"
* :
"
$ 1 " # (
$" "#
"
( $
( (! " *
. %&&'
"
4-
"
( *
#(
) "
$"
5
""
( ($
$ $
) -?& 4*
$ ($
$
$
1
"" 1 ) #
@$
"
"
$"
( $
" $
( (! "
$
"
1
"
$
+ "
, -*&&
!# !
"# $
)" (
'2
$"
( *
( (
1 (!*
# $
1
("* 7
"
2"
"(
$
( "" *
"
#(
"
"
"(
$
"*
"
*>
"$
A
$ (
$ (
$ (
$
"" 1
. %&&'
4A
(
5&
#(
"
1 (!* 9
(
(
5 ->
- 4 4
4
"
9
9
9
9
%
/
0 9 :
4
6
4&
$
$
0*/ +
'
"% /
"(
($
1 (
$ "
"
" "
($
"(
(($ *
)"
"
"
)
(
1
) %& 4
)
$ #$
$"
" "#
0
0?6 (
"(
($
$ "$
(
)
(
-&21 4A (
4+
( " $"
#
#
" " "* =
" (
1 $ (
" " "
"
"
#
" " "*
" " "
/
# "$
)
$ $
$"
#
" " " " /// B*
$ $ "
) "
"
-(
"
"
$
5
1
#
$
) -?&
$
4*
"
"
(
$ (
) #$ (
"
$ 2$
""
# #$
(
( )
"" 1
#
#
" "$
1 * #
* #
#
(
( "
$ (
$
"
"
$
A
( ""
A
( ""
4-
$
(
4
"$
"
1
1
1 "
4&C
4 ->
D'&& 1 A"*
@$ "
5
%8 8
"*
" "
##
"=
$
A
=
$
) #
"
) #
"$
" >*
"1
"=
=9 :
4> " (
(
5 $
$ $ ($
(
"
5
1
(
"
$
(
1 (!
" *
($
(
(
(
$ (
"
"
(
$
"" 1
"
=4 4> "
" " " (
"(
4"
"( 1
1 #
)
$
(
$
( ($
""
" %8 (
%8
"
"
($
"*
"
$
>*
#$ (
"
"
"
'
+ "
, -*&&
"
"$
=
(
(
#
1 (!*
1 (!
#
"(
8
)
1 (!>
"$
($
($
(
"$
"
"
"
"
1 (
"1
" " "*
) " "
1
4 # $ $ ($
($
"#
"
"
#$ (
5
) -?
(
"
" "*
&*-
"$
*
"
)"
"
8
*
"
"
Figure 2: Timing diagram for the A/D input signal pin when using active sensors
#
"
"
" "#
"
"
("
")"
"
" ",
"
"
"
$"
""
"
E
%8
"
" "
("
"$
" "
#
"
)/
$" $
1
$"
(
1 ( $" "
@$
1)
(
4A
" " "*
" ",
"
">
" "
(
"
. %&&'
" "
" "
$( " " =1
" " "$
$
" "
$ " "
"
" "
$"
$ (
"
"
"
#
)" (
($
" ",
"
+ "
$ !
9
(
!
1 (! (
$ (
2"
"
12
"
)
@$
( "
#$ $
$
( "
) $"
$ (
*
, -*&&
#$ (
1
$ (
( "
"
$
"(
$ (
$ (
(
92
2"
(
$ (
$ ( ($ *
"
* 4
"
"
$ (
"
#$ (
)*
1 (! "
*9 2 *
>
"
( =
0?6
#
( "* 8 $
)
# #$ $
* 3 "$(
(
1 "
Figure 3: Hardware schematic for the RS485 chip behind port 4 on the NXT brick
,
3
0?6 (
"
"(
(" #
#
#
" $"
" #
"
#$
"1
"*
$ (
4
0?6 (
"
"
2"
$ (
/*/
"*
( "" *
"
. %&&'
$ (
1 ",
1 ,
),
"
D%-*' 1 A"
?1
-1
&1
+ "
:
$"
(
"" ( 1
@$
*
%8
1 (!
$ (
$"
$ (
*
)"
4
#
*
"(
"1
"
$"
"
)
##
" "
#(
"$ 1 (!
"
(
#(
#$ (
1 (!
$ (
#
" # $ %8 (
"
(
#
(
$ (
"F "
$ (
(
( "*
(#
%8
# $
$
#( #
1 " 5
(
$ (
"
0
"
"% /
"
(
"
"
#
(
$
"
>*
""
"(
( "
"
2
"
(
"1
$ (
(
1
#(
1 #"*
. %&&'
( "
(
"
( "
( "
#
#
(
)
"
"
"
"(
"
%8
"
)G #$ (
(
"*
$"
"
1) 9
"
"
, -*&&
#
(
$(
( *
"
(
(
#$ (
%8
"
) -D?&"*
$ (
"
"
(
)
*
#$
"
( " "
(
)#
%8 (
" (
"*
%8
"(
" 2$
$ (
*
$
"
( ,
0*; ! " "
"
"
*
$ 2$
""
$
)
*
"
"
1
$
5
( * :
(
$"
?%
"" " "
$ 2$
"" "
1
( (!
"*
5& =9 6
(
( > "
8
"
5- =9 '
(
( > "
4 4
"
# %8 (
$ (
*
A
"
(
1 "
( )*
#
A
"
" $
* *
$" " 9 $" 29 $ * :
" $
(
A
"
1 "
"
$ = * *
#
(
(!
>*
%8 (
$ (
" $
D'&& 1 A"*
( (
" -' 1 )
$ 1 $##
-' 1 )
$ $ 1 $## *
#
5 $
# -' 1 ) " (
1 "
(
$
(
(
$ (
()( *
# $
" " "
(
(
" @$ (
"
" "
"$
$ 2$
""
"
1
# ?% !* 3
"
"
"
( "
"
$
" " "
(
(
" @$ (
"
*
"
"
"(
( "(
($
( " ( #( = ! ( 1
1
1
"
$"
( #
(
#
"" " "
"
(
)
"
)
( "* 8 $
)
( 1
" ($ "
)
E
"
"" - =
;1 (
5 >*
"
"" " "
"
1) "
"" "
"#
$"
$ (
$ )
( "*
(
$ "
"
"
##
5
(
"
+ "
"
&
$"
%8
$ (
$
#
, -*&&
(
(
(
(
5
* 7) !
"" 1
( " H"
"
"
)"
( *
5
( " " 5
" ( #(" 1
(
1
(
)(
'()
) )
'
)
(
"
#$ (
"#
#
"
1
)#
(
)
*
"
"
(( "",
* )
'. /
'( ' (
"
$(
"
"
#(
)B
#(
) "(
#(
) "(
=8
#(
=8
%>
"
"$
"
->
"
""
&5&&
I &5&/
""
&5&?
I &5&/
""
&5-&
I &5&/
""
&5-?
I &5&/
""
&5-D
I &5&/
""
&5-4
I &5&/
""
&5-7
I &5&/
I &5&/
0 (
1
""
&50&
""
&50-
***
) )
' (
""
&5?&
""
&5?-
&5
J
Figure 4: Example of a memory map for an external digital device
7) 1 $
#
. %&&'
"
) "
$
" "
(
)"
"
$
("
"
" ""
"
"
1
A
" $(
()( * 3
"
"
5 ;*
-&
+ "
&
4
1 (!
"
# %' 5 0&*'
#
" (
"
9
#(
9
"
" @$
, -*&&
#( #
" $
#
-;
#
"
(
@$
8
""
=& &>>
"
"1
(
8
"
*
8 2(
"
"
(
8 (
" (
4
%
"
"
) "
#
"
$"
# -&& 5 '0 5 "*
" ) "
E
*
B
# $
"
1)
5 "
1 (!
" $
$"
(
" )H" 8 2(
"
*
)$
)*
"
,
# " 1)
(
5
5 ?
"#
"
#
"
)H" 8 2(
) "(
)
(
"
*
#( *
" "
" ) "
8
-'&-*
E
#$
$ $" ) $
K?LK-&&L =
# " ?
) "
!"
8
)
-'&-*
"
KM A ?LK L>*
( ="
",
. %&&'
"
3
( #(
"#
"
8
+
,
(
"(
"$
,
,
=+ >,
=+ 8 >,
),
-&& 5 '0
"
A9 "
# (
' H( (!
-A'6 $ ) ()( -AD 1 "
/*&+
D*&+ = <$" 1 # 1 " (
">
--
+ "
, -*&&
#
1 (! "$
"
"" (
$ (
$"
7$
%(
*
1 (! (
1 (
(
"" )
(
)(
$ (
(
*
" #$ (
9
9 # = 99>
( (
1 ( "
""
(
7$
( "
(
1
(
8
$ (
9
(
"$
9
"
" $
# "1
1 (!"
$"
#
1
1 (!" $
5 ($
*
7$
(
) "1
" 7$
(
(
$ (
$
" (
#
5
) -&
1)
($
8
( "
"
7$
7$ 8
"
"1
"
*
1 (! (
$ (
$"
9 # = 9 9 >* H"
"" 1
"" (
$ (
"
$(
( "$
8 ""
(
(
"*
0
1$
$"
(
$ 2
"
(
1)
$"
"
&
#$ (
"
"
1 (!" (
$ (
(
$ (
( )
)
!*
1 (! " " $
"
!
"
#$ (
*
# $ 1
"
"
"
A"
(
$
"
"
$ (
( "(
# $
1
"
#
"
"
"
4
( $"
8
(
(
#
. %&&'
(
)(
"(
"
1 (
$ (
$ (
(
#
"
7$
" $
( "
/"
"
" ( "
/*
"
"
1
1
"
" $"
$ (
#$ (
"
(
"
"1
( "*
7$
7$
(
"
$ (
"
( " (($
$ (
* 8
=* *
"
"
(
& "
"
"*
)" $"
>
"
"
1 ( $"
"# $ (
1) "
(
( "*
"- %
(
( "
/
"( $
$"
-%
+ "
#
7$
#$ (
)
"
1 3 4
)*
$
" #2(
7$
1) 8
(
7 $ 1* 7 $
#
7$ 8
$ "
$ " #
(
(
"
(
7$
(
1*
" 1
( "" *
7$
$"
"
(
#
8
* 4 -'21
"
" $"
* 4(
" (
$
7$ 8
0
( "" )
( ""
$ "
7$
" (!
$"
"
/*% #
1 + 2 "!
$"
"
+
E4
#( #
4 ;
"
+
" #$
#1
7$
9 9 24
9 9 27
# "*
9 9 24
$"
( 7$ 8
"
(
(
= 4
( >
9 9 27
#
$"
7$
(
"
(
(
= 4+
( >*
7$ 8
$"
" #
" F"
2
G
5(
# NO %%& 1 $
#
(
(
" 1 "
* :
7$ 8
"
F"
2
G " F(
2
G
( " $"
+
(
7$ 8
1) 5 "
7$
#$ (
)
*
(
$ (
)
E4
($ " "(
1)
#( "
" =4 ;P 8
C
78 0P 8
>*
3
7$ 8
"(
(
# $
#$ (
"
#
(
5 ?*
1
"
"
) " 5
1
"(
(" #
, -*&&
$ (
#( 1
# $
1 (!*
$"
*> 3
( ""
"(
7$ 8
#
#
"
"
"
(
:
"
( ""
(
* = "
) $ "
Figure 7: Interface between the ARM7 processor and the BlueCore chip
9
#(
"
1 (!*
#
"
78 028
"
. %&&'
" $"
,
(
4
"
#
"" 1
9
$
) #$
#(
2
7$ 8
7$ 8
(
"
""
(
4
; "
"
( )
(
$"
)
" 1
)
7$
7$ 8
$
1 (!*
#$ (
5
)*
("
;*
-/
;28
,
7$ 8
E4
(
4
;
'
9
3
$ (
" $"
( "" *
*1 0
$ (
1 ",
),
1 ,
(
,
. %&&'
7$ 8
"
; 5
, -*&&
("
"
E4
" 2$ =1
8
+ "
' /
"
7$ 8
2
"
2 '
(
"
3
B
"
7$ 8
(
>,
$ (
; $"
1 A"
)1 "
1
"
$ (
1/
#
0'&*?
?1 "
! "
"=
C 8
>
-0
+ "
, -*&&
#
1 (! ( $ " " $
$ $ " 9:
$ $ "
$(
1 #
#
" $
" $
$
E 9 E
" $
!
##
#
"
($
(
"(
-'
"
" $
$
3 @ $ ()
00& B
0
B
2"
" $
1 $
"$
" $
4
;
"
1)
$(
= 9 M&&/&4> "
# %&* 3
*
$ "
($
8$
-&%
;?
# (
" $
!
"
#
#
@$
*
)*
#
"
E 9 E
"
# %##
)
(
$ $
( (
"
*
# @$
(
"
1 1
( "*
"
"
"$
4
9
-'D
D;
. %&&'
-6
+ "
, -*&&
#
"" (
Q 4
1 #)
# ( "* =
"( 1 "
$" " (
,:
#(
" " ""
"
:
"(
#$ (
)*
( ""
4+
"
"
#
1 (! "
( (
4A (
"
"
$"
" $"
)#
*>
)#
(
1 ( $"
(
((
#$ ) 1 #
(
1
"
1
4
"
(
*
" ""
)
*
;
2
(
*
( ""
#$ (
Q 4
$" 1
(
#$
"*
"
) ! (
#(
""
$ )
$" 2"
( #(
4+
9:
;
2
(
(
( "" )
$
="
$"
Q 4
Q2
"
$
-*%;
4 ;
( ""
!
(
(
$(
*
#
( > $"
1
$
1
1
#(
#
$
4
;
1$
1 (! 1 $
9 8 74
"
( "
( ""
-&2
(
(
(
(
#
*
(
=Q-;>
"
"(
) $,
. %&&'
-'
+ "
, -*&&
"
(
"
(
!
$
-*%;
$"
( >
$(
*
$" 1
4+
(
"
( ""
1
#
1 (! 1 $
9 8 74
"
( "
( ""
?2
(
(
(
(
#
#(
4+
1$
( "" )
$
="
Q 4
Figure 10: Hardware schematic for interfacing with the AVR microcontroller
4#
"
$
#
" $ R
@$
3
$
")"
5
# $
#$ (
"
"
$"
" "
( (
* 4"
"
$
" " @$ ( (
"
( ""
" H"
1 (!
6
$ " #"
2$ ,
ST58 8 SS
"
U" "
"
( "" "
( )*
"
(
#
"
(
" 1$
" @$ (
4
#
=(>
"
"
@$
"
$" *
@$
1)
*
")"
"1
;
""
)"
$
"
#
"
1 (
$" $
"(
"
"" (
1)
(
( ""
4+
( $"
( (
4+
$( #
$
## #
%8 (
1
"( 1
"$" *
4
;
$ (
4A S
4+ ,
K&58 8 &508 &5'6 &5;0 &5%; &5;/ &5%& &5;/ &5'- &5' &5'% &5'- &5%& &5' &5;? &5;0 &5%& &5'- &5;% &5'
&5%& &5'D &5' &5%& &5'- &5;% &5' &5%8 &5%& &5%? &5'/ &5%D &508 &506 &50; &503 &5%& &56/ &5;D &5;
/ &5;0 &5'6 &5' &5%& &50- &5%3 &56/L
. %&&'
-;
+ "
"
, -*&&
#
#( 1
%8 (
4 ; ( (
$ (
(
1
$ "
" "" $
"
# ( "" $
(
"*
"
( (
*
( (
)%
"!" #
"
4
""
;
7 ( $"
(
4+
4+
#
%8 (
( (
4A (
(
(
"
$ (
4+
4
)#
)
$ (
(
(
4+
(
"
(
(
$
"
$ (
1
(
"
$
@$
4
;
" $ * 3
$"
1 1
#( 1
( (
%8
#(
" $(
#$ (
( (
#$
9:
"
"(
( (
"* :
) #
(
" "
4+
4
;(
"
$ "
"
"#
#
$ $" ) $
*
) #$ (
4
"
"
4 D- 4 ; %6'
2
typedef
{
UBYTE
UBYTE
SBYTE
UBYTE
UBYTE
}IOTOAVR;
9
struct
Power;
PwmFreq;
PwmValue[NOS_OF_AVR_OUTPUTS];
OutputMode;
InputPower;
8
1)
(
"
" $"
$ (
9:
+ $
$
#$
$
"
"1
$9
:
"
:
&5&&*
""
. %&&'
"
$ 4*
#
"
# @ $ () $"
, - V /%
B* E
#
9
$
" 1)
1)
"
#
#
2-&&
( (! " *
(
( $
$ $
!
1
9:
"
$
$
I-&&
"
4+
(
9
"
( $"
4+
#
$
1$
1)
##
"
$ 1
1 (!
"
"$
/ ""
&564
! $
(
$" " ?
)
( (!
!1
#(
"
9:
)*
$
" - 1 0
" ##
" $(
$ $ "*
#
#"
2-&& " #$
"
$
*
#
"
$*
"
$"
#
D+ "
1 #
"
1 &
- "" " & 1 %
1 '
; " " " /*
&, D+ " ##
-, D+ "
$ ""
"$
" " =
%, D+ "
)"
(
1
B*
(
1
"#
*
&5&-
"
"( 1
9
F
B*
"
I-&& "
"( # $
6 "" " %
( /
"
>
1
3 @ "
( G1$
(!
*
$
"
1
"
"
-?
+ "
:
1
"
. %&&'
#
" #$ (
)
( $"
4
;
( "" " "
"
#
1 (! " ( #
" $ 1 "
&546
#
$
* 3
$
1)
4+
( (
*
4
4 D- 4 ; %6'
( "" (
9
1)
"
@$
@ " $ 1
"
2
1 $ #
4 74
*
9
"
, -*&&
1 (!*
64*
-D
+ "
"
, -*&&
"
typedef
struct
{
UWORD
AdValue[NOS_OF_AVR_INPUTS];
UWORD
Buttons;
UWORD
Battery;
}IOFROMAVR;
4 + $
"
"
7$
"
$ #
"
"
7$
""
-& 1 4A (
1 (!*
$ -
#"
"
$" #
1$
"* 7$
- %
/
" &5;33
"* 4
$ " # 1$
$ "
1$
9 8 7 "(
("*
&
"
1 $
4+ #
"
7 -6
"$
"
& O 44 1
- O 4(($
"
"
1
)
* -' 1 " " #
"(
-& 1 4
( ($
4(($
(!
"
$ *
#
"1
",
"
(!
7 -/ 2 -0
7 -& 2 -%
&**/ O
&**; O
7 &2D
&**-&%/ = $
"
<
"
"
)
-/*?0?
( ($
($
+>
#
4"
4
(
#
" (
*
" $( $ "
) #$ (
"
4+ *
) " (
1
"
" $( $
( "
" "
"(
1
" ""
$ (
"
)
" "$
"(
"
"#
*
!(
" (
. %&&'
"
"
( ) #
)
"
#
"
( " (
(
(
"
1)
"#
4+ *
"
(
4+
"
1
"#
## (
1)
$
(
" * *
#/
"*
%&
+ "
, -*&&
!
9
1 (! (
"#
$
"$
)
(
/*/2
"$
) "
( $ " 48
# " (
"$
)
(
( ($ *
8$
"$
(
)"
(
"$
## ( "
$
)
"
($
"$
1 "
' 44 1
"#
"
(
>* 9
62
"$
)#
4 ;
( ""
"
#
)"
# -*?6 4
#D
"(
1
$
1
)=
1 (! (
"
7$ 8
#
(
"
"" "
62
#
) /*/ 4*
"*
8$
## ( =7
5 K 4L
K 4L
)OD+
5K : L
">
K :L
"
D+
//D
--0
6-?0
-0%%
6+
%;-
--%
-;00
00?
/*/ +
;%
/?
0-&
%-'
D+
%D&-
?0?
%'-&D
;'/%
6+
%;-
--%
--0%
/&;
/*/ +
;%
/?
0-&
-/;
"
1)
0' $4 ""$
"
1 ) ($
( '.
# $ ""
1
"
#
(
3
1 (!H"
1
. %&&'
"
#
$"
" $"
1 (!
$
"
)6" (
"
1
#
$"
"
(
" $
/' /
H" (
$
"
"#
#$ "
* #
#
2
(
"
'"
1 1
)*
1 (!*
!
"
"
"
"
1 (!
1
(
1
$"
"
1
$ $" )
5
$
"*
1
) 6&& 4
!
$
) "(
1
1
1
(
)
"
) "
4A8
1
(
)
*
%-
+ "
, -*&&
Figure 12: Load on the NXT when using standard alkaline batteries
Figure 13: Load on the NXT when using the LEGO MINDSTORMS Lithium Ion rechargeable battery
. %&&'
%%
+ "
!
1 (! " 1 (!
"(
1 (
)"
( 1 *
(
( 1
(
(
" #
$
, -*&&
&
1
"
"
" "
" " #
)
"#
) #
"*
"
$
"
"" 1
(
" 1$
(
"
$"
1 (!
"
(
1
"
)=
$>
"
" "
"
"
1)
FWG
*
(
( 1
%5% 2
"
"
" #
# 1
. %&&'
"(
" "*
Q-% (
(
* :
(
"-
(
%
(
$"
(
( 1
(
(
%/
+ "
+"
"
1"
"#
* D-*(
*(
,AA
*"
*9 2
*$
. %&&'
($
("*
"*(
"
A1
!"A%(A
#A%(*1 $"*"
"
( #(
, -*&&
( ",
*
(
*(
%0
+ "
, -*&&
!!
1.
2.
3.
4.
5.
6.
7.
8.
. %&&'
%6