Forums

newbie, sorta

Started by Scott McDonnell February 12, 2004
Hello all,

I am a second year "electronics technology" student who just finished a
course in
microprocessors. This was using a 68HC11 based trainer. We learned Machine
Language programming, and I taught myself assembly language for the 68HC11.
We also learned interfacing using a PIA.
All this is great if I were to use a trainer for every project I ever do,
but I would like to begin building my own projects. I think I have a fairly
good
understanding of how to create my own 68hc11 board, but I would like
to also learn some other microcontrollers, like Atmels. Also, I haven't
attempted
to build a 68HC11 board yet.

I guess my question is: Knowing what I have experience with in the past and
knowing that I have yet to experiment too much beyond that, can you
recommend a micro(s) that has a similiar architecture to the 68HC11? Memory
Mapped I/O makes the most sense to me at this point, perhaps because our
studies focused on it. Also I used to do some 6502 assembly/ML on the
Commodore 64, which might have also helped make the case for it. Obviously
these are both 8 bit tech, but I don't see why going16 or 32 bit would
be that much more difficult, but is unecessary for any projects I have in
mind at
the moment.

I have PIC development tools/chips/eval board here at home, but the PIC
architecture is SOOO different than anything I have ever seen before; I
cannot seem to grasp it fully. Should I just start with a 65XX/68XX board
and go that route? The reason I would like to try moving on to something
else is the in-built features of other processors (like USB, flash mem,
LCD/KB, etc...) I feel I understand uP tech pretty well and could design
boards with external mem, and I/O using an actual uP, but I would like to
start working with controllers that have all this built in (ie. smaller
designs.) As I said, the PIC is just completely alien to me. Is this what I
will HAVE to expect from a uC? Anything with a "smoother" transistion?

If my questions seem vague, it is because I am not entirely sure what I
should be asking. Perhaps a little prodding will get the right questions
out. My experience is limited, but quite good in its limited sense. Should I
just keep doing 68HC11 stuff until I am a master at it, and THEN it will be
easier to switch platforms? What do you all recommend?


Scott McDonnell



Hello all,

I am a second year "electronics technology" student who just finished a
course in
microprocessors. This was using a 68HC11 based trainer. We learned Machine
Language programming, and I taught myself assembly language for the 68HC11.
We also learned interfacing using a PIA.
All this is great if I were to use a trainer for every project I ever do,
but I would like to begin building my own projects. I think I have a fairly
good
understanding of how to create my own 68hc11 board, but I would like
to also learn some other microcontrollers, like Atmels. Also, I haven't
attempted
to build a 68HC11 board yet.

I guess my question is: Knowing what I have experience with in the past and
knowing that I have yet to experiment too much beyond that, can you
recommend a micro(s) that has a similiar architecture to the 68HC11? Memory
Mapped I/O makes the most sense to me at this point, perhaps because our
studies focused on it. Also I used to do some 6502 assembly/ML on the
Commodore 64, which might have also helped make the case for it. Obviously
these are both 8 bit tech, but I don't see why going16 or 32 bit would
be that much more difficult, but is unecessary for any projects I have in
mind at
the moment.

I have PIC development tools/chips/eval board here at home, but the PIC
architecture is SOOO different than anything I have ever seen before; I
cannot seem to grasp it fully. Should I just start with a 65XX/68XX board
and go that route? The reason I would like to try moving on to something
else is the in-built features of other processors (like USB, flash mem,
LCD/KB, etc...) I feel I understand uP tech pretty well and could design
boards with external mem, and I/O using an actual uP, but I would like to
start working with controllers that have all this built in (ie. smaller
designs.) As I said, the PIC is just completely alien to me. Is this what I
will HAVE to expect from a uC? Anything with a "smoother" transistion?

If my questions seem vague, it is because I am not entirely sure what I
should be asking. Perhaps a little prodding will get the right questions
out. My experience is limited, but quite good in its limited sense. Should I
just keep doing 68HC11 stuff until I am a master at it, and THEN it will be
easier to switch platforms? What do you all recommend?


Scott McDonnell



Hi Scott,
In the working world, the usual route is to start with an idea for a
project (product). The requirements of the project will then determine the
performance and features required of the uP. Yes, existing expertise, tools,
and libraries of tested code will sway the uP decision one way or another,
but the fundamental issue is "what will it take to get *this* project
done?". Figure out what you want *this* project to be and the rest will
follow.

On the subject of choosing a project:: Don't waste your time doing something
you can buy at the local consumer electronics store. Think of something that
you would like to have that doesn't yet exist (or at least with the features
you want). When you're done, you'll have something unique that you can show
off, put on your resume, and use for your own enjoyment.

And most important: have fun,
Bob

"Scott McDonnell" <devilingr@NOSPAMexcite.com> wrote in message
news:xeOWb.162432$U%5.725667@attbi_s03...
> Hello all, > > I am a second year "electronics technology" student who just finished a > course in > microprocessors. This was using a 68HC11 based trainer. We learned Machine > Language programming, and I taught myself assembly language for the
68HC11.
> We also learned interfacing using a PIA. > All this is great if I were to use a trainer for every project I ever do, > but I would like to begin building my own projects. I think I have a
fairly
> good > understanding of how to create my own 68hc11 board, but I would like > to also learn some other microcontrollers, like Atmels. Also, I haven't > attempted > to build a 68HC11 board yet. > > I guess my question is: Knowing what I have experience with in the past
and
> knowing that I have yet to experiment too much beyond that, can you > recommend a micro(s) that has a similiar architecture to the 68HC11?
Memory
> Mapped I/O makes the most sense to me at this point, perhaps because our > studies focused on it. Also I used to do some 6502 assembly/ML on the > Commodore 64, which might have also helped make the case for it. Obviously > these are both 8 bit tech, but I don't see why going16 or 32 bit would > be that much more difficult, but is unecessary for any projects I have in > mind at > the moment. > > I have PIC development tools/chips/eval board here at home, but the PIC > architecture is SOOO different than anything I have ever seen before; I > cannot seem to grasp it fully. Should I just start with a 65XX/68XX board > and go that route? The reason I would like to try moving on to something > else is the in-built features of other processors (like USB, flash mem, > LCD/KB, etc...) I feel I understand uP tech pretty well and could design > boards with external mem, and I/O using an actual uP, but I would like to > start working with controllers that have all this built in (ie. smaller > designs.) As I said, the PIC is just completely alien to me. Is this what
I
> will HAVE to expect from a uC? Anything with a "smoother" transistion? > > If my questions seem vague, it is because I am not entirely sure what I > should be asking. Perhaps a little prodding will get the right questions > out. My experience is limited, but quite good in its limited sense. Should
I
> just keep doing 68HC11 stuff until I am a master at it, and THEN it will
be
> easier to switch platforms? What do you all recommend? > > > Scott McDonnell > > >
"Scott McDonnell" <devilingr@NOSPAMexcite.com> wrote in message
news:xeOWb.162432$U%5.725667@attbi_s03...
> Hello all, > > I am a second year "electronics technology" student who just finished a > course in > microprocessors. This was using a 68HC11 based trainer. We learned Machine > Language programming, and I taught myself assembly language for the
68HC11.
> We also learned interfacing using a PIA. > All this is great if I were to use a trainer for every project I ever do, > but I would like to begin building my own projects. I think I have a
fairly
> good > understanding of how to create my own 68hc11 board, but I would like > to also learn some other microcontrollers, like Atmels. Also, I haven't > attempted > to build a 68HC11 board yet. > > I guess my question is: Knowing what I have experience with in the past
and
> knowing that I have yet to experiment too much beyond that, can you > recommend a micro(s) that has a similiar architecture to the 68HC11?
Memory
> Mapped I/O makes the most sense to me at this point, perhaps because our > studies focused on it. Also I used to do some 6502 assembly/ML on the > Commodore 64, which might have also helped make the case for it. Obviously > these are both 8 bit tech, but I don't see why going16 or 32 bit would > be that much more difficult, but is unecessary for any projects I have in > mind at > the moment. > > I have PIC development tools/chips/eval board here at home, but the PIC > architecture is SOOO different than anything I have ever seen before; I > cannot seem to grasp it fully. Should I just start with a 65XX/68XX board > and go that route? The reason I would like to try moving on to something > else is the in-built features of other processors (like USB, flash mem, > LCD/KB, etc...) I feel I understand uP tech pretty well and could design > boards with external mem, and I/O using an actual uP, but I would like to > start working with controllers that have all this built in (ie. smaller > designs.) As I said, the PIC is just completely alien to me. Is this what
I
> will HAVE to expect from a uC? Anything with a "smoother" transistion? > > If my questions seem vague, it is because I am not entirely sure what I > should be asking. Perhaps a little prodding will get the right questions > out. My experience is limited, but quite good in its limited sense. Should
I
> just keep doing 68HC11 stuff until I am a master at it, and THEN it will
be
> easier to switch platforms? What do you all recommend? > > > Scott McDonnell > >
An active device you might want to get into would be the 68HC908 series. The 08 is different from the HC11 but I think they come from the same root 6800 series. Its a big chip for them, maybe you could get your hands on a M68DEMO908GB60. This is their lower power device on a little demo board. Tony
I'd say to stick to the 68HC11 and play with all the peripherals on it. Make
projects that will help you learn about interrupts, timers, and all the other
good stuff that a bare HC11 has on it. Most controllers have all that sort of
stuff on them so some of what you learn on the HC11 will be useful.

What type of PIC do you have? Although they do take some getting used to, you
can master it. More modern PICs have less weird baggage that they carry around.
My first encounter with PIC was the 16C57. The 16F877 is so much nicer.

I have several PIC samples to choose from. I don't have them right here at
the moment (packed away somewhere.) The 16F877 sounds familir (unless there
was a 16F876.)
Anyways, I guess I just haven't gotten a very good introduction to them.
Everyone keeps telling me they are easy to work with, etc.. I guess my
confusion is the way the registers work in it. I am used to the Accum A,
Accum B, and Accum D concepts. The PIC seems like it has dozens of different
registers (granted, so would a uP with external memmapped I/O) I would like
to learn the PICs, the instructions themselves do not confuse me. They are
just symoblic for combined instructions found in a uP or the 68HC11. I feel
confident I could start programming in PIC assembly just as easily as I can
do assembly for an 68HC11 or 6502. Perhaps I am overcomplicating things, but
most of my confusion lies in architecture. Perhaps a "proper" intro,
something beyond "beginners" but before "expert." might do the trick. The
books, tutorials, etc. I have seen do not seem to go into a great deal about
setting up the control(?) registers (to configure whether Port A is an A/D,
PWM, or Timer for example.) The work register would be like an accumulator
A, right? I need to understand how the architecture works. Any
recommendations?

Please no flamewars, they are silly, unwanted, and unhelpful. I have no bias
towards a uC at this point. I am not looking for bias either. I just want to
start getting something built. The 68HC11 would probably be the easiest
route for me, because of prior experience with it. I just worry about
getting so locked into a particular architecture, that transistion will be
very very difficult. I (like others have said) feel that the best micro is
the one that does the job the way you want it done, for the cost you want to
spend. And this would depend on the actual project.

With the 68HC11, we mostly played with it in multiplexed mode. But, again,
since the trainer was prebuilt with no schematic, I am not 100% which mode
it truly used. It appeared multiplexed, since the enhanced mode features
(timers, A/D,SPI, SCI, etc..) were not availible to us. Perhaps building
something to start playing with these other modes might be a good idea.

The reset vector is 0xFFFFh, right? Is it possible to completely avoid using
the internal RAM and ROMs and connect this all up externally? I don't
remember if the 0xFFFFh was a valid "outside" address. I'd prefer to have
complete control over things as I begin experimenting, meaning mapping the
memory and I/O myself. I know I can also bootstrap, but I would like to save
that for later.

Eventually, of course, I would like to begin doing ARMS, MIPS, and x86
embedded stuff (I am especially interested in special purpose computer
systems ie. internet appliances, set-top boxes), but since I will be
continuing my education (planning for Electrical Engineering/Computer
Engineering double majors) I am sure there is plenty of time to learn all
that in future courses. I just like to stay ahead to keep myself sharp.
Heck, I am even attempting to teach myself verilog/VHDL. I was taught
ABEL-HDL already.

Anyways, thank you Gary, and everyone else for the replies.

Scott

"Gary Kato" <garykato@aol.com> wrote in message
news:20040212141629.17086.00001892@mb-m03.aol.com...
> I'd say to stick to the 68HC11 and play with all the peripherals on it.
Make
> projects that will help you learn about interrupts, timers, and all the
other
> good stuff that a bare HC11 has on it. Most controllers have all that sort
of
> stuff on them so some of what you learn on the HC11 will be useful. > > What type of PIC do you have? Although they do take some getting used to,
you
> can master it. More modern PICs have less weird baggage that they carry
around.
> My first encounter with PIC was the 16C57. The 16F877 is so much nicer. >
I worked on the 68HC11on a project once, and like yours, it was strictly from a
software point. This was for porting some interactive TV "middleware" to an
existing set-top box. I wasn't allowed to access any of the hardware features
of the chip (as a matter of fact when I asked about it, the guy from the
set-top maker jumped out his chair and shouted "If you touch the hardware, we
will SHUT YOU DOWN! We will SHUT YOU DOWN!" Yeah, he was a real asshole.) I'll
have to dig out my HC11 manual.

As for the PIC, there is an 877 and an 876. The 877 has more I/O stuff on it
than the 876. The PIC's W is indeed like the HC11's A. As for how to setup I/O
configurations, refer to the chip's datasheet. The datasheets for the PIC show
you what the ports look like and even have hints (like how Port A is setup as
A/D on reset and what register to use to turn it into Digital I/O). I/O is
memory-mapped (like the HC11) so you use regular instructions to read/write to
them. So, you write to ADCON1 to turn Port A bits from A/D to digital I/O. Then
you write to the TRISA register to configure bits to input or output. You can
use a move instruction or set each bit individually with a bit set/clear
instruction. 

I'm not biased to any particular CPU either (or language or OS). As a matter of
fact, I love the diversity (perhaps too much).