NASA Home Rover Cerebellum Design Specifications (Updated 7/22/01) The rover will have one cerebellum circuit board, and multiple motor control daughterboards. Cerebellum: ---------- The cerebellum will consist of the following ICs: a. Microcontroller: Microchip PIC 16F877 b. RS232 level shifter: Dallas Semiconductor DS275 c. Dual Full H-bridge Motor Driver: Allegro UDN2998 Power will be regulated by an LM2940 low-dropout voltage regulator. The microcontroller will be clocked at 20MHz using a ceramic resonator with built-in capacitors (ECS ZTT series). Programming: The microcontroller will be programmable in-circuit via a 6-pin parallel interface. This might be changed in the future into a serial programming interface. Firmware: Firmware will be written in C using the C2C C-compiler. It shall provide the following functionality: a. Open loop control of 2 DC-motors using 2 channels of PWM signal generated by the CCP module on the microcontroller, driving a full H-bridge. Each PWM channel is independently controllable, but their periods have to be the same. This will be set at 19.5 kHz. b. Control of 8 hobby servo motors using an interrupt driven software control loop, running on Timer 0 of the PIC microcontroller. c. Read from 8 analog input ports with 8-bit resolution. d. RS232 communications using the hardware USART found on the microcontroller. Actual baud rate will be software selectable (maximum of 115.2 kbps). Communications parameters will be 8 data bits, no parity bit, 1 stop bit. e. I2C communications using the synchronous serial port hardware found on the microcontroller. This will use 7-bit addresses and will function in master mode. The features and capabilities of the cerebellum shall be accessible over its serial interface. Motor control daughterboards: ---------------------------- Each daughterboard will consist of the following ICs: a. Microcontroller: Microchip PIC 16F876 b. H-bridge motor driver: Allegro A3952 c. Dual D flip-flop: 7474 Capabilites: Firmware on the duaghterboard will provide closed loop velocity control of a brushed DC motor, using a PID control law. Interaction between a daughterboard and the cerebellum will take place over the I2C bus. The cerebellum shall be the bus master, and daughterboards will behave as slave stations. Functionality: The following functions will be made available over the I2C interface. a. Read/write control constant. Allows user to read and change the P, I and D constants of the control law. b. Read/write desired motor velocity. c. Read actual motor velocity. Allows user to check the motor's actual velocity. d. Read current motor input. Allows user to check the current input to the motors. e. Disable closed loop control. f. Open loop control. Sends user specified value directly to motor. I2C bus connection: ------------------ The cerebellum and daughterboards will be daisy chained together using 10-pin ribbon cable. There will be an "out" connector on the cerebellum and both "in" and "out" connectors on the daughterboards. The ribbon cables will carry both power and I2C signal lines.