Rigel RMB-167 User Manual Download Page 28

-  -

22

Note that the NOP (no operation) operations are required to fill the 32 bytes, since the bootstrap
loader remains active until all 32 bytes are received.  When the bootstrap loader receives its last
byte and places it in address 0FA5Fh, it makes a jump to 0FA40h and starts executing the code.
This is the short loop given above.  Note that at this time the internal RAM starting from 0FA60h
does not contain any relevant code.

The short loop takes advantage of the serial port S0 which is already initialized.  It waits for a user
specified number of bytes, 604 bytes in this case, and places these bytes consecutively starting
from internal RAM location 0FA60h.  When the loop is done (all 604 bytes received) the program
continues by executing the NOP operations, and then executing code from 0FA60h on.  Thus the
604 bytes loaded by the secondary loop are also interpreted as code.

The user may alter the number of bytes to be loaded by changing the 21st and 22nd bytes (BB
and FC) which give the address (the low byte, followed by the high byte) of the last byte to be
read by the loop.  Note that there is a practical limit to the number of bytes that can be
downloaded by this loop: the PEC source and destination pointers as well as the SFRs which
occupy addresses FDE0h and above must not be overwritten by data bytes.

Due to the powerful instruction set of the C167, a lot of functionality can be implemented within
604 bytes of code.  The 604 bytes contained in the file BTL67.DAT downloads a minimal monitor
program.  This program contains an initialization routine, subroutines to send and receive
characters through the serial port, a subroutine to download code in the Intel Hex format, and a
subroutine to jump to any location within the 64K segment.  The latter two are invoked by single-
letter commands.

The 604 byte-code may be broken down into four sections.

1.

Initialization code to be executed after the 32-byte bootstrap

2.

Code to be written starting at address 0 to be executed after the software reset.

3.

The minimal monitor to be placed starting at address 8000h

4.

The software reset (SRST) instruction to leave the bootstrap mode.

Sections 1 and 4 are somewhat different than sections 2 and 3.  The bytes downloaded in
sections 1 and 4 are actual instructions which are executed after the 32-byte bootstrap load is
completed.  Sections 2 and 3 are instructions to poke bytes into memory.  More specifically, in
section 2, bytes are written to memory locations starting from address 0.  In section 3, from
address 8000h.  The bytes placed into memory locations starting from address 0 is executed after
the software reset instruction.  This is an initialization program which, upon completion, branches
to address 8000h to execute the minimal monitor program.

For example, the initialization code starting at address 0 begins with the two instructions

DISWDT
EINIT

whose machine instructions are (

A5 5A A5 A5

) and (

B5 4A B5 B5

),

Summary of Contents for RMB-167

Page 1: ...RMB 167 USER S GUIDE Version 1 0 July 1998 RIGEL CORPORATION P O Box 90040 Gainesville Florida 32607 352 373 4629 www rigelcorp com...

Page 2: ...form or by any means electronic mechanical photocopying recording or otherwise without the prior written permission of Rigel Corporation The abbreviation PC used throughout this guide refers to the IB...

Page 3: ......

Page 4: ...MS IF THE FOREGOING LIMITATIONS ON LIABILITY ARE UNACCEPTABLE TO YOU YOU SHOULD RETURN ALL ITEMS PURCHASED TO YOUR SUPPLIER 3 READS166 referred to as simply READS License The READS166 or the READS166...

Page 5: ...ware Set up 7 3 7 3 PC set up 7 4 OPERATING NOTES 8 4 1 POWER 8 4 2 SERIAL PORT 0 8 4 3 SERIAL PORT 1 8 4 4 JUMPER SELECTION 8 4 5 LEDS 8 5 MEMORY OPTIONS 9 5 1 RAM MEMORY OPTIONS 9 5 2 EPROM MEMORY O...

Page 6: ...10 1 1 Project 27 10 1 1 1 Executable Projects 28 10 1 1 2 Archive Projects 28 10 1 2 Module 28 11 CIRCUIT DIAGRAMS 29...

Page 7: ...rm 1 1 Hardware SAB C167 high performance microcontroller Internal 16 channel 10 bit analog to digital converter Bootstrap loading feature Runs at 40Mhz with zero wait states One serial port One high...

Page 8: ...66 is a designed as a low cost C compiler which provides a quick development cycle for simpler applications which do not need more than 64K of code or the use of standard C libraries Rc66 implements a...

Page 9: ...el Products 166 Software READS166 exe program Click on the exe file and the program will begin to load in your system Follow the standard install directions answering the questions with the appropriat...

Page 10: ...d customer numbers If you are using the demo version of the software you may press CANCEL and the box will disappear and the About Box will appear Press the OK button in the About Box and the software...

Page 11: ...will need to select the COM port you are using and the baud rate 3 5 Bootstrapping In the default configuration all monitor programs are downloaded to the boards after the boards are bootstrapped That...

Page 12: ...e letter commands the monitor will recognize The READS monitors use single letter commands to execute basic functions Port configurations and data as well as memory inspection and modifications may be...

Page 13: ...elds are for information purposes only If the fields are not as listed above you may search for a record which matches the desired fields Once located go to the TTY Options dialog and select the corre...

Page 14: ...lines by G Ground T Transmit and R Receive on the RMB 167 silk screen 4 3 Serial Port 1 Serial port 1 is used as a synchronous serial channel by the SAB C167 It has 3 TTL level signals MRST Master Re...

Page 15: ...The RMB 167 has sockets to accommodate two 27C256 type 32K EPROMS Two chips are needed one for EVEN and the other for ODD addresses The EPROMS may be configured to occupy low memory high memory or sta...

Page 16: ...RMON167 to EPROM As an example of placing a valid program in EPROM consider modifying the monitor program RMON167 as given below It is assumed that the lower 32K of memory is EPROM and the higher 32K...

Page 17: ...F800h 1111 1000 0000 0000 b nop initialize CPS 0xFA 0x00 0x10 0x80 jmps far 1000h jump to next1 far intersegment jump to update CPS next1 dw 000FAh dw 01010h next1 initialize DPPx mov DPP0 0 no change...

Page 18: ...12 mov SYSCON 0F800h SYSCON is 89h on the 167 dw 089E6h dw 0F800h nop mov SYSCON 0F800h SYSCON is 89h on the 167 dw 089E6h dw 0F800h...

Page 19: ...IAL PIN 4 A21 COMBINATORIAL PIN 5 A22 COMBINATORIAL PIN 6 A23 COMBINATORIAL PIN 7 RSTIN_ COMBINATORIAL PIN 8 RSTOUT_ COMBINATORIAL PIN 9 CFG0 COMBINATORIAL PIN 11 CFG1 COMBINATORIAL outputs PIN 12 HIS...

Page 20: ...IN 13 RAMSELH_ COMBINATORIAL PIN 14 ROMSEL_ COMBINATORIAL PIN 15 MA14 COMBINATORIAL PIN 16 MA15 COMBINATORIAL PIN 17 MA16 COMBINATORIAL PIN 18 MA17 COMBINATORIAL Boolean Equation Segment EQUATIONS RAM...

Page 21: ...AUX0 COMBINATORIAL PIN 16 AUX1 COMBINATORIAL PIN 17 DUMMY COMBINATORIAL PIN 18 LEDRST_ COMBINATORIAL PIN 19 LEDAUX_ COMBINATORIAL Boolean Equation Segment EQUATIONS RSTCYC RSTIN_ RSTCYC_ RSTCYC_ RSTOU...

Page 22: ...SET COMBINATORIAL PIN 11 AUX0 COMBINATORIAL PIN 19 AUX1 COMBINATORIAL outputs PIN 12 RAMSELL_ COMBINATORIAL PIN 13 RAMSELH_ COMBINATORIAL PIN 14 ROMSEL_ COMBINATORIAL PIN 15 MA14 COMBINATORIAL PIN 16...

Page 23: ...er Individual signals of these jumpers are listed below The tables reflect the physical orientation of the headers and the enumeration of their individual posts Pin 1 is identified as the post with th...

Page 24: ...5 0 5 6 P5 1 P5 2 7 8 P5 3 P5 4 9 10 P5 5 P5 6 11 12 P5 7 P5 8 13 14 P5 9 VAGND 15 16 S1I not used VAREF 17 18 S1O not used P2 0 19 20 P3 0 P2 1 21 22 P3 1 P2 2 23 24 P3 2 P2 3 25 26 P3 3 P2 4 27 28 P...

Page 25: ...0 P7 0 P5 1 21 22 P7 1 P5 2 23 24 P7 2 P5 3 25 26 P7 3 P5 4 27 28 P7 4 P5 5 29 30 P7 5 P5 6 31 32 P7 6 P5 7 33 34 P7 7 P5 8 35 36 P8 0 P5 9 37 38 P8 1 P5 10 39 40 P8 2 P5 11 41 42 P8 3 P5 12 43 44 P8...

Page 26: ...ected to the SAB C167 VAREF and VAGND inputs Post 1 of JP4 marked VCC is connected to the 5 volt supply Thus connecting this post with the center post selects VAREF to be the same as the 5 volt supply...

Page 27: ...top bit and no parity bits The C167 responds with the byte A5h Then the host expects 32 bytes of code to be downloaded to internal RAM starting at address 0FA40h and run Since 32 bytes is not enough t...

Page 28: ...C167 a lot of functionality can be implemented within 604 bytes of code The 604 bytes contained in the file BTL67 DAT downloads a minimal monitor program This program contains an initialization routin...

Page 29: ...sections 2 and 3 First the word is written to register R1 Then the register is copied to memory The file BTL67 DAT contains the bytes downloaded to the RMB 167 board during bootstrapping The file BTL...

Page 30: ...the first 64K segment A jump is performed to this address If a user program is downloaded using the D command say at address 0C000h then the GC000 command branches to the user program In many cases t...

Page 31: ...speed or size but rather for clarity and pedagogical value The legal users are encouraged to modify RMON167 and use portions of it in applications programs The single letter commands of RMON167 are ex...

Page 32: ...current output value to port n Pn mmmm sets the current value of output port n to mm Note that individual bits of the ports may be programmed as input or output Thus the word returned by Pn gives the...

Page 33: ...Ra66 completes assembly in a single pass Rc66 The READS166 C Compiler Rc66 is a C Compiler for the C166 family of processors It compiles code for the tiny memory model which fully resides in the firs...

Page 34: ...ts as a repository which you may add modules to or copy modules from Executable projects can be quickly constructed using already written and debugged modules from an archive project 10 1 2 Module A m...

Page 35: ...29 11 CIRCUIT DIAGRAMS...

Reviews: