Hi Chuck,
-----Original Message-----
From: time-nuts-bounces@febo.com
[mailto:time-nuts-bounces@febo.com] On Behalf Of Chuck Harris
Sent: Wednesday, February 20, 2008 3:21 PM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] favorite microcontroller module?
When you are trying to develop a part, and you don't want to
use an emulator, or simulator, it can be handy to wire up a 1
wire TTL RS-232 port to let you know what is going on. With
the CCS C compiler, I can put a very tiny software UART on
any pin. So, for instance, I can use a pin that ordinarily
would run an LED as a diagnostic port.
I had forgotten these tricks, which were the norm 20 years ago when I was
too lazy to pull the 6805 emulator. Now that I am used to the full debug
capability of the Silabs chips, which uses only the reset and one other pin
on the smaller chips (the other pin being able to share debug and normal
duty), I don't have to resort to tricks like this :-) You get that
capability even with their $18 USB based "development system" that's the
size of a stick of gum.
Many would say this is a religious issue, but I would disagree.
The 6 and 8 pin PICS are simply awesome in what they can do
in virtually no space. The tools are cheap, or free. The
PIC's are cheap too.
No religion involved, I think the PIC line is unequalled when it comes to
the variations and features that are available in the small pin count
packages. Silabs only has half a handful of chips in DIP packages (is two
the same as half a handful?) but they have some pretty awesome parts in SM
packages that are 3x3 mm or so (they start at 11 pins, 10 + a tab), so if
you do not do the soldering by hand, you can't complain that there is no
room for a powerful uC.
I am getting familiar with the AVR line simply because a number of my
friends use them and speak highly of the architecture, but in general, I try
to stay with open, multi-sourced architectures, so the 8051 has a leg up on
PICs and AVRs from the start. I made that decision when Motorola forced me
out of the 68HC05, like so many others. I have not regretted it. Motorola
was not able to get me in the HC08, even though they gave it a good try. I
was not going down that road again. Burn me once, shame on you, burn me
twice, shame on me (or is it: don't burn me again?)
The Silabs chips start at a couple of $, so they are out of the sub-$1
market for sure. That's fine with me, I don't mind paying an extra $ for the
features and convenience :-)
Like many things, uC are tools. The tool that you are the most comfortable
with is often the best choice, for practical reasons, even more so when you
have to make a living out of it. For me, it's important to know that when I
start a project, I can finish it within schedule and within budget. My
familiarity with the 8051 and many of its variants (and my favorite
compiler, and the ton and a half of available code) gives me that
capability, but as you pointed out, it's not the only way. I understand you
feel the same about the PIC. That's perfectly OK.
Now, if you want an evening of fun, buy a Silabs toolstick and a base
adapter (about $28 + shipping from Mouser) and you have everything you need
(hardware and software, including demo version of the Keil C compiler) for a
fun uC project. Please note the Keil C51 compiler can be replaced with the
free and excellent SDCC compiler.
Here is an example of what you can do in an evening:
http://www.ko4bb.com/Test_Equipment/AFSignalGenerator/SigGen.html
I have built a bunch of small projects using the small Silabs target boards
directly.
Didier
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.20.9 - Release Date: 2/20/2008 12:00
AM
-----Original Message-----
From: time-nuts-bounces@febo.com
[mailto:time-nuts-bounces@febo.com] On Behalf Of Chuck Harris
Sent: Wednesday, February 20, 2008 8:12 PM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] favorite microcontroller module?
Bob Paddock wrote:
On Wednesday 20 February 2008 11:53:23 am Chuck Harris wrote:
I doubt it, the audience of these two devices is quite different.
The 6805 family could address 64K external RAM/ROM/IO.
Not sure what device you are describing, but it is not a 6805.
I had thought it did, but looking on google it appears that
it has a fixed RAM and ROM space... rather capacious compared
to my usual needs.
There was ONE variant of the 68HC05, the original CMOS (as opposed to the
NMOS 6805) which had an external address and data bus. It came in a 40 pin
DIP package. I never used it but I saw it in equipment I was working with at
the time. It had a few instructions that the NMOS parts did not have, but it
was supplanted by the HC05.
Didier KO4BB
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.20.9 - Release Date: 2/20/2008 12:00
AM
Mike S escribió:
I suppose it's a religious issue, but I have always preferred
Motorola-style (MOS, Microchip), instruction sets (more orthogonal) and
mnemonics to Intel-style ones (Atmel). It makes more sense (at least in
English) to say "put the bread on the table," than "put on the table
the bread."
And don't get me started about linear addressing and memory I/O
(Motorola) vs. butt-ugly segmented addressing (Intel).
Exactly the two reasons that made me say '6805 and 6811 were fun' and 'I
did not liked the 8051 at that time' :)
Regards,
Javier
Javier Herrero EMAIL: jherrero@hvsistemas.com
HV Sistemas S.L. PHONE: +34 949 336 806
Los Charcones, 17A FAX: +34 949 336 792
19170 El Casar - Guadalajara - Spain WEB: http://www.hvsistemas.com
At 12:03 AM 2/21/2008, Chuck Harris wrote...
I'm not arguing anything at all. Assembler in the form of
mov x,3000 meaning x=3000 has been around from the very beginning.
One could equally say "move 3000,x meaning x=3000." What's your point?
Intel didn't need an excuse, they were the inventors, and Pascal is
why they created the CS, DS, ES, SS architecture.
Repeating something doesn't make it so. Authoritative citations, please
(preferably contemporaneous with the release of the architecture, and
not current rationalizations).
It would have been impossible for intel to put a 32 bit bus and
register set on a processor like the 8086 back in 1978.
Yet only a year later, in 1979, Motorola introduced the 68000 with a
full 32 bit architecture.
It would have been impossible for any foundry at that
time. Motorola had the benefit of being a few years later on the
design curve.
mov one,few
Motorola's architecture may have been more elegant, but they lost on
price vs. performance.
They lost for one reason, and one reason only. IBM chose to base the PC
architecture on Intel.
Ah what I wouldn't give for a old TI 99xx BLWP (Bullwhip) Branch and Load
Workspace Pointer... NOT!
Mike S wrote:
At 12:03 AM 2/21/2008, Chuck Harris wrote...
I'm not arguing anything at all. Assembler in the form of
mov x,3000 meaning x=3000 has been around from the very beginning.
One could equally say "move 3000,x meaning x=3000." What's your point?
Blaming intel for an assembler language construct that had been in common
usage for 30 years is unreasonable. They were just conforming to a style
that programmers already understood. If you didn't like it, it was trivial
to change even in the earliest intel 8080 assemblers.
Intel didn't need an excuse, they were the inventors, and Pascal is
why they created the CS, DS, ES, SS architecture.
Repeating something doesn't make it so. Authoritative citations, please
(preferably contemporaneous with the release of the architecture, and
not current rationalizations).
I cannot find any reference for the Pascal connection, so it is likely
that I am misremembering something. It does seem a bit odd, in face of
the fact that intel never even produced a Pascal compiler, that they would
have even thought of Pascal when designing the 8086.
I will go with the thought that the 8086 was a 16 bit machine, and as such
directly addressed 64K. The different segment registers allowed it to
be maximally relocatable within a 20 bit address space.
In this regard, it was exactly like the old DEC PDP-11/74. It too was a 16 bit
machine, and could only directly address 64K. It too had a 64K I, and a 64K D
space. It was not a 32 bit machine in any way shape or form.
The 8086 was clearly designed with compilers in mind, evidenced by the heavy
support of stack frames.
It would have been impossible for intel to put a 32 bit bus and
register set on a processor like the 8086 back in 1978.
Yet only a year later, in 1979, Motorola introduced the 68000 with a
full 32 bit architecture.
Sorry, but that is not so. The 68000 was a 16 bit machine, both internally, and
externally, with 32 bit registers and some 32 bit instructions.
Here is a wiki quote:
"The 68000 grew out of the MACSS (Motorola Advanced Computer System on Silicon) project, begun in 1976 to develop an
entirely new architecture without backward compatibility. It would be a higher-power sibling complementing the existing
8-bit 6800 line rather than a compatible successor. In the end, the 68000 did retain a bus protocol compatibility mode
for existing 6800 peripheral devices, and a version with an 8-bit data bus was produced. However, the designers mainly
focused on the future, or forward compatibility, which gave the M68K platform a head start against later 32-bit
instruction set architectures. For instance, the CPU registers are 32 bits wide, though few self-contained structures in
the processor itself operate on 32 bits at a time. The 68000 may be considered a 16-bit microprocessor which is
microcoded to accelerate 32-bit tasks. The MACSS team drew heavily on the influence of minicomputer processor design,
such as the PDP-11 and VAX systems, which were similarly microcoded."
It wasn't until 1984, with the 68020, that Motorola made a 32 bit microprocessor.
Here is a wiki quote:
"The 68020 added many improvements to the 68010 including a 32-bit arithmetic logic unit (ALU), external data bus and
address bus, and new instructions and addressing modes. The 68020 (and 68030) had a proper three-stage pipeline."
It would have been impossible for any foundry at that
time. Motorola had the benefit of being a few years later on the
design curve.
mov one,few
Sorry, not so, again wiki:
"The original MC68000 was fabricated using an HMOS process with a 3.5-micron feature size. Initial engineering samples
were released in late 1979. Production chips were available in 1980,"
and again wiki:
"The 8086[1] is a 16-bit microprocessor chip designed by Intel and introduced on the market in 1978,"
I realize that "introduced on the market" is a nebulous term, but having
lived through the the introduction in 1978, I can tell you that intel was
well beyond samples at that time.
Motorola's architecture may have been more elegant, but they lost on
price vs. performance.
They lost for one reason, and one reason only. IBM chose to base the PC
architecture on Intel.
IBM's website:
"Next came the 8088, the processor for the first IBM PC. Even though IBM engineers at the time wanted to use the
Motorola 68000 in the PC, the company already had the rights to produce the 8086 line (by trading rights to Intel for
its bubble memory) and it could use modified 8085-type components (and 68000-style components were much more scarce)."
That gave IBM two things they desperately needed, one, the ability to
second source the parts, if necessary, and two, the ability to use available
parts in the design. The 68000 was a pipe dream as far as peripheral parts
went when the PC was being designed.
It is interesting to muse over how different things might have been had IBM
waited a couple of years for the 68000 to be usable, instead of settling for
the 8088.
Anyway, that is enough from me on this side track. Back to favorite
microcontroller modules.
-Chuck Harris
Hi Didier,
.., I can use a pin that ordinarily
would run an LED as a diagnostic port.
I had forgotten these tricks, which were the norm 20 years ago when I was
too lazy to pull the 6805 emulator.
It's sort of funny, 20 years ago, I was flush with emulators, and used them
for most of my development. The had their place back then, as my projects
were spiraling out of control in terms of complexity.
Now, I just do PICS, and don't need such things. I can debug most effectively
with either simple diagnostic messages, or a scope.
I don't miss how code that would work with the emulator bombed without the
emulator ... and vice versa.
Now that I am used to the full debug
capability of the Silabs chips, which uses only the reset and one other pin
on the smaller chips (the other pin being able to share debug and normal
duty), I don't have to resort to tricks like this :-) You get that
capability even with their $18 USB based "development system" that's the
size of a stick of gum.
PIC's will do the same thing. I just haven't had the need to yet.
Many would say this is a religious issue, but I would disagree.
The 6 and 8 pin PICS are simply awesome in what they can do
in virtually no space. The tools are cheap, or free. The
PIC's are cheap too.
No religion involved, I think the PIC line is unequalled when it comes to
the variations and features that are available in the small pin count
packages. Silabs only has half a handful of chips in DIP packages (is two
the same as half a handful?) but they have some pretty awesome parts in SM
packages that are 3x3 mm or so (they start at 11 pins, 10 + a tab), so if
you do not do the soldering by hand, you can't complain that there is no
room for a powerful uC.
True, they have made a number of wins.
I am getting familiar with the AVR line simply because a number of my
friends use them and speak highly of the architecture, but in general, I try
to stay with open, multi-sourced architectures, so the 8051 has a leg up on
PICs and AVRs from the start. I made that decision when Motorola forced me
out of the 68HC05, like so many others. I have not regretted it. Motorola
was not able to get me in the HC08, even though they gave it a good try.
I tried to learn the HC10, but I could find no compelling reason to learn
yet another processor.
was not going down that road again. Burn me once, shame on you, burn me
twice, shame on me (or is it: don't burn me again?)
The Silabs chips start at a couple of $, so they are out of the sub-$1
market for sure. That's fine with me, I don't mind paying an extra $ for the
features and convenience :-)
Like many things, uC are tools. The tool that you are the most comfortable
with is often the best choice, for practical reasons, even more so when you
have to make a living out of it. For me, it's important to know that when I
start a project, I can finish it within schedule and within budget. My
familiarity with the 8051 and many of its variants (and my favorite
compiler, and the ton and a half of available code) gives me that
capability, but as you pointed out, it's not the only way. I understand you
feel the same about the PIC. That's perfectly OK.
Now, if you want an evening of fun, buy a Silabs toolstick and a base
adapter (about $28 + shipping from Mouser) and you have everything you need
(hardware and software, including demo version of the Keil C compiler) for a
fun uC project. Please note the Keil C51 compiler can be replaced with the
free and excellent SDCC compiler.
I have one around here someplace. I was frustrated because I couldn't get it
to work under linux and wine. CCS has a native linux compiler, and their windows
compiler works nicely under wine. I am having some trouble with Microchip's
programmer under the current wine release, but it has worked in the past, I'll
get it working again.
Here is an example of what you can do in an evening:
http://www.ko4bb.com/Test_Equipment/AFSignalGenerator/SigGen.html
Your server seems to be down right now.
-Chuck Harris
At 10:17 AM 2/21/2008, Chuck Harris wrote...
Sorry, but that is not so. The 68000 was a 16 bit machine, both
internally, and externally, with 32 bit registers and some 32 bit
instructions.
Your Intel bias is really showing now. Enough with trying to change the
subject. The discussion was in regard to architecture, not
implementation.
Your original claim was "It would have been impossible for intel to put
a 32 bit bus and register set on a processor like the 8086 back in
1978." That was in support of Intel's segmented memory architecture.
That claim is disproved by the fact that the 68000, which first shipped
in 1979, had a 32 bit architecture. That the first implementation
didn't bring everything at once is beside the point. The programming
model was 32 bit, which very significantly distinguishes it from the
8086 architecture. Perhaps you want to call the 8088 an 8 bit
processor?
8086: 16 bit registers, 16 bit data bus, 16 bit addressing with
segmentation extensions.
8088: 16 bit registers, 16/8 bit data bus, 16 bit addressing with
segmentation extensions.
68000: 32 bit registers, 32/16 bit data bus, 32/24 bit linear
addressing.
68008: 32 bit registers, 32/8 bit data bus, 32/20-22 bit linear
addressing.
(architecture/physical implementation)
Mike S wrote:
At 10:17 AM 2/21/2008, Chuck Harris wrote...
Sorry, but that is not so. The 68000 was a 16 bit machine, both
internally, and externally, with 32 bit registers and some 32 bit
instructions.
Your Intel bias is really showing now. Enough with trying to change the
subject. The discussion was in regard to architecture, not
implementation.
Your original claim was "It would have been impossible for intel to put
a 32 bit bus and register set on a processor like the 8086 back in
1978." That was in support of Intel's segmented memory architecture.
That claim is disproved by the fact that the 68000, which first shipped
in 1979, had a 32 bit architecture.
But not a 32 bit bus (as you have quoted me (above) saying was impossible).
The parallel bus structure, with all of its attending registers, ALU's, and
wiring is what was beyond Intel, and Motorola in 1978 and 1979. They just
couldn't make a die that big, and meet the needed reliability, heat removal,
and cost requirements of a successful commercial processor.
You have my words right there, but for some reason you felt the need to
misrepresent them.
I liked programming on Motorola 68020's. It was easy, and I never felt
like I had to work at all to solve a problem. But at the same time, it
was glacially slow. We got significantly better performance with the same
programs running under the 386 and 486 processors of the day. The compilers
made smaller code for the intel processors than they did for the Motorola,
and the Motorola lost all of the benchmarks we ran. We were undoubtedly
running the wrong benchmarks, and using the wrong compilers, but they were
representative of what we needed done.
That the first implementation
didn't bring everything at once is beside the point. The programming
model was 32 bit, which very significantly distinguishes it from the
8086 architecture. Perhaps you want to call the 8088 an 8 bit
processor?
No, I would call it a mistake, but that is just me. I put a number of
8086's in designs, but never an 8088. I used fast Z80's instead. One
of my all time favorite embedded intel processors was the 80C186. It was
powerful, small, and easy to integrate into designs.
8086: 16 bit registers, 16 bit data bus, 16 bit addressing with
segmentation extensions.
8088: 16 bit registers, 16/8 bit data bus, 16 bit addressing with
segmentation extensions.
68000: 32 bit registers, 32/16 bit data bus, 32/24 bit linear
addressing.
68008: 32 bit registers, 32/8 bit data bus, 32/20-22 bit linear
...
-Chuck Harris
Considering the access problems I have had with my ISP in the last couple of months, I have switched my domain www.ko4bb.com to my backup ISP.
It will take a day or so for the DNS system to flush itself.
In the mean time, you can access it through
The original site's location is www.tonga.globat.com/~ko4bb/ and you are welcome to use it if it works. Right now, I cannot get an answer on what the problem is, so that's why I decided to switch the domain.
It is my intention to always have two ISPs so that the material will always be accessible. It is inexpensive, the two together cost me less than $10/month.
In the mean time, the backup site is not fully populated. Most of the manuals are uploaded (probably 90% or more, but not all the pages on the site, such as the ham radio pages) This will be completed over the coming week-end.
Didier