> Unlike the other c.a.e posters,
> I am a hobbyist (at least when it comes to embedded work).
My embedded work is also only hobbyist, so far.
>> > Or maybe someone just enjoys soldering their own computer and the
>> > feeling when it's booted for the first time (if it boots...)?
Circuit Cellar and other "maker" engineering forums
similarly enjoy "programming in solder"
despite the proliferation of microcontrollers in just about everything.
>> Well, as long as 8-bit architectures are concerned, my current
>> preference are AVR MCUs
> When it comes to 8-bit MCUs, my strong preference is for the AVR;
> it's a very well supported architecture for hobbyists.
> I've also done some work with the PIC18 range
> (it has USB device in PDIP, which the AVR does not)
> but I would strongly advise against the 8-bit PICs
> (lousy architecture, including poor interrupt capabilities)
> unless you have a very good reason for needing them.
I learned the PIC-18 for a masters level course for interfacing sensors
(the course was "instrumentation systems & microprocessors)".
The instructor had used the PIC-16 and was intrigued by the PIC-18
so we learned it together.
Despite being weaned in the ways of the PIC,
I agree that it's difficult to defend the architecture design & implementation,
particularly the non-vectored interrupt.
I was wary of the Atmel AVR because of all the Arduino folks
doing trivial projects with it, but I must agree that it's a nice chip.
At $4.30, the 16 bit TI MSP430 "Launchpad" developer's kit
is TRYING to be hobbyist friendly and compete for the Arduino crowd
but it just doesn't have the critical mass of support & interest.
Friends were early adopters of the MSP430 for the GNU toolchain
(they ONLY use open source Linux tools).
The Freescale "ColdFire" is
the embedded version of the 32 bit Motorola 68000
which is one of the nicest architectures ever.
But Freescale's sales force is currently pushing their ARM chips
and shows no interest in encouraging ColdFire development
despite destroying CodeWarrior (which was an architecture-neutral
development system for embedded systems,
but after Freescale acquired it, only Freescale parts are supported).
As for USB, having it as a built-in peripheral is nice
but then the software must enumerate as a standard serial port
lest you require custom drivers on everything to which it connects.
It's so much easier to just use a FTDI FT232RL
to convert between USB and serial. It does ALL THE WORK,
and has internal EEPROM for setting speeds, name, etc.
(the Prolific USB chip has no nonvolatile RAM,
so it must be reconfigured every power-up).
And everyone liked it: Linux, Windows all have drivers.
>> Depending on the chip, the cost may be in the
>> $2 .. $5 a piece range.
Or free. Free Atmel samples are available, max 3 of the same item.
I'm yet to try Microchip for PIC samples.
>> The cons. is that these employ the Harvard architecture, and
>> thus implementing a "conventional" 8-bit OS on such an MCU
>> would be challenging at best.
You're probably right if trying to port "classic" systems
such as CP/M since they co-mingled code and data so much.
But even simple Z80 systems
1) did some memory mapping for the boot ROM to appear for a while
even if RAM later filled the address space
2) did memory banking to break the 64k barrier
similar to the way the PC banked RAM to first break the 640k limitation.
3) had embedded versions to run from ROM
Harvard Arch is not such an alien concept.
Many machines had memory management that separated
I (instruction) from D (data).
The Z80's M1 line COULD be used to qualify the memory cycle
for an external memory management unit to differentiate
instruction fetch from data read/write,
allowing 2 separate 64k address spaces
and tricks like cycle stealing
(accessing the "other" memory while otherwise idle).
(Use static RAM and the refresh cycles
are also available for one access by other devices).
Did any machines do that?
I'd say it's pipelining that's most confusing to beginners.
First of all, it complicates timing calculations.
Secondly, it complicates single stepping for debugging.
> Seeing where this is been crossposted from,
> is the intention to implement
> a CP/M clone on a hobbyist built board ?
I still have my Z80B 6 MHz CP/M Servo-8 SBC,
so I have authentic vintage hardware.
But I'm also learning & enjoying modern microcontrollers
since that's a more current, active & vibrant community.
And might help me on some consulting assignments too :-)
There are curious overlaps of the 2 communities,
such as Apple ][ and Commodore 64 folks with retrofits
such as SD card, ethernet adapters.
>One device which has caught my attention is the PIC32MX, which is a 32-bit
>MIPS architecture with a PIC24 style peripheral set. It's been on my to-do
>list to have a look at for the best part of this year (but other projects
>keep taking priority).
Just to muddle things
1) There's a PIC32 based Arduino board!
See the chipKIT on
www.microchip.com
2) MIPS had finally been acquired by other companies
so they're allegedly stable again.
MIPS was one of the early fabless RISC core designers.
They're TRYING to compete with ARM
for the 32 bit RISC microcontroller arena.
The Microchip PIC32 is a MIPS core.
Since you mention the PIC24:
the "Microstick" is a cheap development kit for the PIC24
www.microchip.com/microstick3V
because they're trying to compete with the
TI MSP430 "LaunchPad development Tool"
www.ti.com/launchpad
for low power 16 bit microcontrollers.
Too many choices!
-- jeffj