|
|
|
Hardware
My robot is based on the Motorola Coldfire CPU (5206e @ 54Mhz). I'm using a
M5206eLite evaluation board with 1MB of SRAM and 2 f**king connectors for
the expansion bus (plus some other features). That's why I first had to build a bus adapter (the
one connected to the coldfire board) to get a "normal" connector.
On this picure you can see from left to right, top to botom :
- The IR colision detector
- The step motors driver board
- The 2 stepper motors
- The 32 inputs / 32 outputs board
- The bus adapter (just connections, no logic in this one)
- The coldfire M5206eLite board.
- The battery (for the electronics, the motors will have their own bateries)
- The power convertor
Picture of the different parts.
(click on the picture for a larger view)
|
|
Schema of the 32 inputs / 32 outputs board ( Eagle schematic file and Eagle board file).
(click on the picture for a larger view)
|
Schema of the infrared detector ( from Dennis Clark' site : IRBOT, the slow and timid).
(click on the picture for a larger view)
|
Software
For the development, I'm using the gcc-m68k cross compiler. I'm mostly using the gnu assembler (version 2.9.5 elf format output) under linux.A small script named as5206e allows me to use most of the standard motorola syntax instead of the gnu one :
m68k-elf-as --gstabs -alh --bitwise-or -m5206e -mmac -mhwdiv --register-prefix-optional $1 -o $2.o
m68k-elf-ld -Ttext 0x30020000 --stats --oformat srec $2.o -o $2.srec
m68k-elf-ld -Ttext 0x30020000 --stats --oformat elf32-m68k $2.o -o $2.elf
the script is used like this :
as5206 io.asm io
This generates io.o, io.elf and io.srec, so you have the choice of the format you want to use for uploading the soft on the board.
This allow you to use this type of syntax :
move.l #stack,a7
move.l #0x30000000,a0
movec a0,vbr
/* activate TA on 7 segments display */
move.w #ENABLE_AA,d0
move.w d0,CSCR3
/* set CS1 to access the I/O board at address 0x40010000 */
move.w #0x4001,d0 /* base addr = 0x40010000 */
move.w d0,CSAR1
moveq #0,d0 /* 64K */
move.l d0,CSMR1
/* |||| || */
move.w #0b0001100100000011,d0 /* 32 bit, 6 wait states, r/w, hold add
move.w d0,CSCR1
Contact
If you have any questions or commentsemail me at : pineau at rti-zone dot org
Last updated : June 3 2001
|
|