Section 23: embedded ds80c400 silicon software, Serial loader, Autobaud-rate detection – Maxim Integrated High-Speed Microcontroller Users Guide: Network Microcontroller Supplement User Manual
Page 189: Command line interface, Command summary

High-Speed Microcontroller User’s
Guide: Network Microcontroller
Supplement
189
SECTION 23: EMBEDDED DS80C400 SILICON SOFTWARE
The DS80C400 silicon software has been designed and embedded into the DS80C400 to give developers a means to quickly and cost-
effectively network-enable any given application. The DS80C400 ROM firmware implements three major components: full TCP/IP
IPv4/v6 stack with industry standard/Berkeley socket interface, preemptive task scheduler, and NetBoot functionality. A basic summa-
ry of these components and a high-level overview of the DS80C400 silicon software capabilities can be found in the DS80C400 data
sheet. Section 23 provides more detailed information on usage of the functions provided by the DS80C400 silicon software.
SERIAL LOADER
The DS80C400 silicon software contains a serial bootloader to support in-system programming of external memory. The serial loader
can be invoked following an external reset (RST = 1), provided that certain conditions are met. First, the EA pin must be pulled high
externally in order to enable internal program memory. Next, the bypass ROM (BROM) bit must be set to 0, such that the ROM code
is executed and not bypassed. The BROM bit can serve to trigger a reset when changed from 0 to 1 by the application code. When
the application writes BROM from 0 to 1, the application expressly wants to generate a reset and bypass the ROM code; therefore, the
serial loader is not accessible. When both of the previous conditions are true following a reset, EA = 1 and BROM = 0, the ROM code
examines the state of port pin P1.7. If P1.7 is found to be a logic 0, the DS80C400 silicon software skips the serial loader code and
proceeds to its check of the NetBoot (P5.3) pin. If P1.7 is in the logic 1 state, the DS80C400 silicon software code enters the serial
loader autobaud-rate detection code.
AUTOBAUD-RATE DETECTION
The serial loader can automatically detect certain external baud rates and configure itself to that speed. The autobaud routine oper-
ates serial port 0 in asynchronous serial mode 1 (8-N-1 or 8 data bits, no parity, 1 stop bit) and monitors the receive pin (RXD0) for a
<CR> character (0Dh) at a supported baud rate. The autobaud routine uses 16-bit Timer 1 to measure the duration of the (0Dh)
received data bits. This measured duration is translated into a corresponding reload value for timer 2, which is used by the ROM for
serial port timing generation. The functionality was designed for external clock rates from 3.680MHz to 75.000MHz and baud rates from
2400bps to 115,200bps. The following crystal speeds, however, have been shown to support a wide range of baud rates: 11.0592MHz,
14.7456MHz, 18.432MHz, 22.1184MHz, 29.4912MHz, and 36.864MHz. The autobaud-triggering carriage return character must be
received by the microprocessor in a time window following activation of the loader mode. If a DS2502 or equivalent is properly con-
nected to the DS80C4xx, the time window opens 250ms after loader activation and stays open a minimum of 3.5 seconds to a maxi-
mum of around 5 seconds.
If a DS2502 or equivalent is not detected, the time window opens 250ms after loader activation and stays open for approximately 10
seconds at 14.7456MHz (scale to your frequency).
If the autobaud routine does not detect any serial activity during this period, it aborts the autobaud process and proceeds to the next
decision point in the ROM code flow. If the autobaud routine is successful, the TINI ROM transmits a startup banner and displays a
command prompt similar to what is shown below.
DS80C400 Silicon Software—Copyright (C) 2002 Maxim Integrated Products
Detailed product information available at http://www.maxim-ic.com
Welcome to the TINI DS80C400 Auto Boot Loader 1.0.1
COMMAND LINE INTERFACE
The serial loader supports an easy-to-use, ASCII command line interface that responds to the commands that are detailed later. Some
commands require arguments and some commands have optional arguments. In all cases, the arguments are expected to be hexa-
decimal numbers. The serial loader manages memory in 64kB blocks (or banks). The most significant 8 bits of the 24-bit memory
address are used to define the bank index. Most commands apply to the selected bank.
COMMAND SUMMARY
B bank
Bank Select—Selects the given bank of memory as the target for subsequent serial loader operations.
Example:
B C0
(selects the 64kB bank of memory C00000h–CFFFFFh)
C [begin address [length]]
Calculates the CRC-16 (cyclic redundancy check) of length bytes within the currently selected memory bank, start-
ing at begin address. Algorithm used is: CRC-16 IBM x
16
+ x
15
+ x
2
+ 1 (also known as CRC-16) 0x8005 or
0xA001 (0x4003)
Examples:
C
(calculates the CRC over the full 64kB bank xx0000h–xxFFFFh)
C 1000
(calculates the CRC for the range xx1000h–xxFFFFh)
C 1000 200
(calculates the CRC for the range xx1000h–xx1200h)
Maxim Integrated