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