|
RoboScout Internals: Trails: Microcontrollers There are three PIC microcontrollers on the main board. Presumably, these control all or most of RoboScout's behavior. Surprisingly, these chips were not code protected, so I used a Warp 13 programmer to extract the program memories as hex files. I found a freeware disassembler at Talking Electronics. The disassembler is specifically for the PIC16F84, but the instruction set should be the same, since all are mid-range chips. With a few manipulations (see Disassembly Notes), I got assembly-language source files that look plausible and are acceptable to MPLAB. One feasible and useful thing to do with raw assembly code is to see how pins are defined. For multiple-function pins, I searched for control-register settings that specify how these pins are used. For I/O pins, I looked for TRIS settings to determine I/O directions. I also searched for all I/O pins that are explicitly tested or written and for whole-port reads and writes. I've started to analyze the source code from microcontrollers A and C. I haven't done anything yet with the source code from chip B, except extract and post it. I'm not a PIC expert, so it's very possible I've made mistakes or have overlooked things. Sections:
|