Inside the NXT brick: lots of microcontrollers

(1) The little circuit board at the top of the picture is the Bluetooth to serial module. The left most, rectangular chip is the memory with the Bluetooth control software from Cambridge Silicon Radio. The square chip is the CSR Bluecore 4 microcontroller and radio hardware BC417143BQN, supporting Bluetooth v2.0 and EDR. The gold zig-zag trace at the top right hand corner is presumably the antenna.
(2) The main 32-bit ARM controller that runs your programs, an Atmel AT91SAM7S256. This includes Flash memory/file system, RAM and the USB Device interface.
(3) An 8-bit Atmel ATMEGA48. I presume this manages the pulse width modulation (PWM) of the motors, and uses the feedback from the NXT motor rotation sensors to tune the power to each motor.
Correction, courtesy of Jürgen Stuber: the ATmega48 drives the PWM for the motor control, but the rotation sensors feedback to the AT91SAM7s256.
In other words if you set two NXT motors, (e.g. on the left and right sides of a vehicle), to the same power level this controller will try to make both motors turn at the same rate. A notoriously difficult to solve problem in user level programs on the RCX.
Ttfn,
Tony
Comments
I am not planning to work out the full schematics! ;-)
As I remember Lego promised to publish NXT development info in August. So I guess some or all of the remaining restrictions on MDPs will be lifted on Tuesday. I shall be looking out for hardware info appearing due the week ...
Regarding the motor control: the ATMega48 does not drive the motors directly, but through driver chips that also implement thermal/over current shutdown. Each of the three motors needs 2 driver lines, so I expect that accounts for the 6 PWM outputs.
The driver chips are a LB1930M for motor A and a LB1836M for motors B & C. Both lines off = motor off, 1 line each for forward and reverse control, both lines on = brake.
I did link to Jürgen Stuber's pictures last week ;-) ... on the right hand side of his "NXT top" picture you can see the motor driver chips. (They are hidden by the tilt of the NXT in my picture.)
I do not know the answers to your other questions.
Ttfn, Tony
Some comments:
I put some high resolution pictures at
http://www.jstuber.net/lego/nxt-programming/nxt-hardware.html
The ATMEGA48 manages PWM for motors, but the rotation sensors
are connected to the AT91SAM7S256, so the ATMEGA doesn't manage
the feedback (I thoght that at first, too).
There is some more hardware info at
http://www.jstuber.net/lego/nxt-hardware.ps.gz ,
see also http://www.jstuber.net/lego/nxt-programming/ .
Cheers
Jürgen