Freescale M/P Components and CodeWarrior
For my last 3 microcontroller projects I've used Motorola / Freescale products.
The first project was the initial version of the synthesizer controller that used the now legacy MC68HC705C8AP
40 pin One Time Programmable (OTP). I used the quartz lid version
of this processor for the initial debugging as the chip could be erased
by an ultra violet light source and reused almost indefinitely.
The code itself was written, assembled and debugged on a system
developed by P&E Microsystems and then made available to users as
freeware by Motorola. Once the code was finalized, the OTP processors
were used. Once thoroughly debugged, the OTP processors worked flawlessly.
With these chips, the development cycle was lengthy. It was necessary to:
- write / assemble the code,
- debug it in the simulator,
- place an erased (quartz lidded) chip into the programmer,
- program the chip with the computer,
- remove the chip from the programmer,
- place the chip in the circuit,
- run the code,
- note any problemms / changes,
- remove the chip from the circuit,
- place it in the UV 'eraser',
- erase the chip (takes about 15 minutes)
- return it to the programmer, and so forth.
The second project was an automatic magnetic loop controller using a newer and smaller chip, the 18 pin MC68HC098QY2 flash based processor. Development work was done on the Freescale / Metrowerks CodeWarrior Integrated Development Environment (IDE).
Using a Freescale flash based processor was an order of magnitude
easier as it was no longer necessary to remove, erase and then
reinstall the chips as in the previous case.
The newer Freescale chips are flash based. This means that they
no longer need to be erased by a UV light source. Furthermore,
they can be programmed almost directly from the personal computer that
is used to develop and debug the application itself. All one has
to do is to build a very simple interface circuit using a handful or
parts and then connect the P/C to the board to the computer with a
serial cable. The Freescale Applications notes provide all the
required information needed.
To program one of Freescale's flash based chips,
several preassigned I/O pins must be taken to either VDD or VCC
with 10K resistors, and an approximate 9 volt source applied to another
pin. Once done, this places the chip in the 'monitor mode' so
that programming can take place. To make these preassigned pins
work in both the programming and in-circuit modes, all one has to do is
to install (3) switches on the development board. In one
position, programming is enabled, in the other, they are cut through to
the actual circuit. This way, the processor can remain in place
and undisturbed on the development board until the code is perfected.
This alone is an order of magnitude improvement over the 'legacy' processors.
As an example, attached is a picture of the homebrew development station
used for the latest version of the synthesizer controller. It was
assembled on a Radio Shack perfboard and allows connection to the P/C
(for software development and programming) and to the target radio (to
verify operation). You'll note that both a keypad and LCD display
are connected to it. It's a very simple matter to make changes to
the code, assemble it, simulate it (if at all necessary), program the
chip and then verify its operation on an actual radio.
To find those really insidious programming errors, the CodeWarrior IDE
can be used to single step the instructions in the actual working
environment. Breakpoints can be set, registers / memory contents
examined and the overall operation assessed. It's a very powerful tool.
In addition, the flash based memory of these chips can be used to
store non volatile, semi-permanent information. This is easily
done with some instructions, and this feature is the basis for the 100
scannable channel capability of the latest synthesizer controller chip.
Finally, Freescale offers an on-line repository of applications notes
chock full of helpful suggestions, illustrative software and the like.
To complement this, Freescale sponsors User Groups whose members
will answer questions, review problematic code, offer suggestions, and
so forth. These folks are remarkably patient and extremely
helpful.
In closing, I've thoroughly enjoyed working with the Freescale products and their people.
As a retired 'telephone company' manager, I'm but a 'duffer' when it
comes to micro controller programming. I like it mainly because
it reminds me of the times that I spent in the 1970's working on
Electronic Switching Systems (ESS).
However, there are many others out there who do this for their
livelihood and are striving for proficiency in today's competitive
world.
They would to well to become
familiar with the Freescale website, their products and most especially
CodeWarrior Integrated Development Environment.