Microcontroller
Motorola MC9S12DG256C CPV – datasheet (pdf 2.7M)
HC12 16 bit microcontroller, equivalent to MC9S19DP256
112 pin LQFP package, 20x20x1.4mm, 0.65mm pin spacing
Clocked with a 6 MHz Xtal
256K flash ROM
12K RAM
4K EEPROM
2x UART (pin89 RXD0, pin90 TXD0, pin91 RXD1, pin92 TXD1)
2x SPI
8x timer
2x 16 channel 10bit ADC
8x PWM
89x I/O channels
2x CAN 2.0A/B
1x I2C
The Roomba uses a tick timer with 4096 ticks per minute, this corresponds to the 67 times per second that the robot evaluates its state mentioned on the box.
Microcontroller Functional Pinout
Pin Name I/O Cat. Description 3 PWM1 O nav Motor R Control1. H=on 4 PWM0 O nav Motor R Control2. H=on 9 IOC0 I nav Motor R Encoder 10 IOC1 I nav Motor L Encoder 12 IOC3 I vac Side Brush Overcurrent = H 15 IOC4 I nav Motor R Overcurrent Sensor. H=overcurrent 16 IOC5 I nav Motor L Overcurrent Sensor. H=overcurrent 17 IOC6 I vac Main Brush Overcurrent = H 23 PB0 I vac Side Brush Motor Control. H=on 25 PB1 I vac Vac Motor Control. H=on 26 PB2 I vac Main Brush Motor Control. H=on 27 PB3 I pow Aux Power Control. H=on 28 PB4 O??? pow ??? Charger Enable 29 PB5 O pow Charger Control. H=enable charging 30 PB6 O nav Floor and Side Sensors Control. H=on 32 KWH7 I ui Input Pin on Serial Connector 33 KWH6 I nav Wheel-Up Switches. H=ok 34 KWH5 I ui Spot Button. L=pressed 35 KWH4 I ui Unconnected Button. L=pressed 49 KWH3 I ui Clean Button. L=pressed 50 KWH2 I pow Any Charger Connected (AC or Floor). H=yes 51 KWH1 I ui IR-Receiver 52 KWH0 I ui Power Button. L=pressed 57 PA0 I vac Dust Sensor1 58 PA1 I vac Dust Sensor2 59 PA2 I nav Bump Sensor L 60 PA3 I nav Bump Sensor R 62 PA5 I pow AC Charger Connected. H=yes 63 PA6 O sys Reset Watchdog Timer (1.6 sec timeout) 64 PA7 O pow ??? Charger Safety Board. H=charger ok 67 AN00 I pow Bat Voltage. V(mV) = ADC * 28.1 68 AN08 I vac Vac Motor Current. I(mA) = ADC * 5 69 AN01 I pow Bat Temperature. T(degC) = 25 + (512 - ADC) / 9 70 AN09 O pow ??? Bat Temperature Sense Enable. H=Enable 71 AN02 I pow Bat Current. I(mA) = (ADC - 512) * 6.523. Positive = charging, negative=discharging 73 AN03 I nav Floor Sensor L Back 75 AN04 I nav Floor Sensor L Front 77 AN05 I nav Floor Sensor R Back 79 AN06 I nav Floor Sensor R Front 81 AN07 I nav Side Wall Sensor 87 PM7 O ui Power Led Green. H=on 88 PM6 O ui Power Led Red. H=on 91 RXD1 I ui Serial Port 92 TXD1 O ui Serial Port 100 PM5 O ui Status Led Green. H=on 101 PM4 O ui Status Led Red. H=on 102 PM3 O ui Dust-Detect Led Blue. H=on 103 PM2 O ui Spot Led Green. H=on 104 PM1 O ui Unconnected Led. H=on 105 PM0 O ui Clean Led Green. H=on 111 PWM5 O nav Motor L Control1. H=on 112 PWM4 O nav Motor L Control2. H=on