AVR-based PC

Go To Last Post
31 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello all!
I am going to start a project "AVR-based PC".
It should be based on 8515 + 32K external RAM, serial flash ( as a storage ). I think it will be 24c64 with an ability of upgrade ( since a new address is not require extra addr pins :) ). UART to connect it to the PC. And the simple keyboard, modeling the arrow pad of the pc-keyboard + enter key :). Also i am going to use LCD connecting it as an external memory ( time-diagrams on the datasheet give me a hope it will work :) so forget me if i change my plans of interracting with the LCD via rd, wr ;-) )
Now i have it all seperated as a parts and gathered as an idea :) The main aim is to build the cheap ( i am going to use just an old parts as a 100% poor hobbist :) ) book-reader, menu based notes reader, reminder. As an extension - model-independed avr-based portable pc.
So if anyone has any helpful ideas or remarks - i am ready to discuss those before i start.
Also everybody who wants to join the project (to build his own device) are welcome.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Good luck - you're going to learn a lot :)

What's your practical AVR experience so far...?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MartinM57 wrote:
Good luck - you're going to learn a lot :)

What's your practical AVR experience so far...?

Thanks
Actually i have 1 finished project ( binary clock based on 2313 ).
I know that this is a huge jump ( comparing with bin-clock ) but i also am not expecting the fast victory :).
By the way if any body is interested in the method of driving 24 leds with just 2313 i have used in my binary clock project - let me know i will publish the scheme.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've played a little bit in my mind for several times now about a tiny geek-pda :).
.

Attachment(s): 

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I made these requirements:

Simple Geek DIY PDA
===================

- Multiprocessor architecture
- Generic I/O
- High speed independent aquisition mechanism
Input device -> RAM
- Internal fast interconnect bus
- Internal slow interconnect bus
- Easelly expansible
- Co-processors can be re-programmed my main processor
- Industry standard buses for external communication
(SPI, I2C, PARALLEL, SERIAL, ...)
- Calendar, date/time, reminders, alarm clock
- Data storage with good streaming speed to it (MMC)
- PC connectivity
- External device control
- Data aquisition and processing
- Measurement device (oscilloscope, temperature, ...)
- Basic sound/photo aquisition/processing
- Runs interpreted language from high storage capacity
device (MMC/SD)
- Battery powered
- Some power control (200-250mA)
- Up to 12V power source
- Slim (portable) design
- Graphic LCD
- Serial port through IR and RF
- OSC output

And the plan was to use only AVR as processors, and power it from a mobile phone battery (there are so many, so cheap and foundable everywhere these days).

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've been having similar fantasies too for quite a while.. Impracticality of such a contraption is the main factor keeping me busy with other things. But please keep us posted, would be very interesting to see what it becomes.

Hmm.. My ideas were more size-centric, not feature-centric. It's pretty hard to make a homemade device that's compact and your feature list is exhaustive, yielding for a BPDA - Barely Portable Digital Assistant. Something like Nintendo DS comes to mind :)

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Most of the features are software features. I would want it small too! Something in the size of 2 Nokia 3310 phones, at most. This would be around 7-8 chips on both sides of a board, it's not that big (well, each one of us has its own concept of small :))!).
And yes, of course, time is also what has prevented me from doing so far.

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And keyboard? The problem is that I find all less-than-full-qwerty-keyboard devices utterly useless, unless it's a Nintendo DS Portable (aka DS Lite) of course. I used to have a Psion 5mx, that was a good and useful machine -- too bad their displays were so brittle. That Psion keyboard is still lying somewhere, maybe one day I'll make a good use of it.

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've got a box full of PDA keyboards. Some of the larger ones aren't that bad. The one called "companion link" is pretty close to full size. Nice thing is they are all RS232 so it's easy to interface to them. Ok, the OTHER nice thing is you can easily get them for 2 or 3 bucks.

Go electric!
Happy electric car owner / builder

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

the OTHER nice thing is you can easily get them for 2 or 3 bucks

Is that "find one cheap on eBay" 2 or 3 bucks, or "go to this accessories Web site and you can get'em" 2 or 3 bucks? Any links?

[We've got an app on the drawing board where this might be useful, but I was expecting more like I see in the computer stores--$10 to $30--which gets a little pricey as a component of a product based on a $1.50 Mega48.]

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Now, this new invention, will it run windows?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

First of all thanks for sharing your experience. It.s ok that it was not realized yet. May be someone will take an idea or two... So it.s realy very useful.

Nuno wrote:
I made these requirements:

Simple Geek DIY PDA
===================

- Multiprocessor architecture
- Generic I/O
- High speed independent aquisition mechanism
Input device -> RAM
- Internal fast interconnect bus
- Internal slow interconnect bus
- Easelly expansible
- Co-processors can be re-programmed my main processor
- Industry standard buses for external communication
(SPI, I2C, PARALLEL, SERIAL, ...)
- Calendar, date/time, reminders, alarm clock
- Data storage with good streaming speed to it (MMC)
- PC connectivity
- External device control
- Data aquisition and processing
- Measurement device (oscilloscope, temperature, ...)
- Basic sound/photo aquisition/processing
- Runs interpreted language from high storage capacity
device (MMC/SD)
- Battery powered
- Some power control (200-250mA)
- Up to 12V power source
- Slim (portable) design
- Graphic LCD
- Serial port through IR and RF
- OSC output

And the plan was to use only AVR as processors, and power it from a mobile phone battery (there are so many, so cheap and foundable everywhere these days).

As for me i am taking the next tips:
- Multiprocessor architecture
- Co-processors can be re-programmed my main processor (as the usage of "Multiprocessor architecture").
- Serial interface
- Basic sound/photo aquisition/processing. I will add the buzzer :)
- Up to 12V power source.

Also i would like to discuss the rest remaining ideas. Means purposes, implementation detail and an examples. May be after that i will expand the list of features :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think ATMega128 can help you.

Micro4you,
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I think ATMega128 can help you.

Agreed. Although I usually frown at mega128 projects (it seems that mega128 is most often picked by newbies used to 100-megabyte sizes of windows binaries), it is probably the most appropriate device for a Luggable Digital Assistant, no need to cripple yourself from the beginning. You would need a bytecode VM, plenty of hardware-related code, display handling, connectivity AND probably language interpreter too -- all that will take quite much. I wouldn't mind if some of the basic functionality (e.g. calendar, scratchpad..) is native, although that's a mixed blessing.

Quote:
Co-processors can be re-programmed my main processor (as the usage of "Multiprocessor architecture").

Don't forget that usually AVR's flash endurance is only 10,000 write cycles. That's a lot, but if your machine will do it on fly all of the time, it could become a lifetime bottleneck.

Curious about those $1 keyboards too. I bet they are not as good as Psion's though.

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There are a lot of really good and useful advices around the hardware but what about the software ?
I mean the software architecture like state machine, io-kernel, cpu-independnt features (timers, events...).
Don.t forget that there is only 4k. Of course it.s possibe to implement self-programming and load code from the storage but svofski is right - only 10K cycles ;-)...
Any ideas are welcome :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

perhaps a different cpu, with the ability to execute from ram, is better suited for this application? constructing some "interpreted language" to emulate this would(at least it seems so to me) consume too much of the avr spu resources.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

CountZero wrote:
perhaps a different cpu, with the ability to execute from ram, is better suited for this application? constructing some "interpreted language" to emulate this would(at least it seems so to me) consume too much of the avr spu resources.

This is my main doubt. But since there is not such active comunity for say z80, i decided to open that topic here. :)
So if anybody will share his/her ;-) experience with another cpu in comparition with 8515 in my case - it will be just valuable discussion. Let.s not to mention an Athlons ! Only 8-16 bit micros.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think to implement a bytecode interpreter for some language you don't need more than 4k. I have no such experience, but I'm favouring Python as possible language of choice. You could of course try Java too. LISP/Scheme, even FORTH.. although the latter would really be a disaster ;) Nobody said you can't invent your own virtual machine, that could be an interesting job, but then you'd have to write your own stack of assembler/linker/compiler/whatnot..

EZ80 Acclaim! is still alive BTW, and you can use all existing CP/M stuff with it. It can make life much easier. Last time I checked their development kit was also pretty cheap. May be an interesting choice, but as far as full-featured CPUs go, I'd prefer PDP-11 in an FPGA anyday (http://shimizu-lab.dt.u-tokai.ac...). There's something tickling in the possibility of running 2.11bsd (available free of charge for personal use) on your table top.

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't like the Mega128 for this application, because I would want to drive it from a typical cellphone battery (3.3 - 3.7V) and you need ~5V for Mega128. I think a converter 3->5 is a battery waste in this application. I would use at most let's say, a mega162 as the "main" controller in the block diagram.
I would, as it is in the requirements above, make the system support a higher-level interpreted (probably from byte-code) programming language; only the interpreter should be in the flash, plus some device driver routines. The "operating system" would also be made in this language. The programs would then be stored in a SD card, with plenty of space.
I would not put a keyboard on the device. The ideal would be a touch screen of PDA style (Q-Tech, PalmOne...), and a few buttons and leds.
By the way, my "Up to 12V power source." requirement means that it should have a power regulator capable of outputing up to 12V. This may be handy :).
At a certain point in time I almost finished a schematic based on the 2 mega8 version:

Attachment(s): 

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

you need ~5V for Mega128.

Well, I guess I can partially agree with that in the context of this project. The Mega128L will run fine at 3.xV, but the rated clock speed of that part is 8MHz.

Re the project as a whole: the AVRs do a fine job of being microCONTROLLERS. A perfectly good PDA with operating system and screamin' microPROCESSOR and a bunch of peripheral subsystems and a good size high-res screen and input method(s) and communications interfaces and lots of memory and support for storage cards can be had for about $100. If you want to play "roll your own PDA", then I'd start with an ARM dev kit of some type, or jump into the AVR32. If you want to play AVR games, then pick suitable apps, start small, and grow your apps.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Well, I guess I can partially agree with that in the context of this project. The Mega128L will run fine at 3.xV, but the rated clock speed of that part is 8MHz.

But this also applies to the mega8515, mega8 and mega162 that are also mentioned as possibilities. Offhand I don't know of any AVR that runs higher that 10MHz at 3.5 volts.

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Offhand I don't know of any AVR that runs higher that 10MHz at 3.5 volts.

Just from a recent experience, mega8 (without L) runs off slightly below 3.3V at 16MHz without problems, CKSEL set to maximum swing. Of course I wouldn't hope that all of them do, but nevertheless it's an interesting observation.

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why use ATMEGA128 where there's an AP7000 @16$? Second, i think your main challenge is not Hardware designing at all. It's far too easy these days, your primary problem will be GDI (Graphics) since systems today offer a very high-resolution user-friendly interfaces and themes! (Specially fonts, alpha-blendings, OSD...)

Good luck.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Actually I had the idea that the Mega128 only existed in the 4.5-5.5V version, but I was wrong.
Anyway, at 3.3 it can go up until 10MHz max, while mega162 can go up to a bit more than 12MHz,
which means either more computing power or less consumption.
Aditionally, the price of a mega128 is ~20€, while a mega162 costs ~6.5€ (at my usual internet
shop). In this application, I would prefer to have computing power, as long as the interpreted language
fits in the main controller flash, so it's cheaper to a have a smaller main controller and several
coprocessors to off-load other functions (mainly I/O) into other AVRs. By less than the price of a
mega128, we can buy a mega162 (or 2!) plus several other smaller ones (like mega8 or tiny26 (both
>14MHz@3.3V)) to act as coprocessors.
I believe that a sw architecture carefully choosen and coded in asm would fit the 16K flash of the
mega162.

Yes today's system have a lot of graphics.... we can perfectly have graphics, just not a full Windows!

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

theusch wrote:
Re the project as a whole: the AVRs do a fine job of being microCONTROLLERS. (...) If you want to play "roll your own PDA", then I'd start with an ARM dev kit of some type, or jump into the AVR32. If you want to play AVR games, then pick suitable apps, start small, and grow your apps.

You have to look at the project as an educational one :). And besides, ARM is already too complex for most of the hobbists, specially to solder, at least for me! microCONTROLLERS have other advantages; they are "dead simple".

Embedded Dreams
One day, knowledge will replace money.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Meanwhile, those ARM's, they are mostly microcontrollers too. Like, they execute from flash and have some limited RAM.. They are not like ARM's found in PDA's or GameBoys, where they execute from RAM.

On a second thought, complexity of ARM is overdramatised. You can start writing code for GBA in one evening (I know, I did).

I see no problem with a project like this built on AVR's. Nobody is saying it's going to be a Symbian killer, it's a hacking project and having "themes" is #1 from the bottom of the list of priorities.

The Dark Boxes are coming.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

theusch wrote:
Quote:

the OTHER nice thing is you can easily get them for 2 or 3 bucks

Is that "find one cheap on eBay" 2 or 3 bucks, or "go to this accessories Web site and you can get'em" 2 or 3 bucks? Any links?

Lee

This is the place I used:

http://incipiodirect.zoovy.com/

Go electric!
Happy electric car owner / builder

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If it was me I'd take a look at the TI OMAP5910 or similar for something like this. You've got a 150MHz ARM9 there, you've got a 150MHz DSP there and around the ARM you have lots of useful peripherals like a LARGE controller for LCD allowing up to (for example 480x320 LCD panel support).

To me an AVR is a great $1..$2 microcontroller and in that area it excels but there are many, far far better PDA type processors. Imagine what you could do on that 150MHz DSP - MP3 encode/decode would be a doddle and you could even have a stab at MPEG2 or H.264 video decode (I have examples of this working on my OMAP5910 based product)

There's also a port of Linux readily available for OMAP (from Montavista) and once Linux is running on it then networking becomes a doddle and you can quickly get something like QT/Embedded up on it for a GUI, PDA style interface on that LCD (again we have this working)

Cliff

PS OMAP5910 is sub-$15 in quantity, one-off maybe $20..$25 (I don't know??)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've been working on a somewhat similar idea, a LCD terminal for getting debug messages, data readouts, etc. In its full form, it'd be able to buffer the recent messages, plug into a PS/2 keyboard for parameter/command entry, have a USB link to a computer for data logging and such, do pulse/frequency counting, signal/pulse generating, etc...in its present form, it can print integers and arbitrary text on the LCD and do wrapping for the text. (Hey, I'm just beginning...)
http://arklyffe.com/gallery/v/el...

Uses TWI for communication between the various parts. (BTW: the slave TWI software from the appnotes (AVR312) required some patching for GCC and to block the bus when the slave's receiving buffer filled up...if there's any interest, I'll put that online somewhere.)

Wrapping doesn't work for numbers yet, and floating/fixed point numbers are unsupported...ran out of program space. I'm thinking of using an ATtiny44 or 45 (or maybe 84/85...) for a standalone LCD display, and having a separate ATmega16 do the other stuff. The LCD display is the most critical, even if just for debugging my other projects. That part currently consists of a $10 4x40 LCD I got off e-Bay and an ATtiny26...cheap, and has already proven very useful in learning to use AVRs.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This is may old, unfinished AVR based PDC (sch + source code, so maybe help to someone):
http://www.vfx.hu/proj/avrpac/ei...

and this is 2nd version of PDC (onboard LAN without graph.LCD):
http://www.vfx.hu/proj/k1/eindex...

VFX.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

TI OMAP5910 - TBGA269 package, not for hobbists :(