EmbeddedRelated.com
Forums

Re: External Bus Interface on ARM

Started by Moikel July 25, 2007
Hi,

I'm designing a microprocessor board intended to be built by students
so that they can learn the basic principles of building such a system.

The existing board that we use is based on a 68008 CPU (a description
of this can be found here: https://www.cs.tcd.ie/Michael.Manzke/2ba4.html)
Basically this board consists of a 68008 CPU, a ROM, two RAM ics, two
UARTS and a CPLD which implements the Chip Select/ Memory map.

We have decided to upgrade the board using an ARM processor. However,
I am new to microcontrollers (as opposed to CPUs) and have only found
a handful of ARM processors which feature an external bus (i.e.
address and data pins, like on a 68k for example), namely the Atmel
91M series. As this board is intended as an educational tool, it is
important that we have these lines to allow the student to manually
implement chip select signals for the various peripherals.

I was wondering if anyone has any suggestions or knows of other ARM
chips which feature such external address/data lines. Also, could I
use the General Purpose I/O lines which feature on ARM chips such as
the Philips LPC210x series (http://www.nxp.com/acrobat_download/
datasheets/LPC2101_02_03_1.pdf) to act as the address and data buses?

Any replies will be appreciated.

Thanks

Moikel wrote:
> Hi, > > I'm designing a microprocessor board intended to be built by students > so that they can learn the basic principles of building such a system. > > The existing board that we use is based on a 68008 CPU (a description > of this can be found here: https://www.cs.tcd.ie/Michael.Manzke/2ba4.html) > Basically this board consists of a 68008 CPU, a ROM, two RAM ics, two > UARTS and a CPLD which implements the Chip Select/ Memory map.
Wasn't the 68008 in a giant DIP package ?
> We have decided to upgrade the board using an ARM processor. However, > I am new to microcontrollers (as opposed to CPUs) and have only found > a handful of ARM processors which feature an external bus (i.e. > address and data pins, like on a 68k for example), namely the Atmel > 91M series. As this board is intended as an educational tool, it is > important that we have these lines to allow the student to manually > implement chip select signals for the various peripherals.
So you expect the students to SOLDER this device, as they build the boards ? EBI ARMs have fine-pitch packages!
> I was wondering if anyone has any suggestions or knows of other ARM > chips which feature such external address/data lines. Also, could I > use the General Purpose I/O lines which feature on ARM chips such as > the Philips LPC210x series (http://www.nxp.com/acrobat_download/ > datasheets/LPC2101_02_03_1.pdf) to act as the address and data buses?
Depends on what aspects you want to teach them ? For hands-on assembly, and memory selects, which seems to be your focus, why choose a wide-bus-interface like the ARM ? EBI devices tend to be TQFP144, or worse, BGA :) The 68008 was 8 bits IIRC, so why not something like an 80C51 ? That's still in PLCC and DIP, and has internal/external CODE and can PLD select, if you want. Ideally you also want on-chip DEBUG, and a Socketable package. That narrows things down quite a bit. The new AT89C51RE2-SLSUM, is PLCC44 and has On chip debug. Zilog do a Z16F that is socketable, but that package variant lacks a EBI. Or, you choose pre-built SMD modules (or even USB Sticks), and get the student to make other parts of the system up. -jg
On Jul 25, 12:54 pm, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:

> Wasn't the 68008 in a giant DIP package ?
Yes
> So you expect the students to SOLDER this device, as they build the > boards ? EBI ARMs have fine-pitch packages!
No, we will be sending the components away to be mounted on wire wrap sockets. Everything will be wire wrap
> The 68008 was 8 bits IIRC, so why not something like an 80C51 ?
It is important that we use the ARM instruction set. Thanks for the reply
On Jul 25, 11:53 am, Moikel <obviouslyadu...@gmail.com> wrote:
> On Jul 25, 12:54 pm, Jim Granville <no.s...@designtools.maps.co.nz> > wrote: > > > Wasn't the 68008 in a giant DIP package ? > > Yes > > > So you expect the students to SOLDER this device, as they build the > > boards ? EBI ARMs have fine-pitch packages! > > No, we will be sending the components away to be mounted on wire wrap > sockets. Everything > will be wire wrap > > > The 68008 was 8 bits IIRC, so why not something like an 80C51 ? > > It is important that we use the ARM instruction set.
There are a huge number of ARM devices that use an external memory bus. Most of the ARM7 devices use internal memory, but there are also many, many that use external memory. Check out Cirrus, Sharp (did they sell off their entire ARM line?) Philips and OKI. Then there are the ARM9 devices that nearly all have external memory buses since internal Flash memory can't keep up with the maximum execution rate of most ARM9s. They typically use internal RAM and cache with a large external address space for Flash, RAM and I/O. Many also have general I/O pins as well. Teaching the ARM instruction set is likely to be useful to students for many years to come, but having them assemble wire wrap boards stopped being useful 15 years ago. I suggest that you find another way to accomplish your goals than to have your students learn a very obsolete skill. I don't know exactly what skills you are trying to teach, but I bet if you give me the list, I can tell you how to accomplish that with PCBs instead of wire wrap. For example, if you want the students to have to perform debugging, you can provide features on the board to allow you to add problems to the board. You might add a near short between two chip select lines. Or you might open a chip select line. Either way, the student that debugs this will certainly learn what a chip select line does. Even if you are having the students design their own schematics, you can have multiple different designs produced on a single panel at a price competitive with wire wrapping. But then I guess you might be getting all the wire wrapping materials and equipment for free since they have certainly been tossed into somebody's scrap bin once they dig them out of the back of the storage room.
On 2007-07-25, rickman <gnuarm@gmail.com> wrote:

>>> So you expect the students to SOLDER this device, as they >>> build the boards ? EBI ARMs have fine-pitch packages! >> >> No, we will be sending the components away to be mounted on >> wire wrap sockets. Everything will be wire wrap
Yikes. Building reliable wire-wrap stuff isn't as easy as it first appears. I would think it a very arcane skill to be teaching students. I haven't seen anybody do wire-wrap prototypes for about 20 years now. Making a prototype PCB is faster/simpler/cheaper.
> There are a huge number of ARM devices that use an external > memory bus. Most of the ARM7 devices use internal memory, but > there are also many, many that use external memory. Check out > Cirrus, Sharp (did they sell off their entire ARM line?) > Philips and OKI.
Samsung also has some ARM7 parts with an external memory bus.
> [...]
> Teaching the ARM instruction set is likely to be useful to > students for many years to come, but having them assemble wire > wrap boards stopped being useful 15 years ago.
When I first started working with uControllers, we used to do wire-wrap prototypes. Wire-wrapping something of any complexity wasn't really something a beginner could be expected to do (and have it work).
> I suggest that you find another way to accomplish your goals > than to have your students learn a very obsolete skill. I > don't know exactly what skills you are trying to teach, but I > bet if you give me the list, I can tell you how to accomplish > that with PCBs instead of wire wrap.
I'd second the suggestion of making eval/proto PCBs with breadboard areas on them. -- Grant Edwards grante Yow! Do you guys know we at just passed thru a BLACK visi.com HOLE in space?
On Wed, 25 Jul 2007 03:25:48 -0700, Moikel <obviouslyadummy@gmail.com>
wrote:

>I'm designing a microprocessor board intended to be built by students >so that they can learn the basic principles of building such a system. > >The existing board that we use is based on a 68008 CPU (a description >of this can be found here: https://www.cs.tcd.ie/Michael.Manzke/2ba4.html) >Basically this board consists of a 68008 CPU, a ROM, two RAM ics, two >UARTS and a CPLD which implements the Chip Select/ Memory map. > >We have decided to upgrade the board using an ARM processor. However,
Why solder anymore? There are free softcores like LEON2 (Sparc V8) or some MIPS implementations. Just have a look at freecores.org and opencores.org. Mit freundlichen Gr&#4294967295;&#4294967295;en Frank-Christian Kr&#4294967295;gel
"Frank-Christian Kruegel" <dontmailme@news.invalid> wrote in message 
news:uluea3h9l007oti1632oldla74o5addl4b@4ax.com...
> On Wed, 25 Jul 2007 03:25:48 -0700, Moikel <obviouslyadummy@gmail.com> > wrote: > >>I'm designing a microprocessor board intended to be built by students >>so that they can learn the basic principles of building such a system. >> >>The existing board that we use is based on a 68008 CPU (a description >>of this can be found here: https://www.cs.tcd.ie/Michael.Manzke/2ba4.html) >>Basically this board consists of a 68008 CPU, a ROM, two RAM ics, two >>UARTS and a CPLD which implements the Chip Select/ Memory map. >> >>We have decided to upgrade the board using an ARM processor. However, > > Why solder anymore? There are free softcores like LEON2 (Sparc V8) or some > MIPS implementations. Just have a look at freecores.org and opencores.org. >
Don't you have to put these on an FPGA, which needs to be soldered to a board? Otherwise you must mean simulation of the core on a workstation or PC which defeats the point of the original post I think. Anyway part of the 'fun' of learning is the practical work, of seeing your hardware do something, even if it's just making that LED flash the first time. Dave.
On Wed, 25 Jul 2007 08:53:05 -0700, Moikel <obviouslyadummy@gmail.com>
wrote:

>On Jul 25, 12:54 pm, Jim Granville <no.s...@designtools.maps.co.nz> >wrote: > >> Wasn't the 68008 in a giant DIP package ? > >Yes > >> So you expect the students to SOLDER this device, as they build the >> boards ? EBI ARMs have fine-pitch packages! > >No, we will be sending the components away to be mounted on wire wrap >sockets. Everything will be wire wrap
It looks as though the course has been around for some time, so best to assume that the curriculum is well worked out and you know why you are making this choice. I would guess because this provides access to all the bus signals with an oscilliscope, allowing them to "debug" their decisions about the signals they wired for some memory map arrangement. The use of a CPLD seems to merely be to convert portions of a binary address into chip-selects, so that is a given for the course. So is this the reasoning why wire-wrap? (My experience with wire-wrapping was mainly with roughly 1-2MHz buses. Never had a problem, there, as a hobbyist in electronics. But I haven't tried to wire-wrap fast buses, though I've seen such jobs done by others, carefully laid out.)
>> The 68008 was 8 bits IIRC, so why not something like an 80C51 ? > >It is important that we use the ARM instruction set.
Okay. It's a decision, then. Is this about software tools as well as market changes? Are you willing to switch to a wider data bus for wire-wrapping, as well? How fast of a bus is appropriate for the coursework that uses wire-wrapping by your students? Jon
Moikel wrote:

> On Jul 25, 12:54 pm, Jim Granville <no.s...@designtools.maps.co.nz> > wrote: > > >>Wasn't the 68008 in a giant DIP package ? > > > Yes > > >>So you expect the students to SOLDER this device, as they build the >>boards ? EBI ARMs have fine-pitch packages! > > > No, we will be sending the components away to be mounted on wire wrap > sockets. Everything > will be wire wrap
That opens up a wide choice of devices, but taking this flow, you would surely be better using a small commercial module ? Those come with full documentation, and are populated, and decoupled. ST do a nice USB key, with an ARM9 core
> >>The 68008 was 8 bits IIRC, so why not something like an 80C51 ? > > > It is important that we use the ARM instruction set. > > Thanks for the reply
Unlike the 68008, the peripherals are now mostly on-chip, so 'chip selects' are not so relevant. You CAN setup external device interfaces using SPI, and that is a mor eup to date design approach. The 680008 HAD no choice but external memory, today's uC have the CODE and DATA on-chip, many peripherals, so it's only 'special' case peripherals that need external access, and for those, a 10+MHz SPI link is usually fine. A keypad/LCD daughter card, that used a CPLD (or Logic), would give the students something to assemble, and you would interface that via the SPI port. -jg
Grant Edwards wrote:

> Yikes. Building reliable wire-wrap stuff isn't as easy as it > first appears. I would think it a very arcane skill to be > teaching students. I haven't seen anybody do wire-wrap > prototypes for about 20 years now. Making a prototype PCB is > faster/simpler/cheaper. >
Not if it the main cost is the student's time. Getting a fast ARM external bus to work with wire- wrap might be a challenge though. While I can see where the idea comes from- they want to see them learn how to select the right lines to use to interface to an external device- they'd be much better off doing this as an exercise in PCB layout. Get Eagle or Kicad something else free, one for each student, and give them devices to interface. There are lots of devices available, so plagiarism should be difficult. With a suitably designed base development board, a simple connector for the bus and a small PCB made for those who get that far should be feasible.
> I'd second the suggestion of making eval/proto PCBs with > breadboard areas on them.
And wire- wrap the prototype area :)? Paul Burke