Tony Papadimitriou wrote:
>
> MODA/MODB control the startup mode, one of these four:
>
> 1. SPECIAL BOOTSTAP (single)
> 2. SPECIAL TEST (expanded)
> 3. SINGLE-CHIP (internal memory only)
> 4. EXPANDED (internal and external memories, code normally starts from
> external).
>
> MODA controls the single or expanded part of the mode (0=single, 1=expanded)
> MODB control the normal or special part of the mode (0=special, 1=normal)
Ok so far.
> Special modes are normally used for programming while normal modes are used
> for running your code. You normally want to be in 'normal' mode. Since you
> don't have external memory attached, only option is [3] single-chip mode.
> None of these modes will get your code in EEPROM executed automatically,
> however, except...
OOPS!
If one boots into SPECIAL BOOT mode, and ties TxD to RxD, along
with a pull-up resistor, then the code in EEPROM will automatically be
executed. The SPECIAL BOOT ROM sends a NUL as soon as it is ready to go,
and this can be routed back into the input to cause the jump.
BUFFALO is not needed for this, and indeed, parts without any usable
ROM on them may be used in this manner. I have some Toshiba second-
source parts with no ROM (it all reads back as 00, these are not
OTPs) which I have successfully used in this way.
One might think that this permanently eats up the SCI port, but
not so. I have a circuit around somewhere which uses a bit on
PORTB to do switching of the SCI. Upon RESET, PORTB is forced
to all bits 0. One of these pins can be used as the control
bit for a data selector which connects RxD to TxD upon RESET.
After the code has done minimal setup, it may force the output
pin on PORTB to 1 to connect RxD to a serial I/F chip. This
may be done under control of an external switch, so that
the switch may be set to "program" mode in which RxD is
connected externally, or to "run" in which it is switched
by PORTB as outlined above. TxD still needs a pull-up, but
this is normally supplied by the RS232 I/F chip.
[snip]
> But since you don't have one of these parts, my original reply still holds!
Well, almost :-)
Mike
--
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!

(You need to be a member of m68hc11 -- send a blank email to m68hc11-subscribe@yahoogroups.com )