I plan to use assembly language with the Handy Board. What is the memory map of the Handy Board 6811 system?

Rating: +1

Positive Negative

Compilers other than Interactive C may easily be used with the Handy Board, or you may code directly in assembly language. Here is the memory map of the Handy Board hardware, which is necessary if you are writing your own drivers:



















Device


Location


Notes


6811 internal RAM


$0000-$00ff (A1 chip)

$0000-$01ff (E1 chip)

Built-in


6811 control registers


$1000-$103f


Built-in


Expansion I/O Bank 0


$4000-$4fff


Memory reads in this range enable the Y1 latch selector, present on the HB Expansion Bus. Memory writes in this range enable the Y0 selector on the Expansion Bus. No devices are present on a stock Handy Board.


Expansion I/O Bank 1


$5000-$5fff


Reads enable Y3; writes enable Y2. See explanation above.

Expansion I/O Bank 2


$6000-$6fff


Reads enable Y5; writes enable Y4. See explanation above.


Digital inputs

$7000-$7fff


The digital inputs consist of the two switches and sensor ports 10 through 15. A memory read from anywhere in this range returns the value of the digital input byte.


Motor outputs


$7000-$7fff


A memory write to anywhere in this range controls the motor outputs. The low four bits are motor direction, and the high four bits are motor enable (1=on).


External RAM


$8000-$ffff

The 32K of battery-backed memory is mapped to the upper 32K block of the 6811 address space.

Please note one special case regarding the memory map: the Handy Board operates its 6811 in “Special Mode.” This causes the 6811 interrupt vector bank to be located at $bfc0 to $bfff rather than the normal area ($ffc0 to $ffff).


Special Mode allows the 6811 to switch back and forth between expanded mode operation—the mode in which the external RAM is active—and single-chip mode. The Handy Board uses the single-chip mode to communicate with the LCD screen, which cannot “talk” at the normal rate of the peripheral bus.

So, make sure to declare your interrupt vectors in the Special Mode range of $bfc0 to $bfff. For example, the RESET vector is located at $bffe:$bfff.

Any normal downloader program (e.g., dlm.exe for DOS, hbdl.exe for Windows, or 6811 Downloader for Macintosh) can be used to download the standard Intel hex file (with .s19 or .hex suffix) produced by standard 68HC11 development tools.

For information about how the Handy Board’s memory map is accomplished, please see 6.270 Robot Builder’s Guide Appendix B. This technical appendix explains the 6.270 Board’s design, which uses the same memory and peripheral circuit as the Handy Board.

Leave a Comment

You must be logged in to post a comment.