This forum is for posts that might be considered off-topic but that may be useful or interesting to members. Examples include posts about electronics or programming in general, other microcontrollers or interesting devices, useful websites, etc.
Oak Micros announced today the om128 microcontroller based on the Atmel ATmega128. It uses the same hardware platform as the successful Oak Micros ZX128e.
A key design feature of the om128 is that the ATmega128 is packaged on a compact carrier board that is socketable using a 40-pin DIL style package with pins spaced 0.1” apart. This pin spacing allows the device to be on breadboards and in other thru-hole applications. Here is a feature summary of the om128 device:
ATmega128 with 14.7456 MHz crystal.
32 I/O pins in a 0.1” DIL format (provides access to ports B, D, E, and F of the ATmega128).
Compact size (2” x 0.9”) for the supplied functionality.
A RS232 transceiver that provides true RS232 voltage levels on USART0.
A miniature slide switch that allows the user to choose the voltage levels for serial channel 1 between RS232 levels (± 15V) on pins 1 and 2 versus logic levels (0V-5V) on pins 19 and 20.
Up to 64K bytes extended RAM via a daughter card.
5V regulator rated up to 200mA and green power indicator LED.
Green and red active low monitoring LEDs connected to I/O pins 5 and 7 on port E.
The om128 device is preloaded with a small bootstrap loader. Windows download software can be used to initiate program and EEPROM downloads from the host PC. One advantage of the om128 over similar devices is that the download can be initiated from the host PC without requiring any intervention from the user such as jumpering I/O pins on the ATmega128. While it is not necessary to use the provided bootstrap loader, it does make it very easy to get started without requiring an AVR device programmer.
The software install package for the om128 also includes two example programs. The first is a hello world style application that flashes the built-in LEDs and the second shows how to use the extended RAM capabilities provided by the 64K RAM daughterboard. The source code is fully commented and is easy to follow, even for a novice. The software package also includes the binary and source code for the bootstrap loader.
More information about Oak Micros' products and a free download of the om128 software package and documentation is available at http://oakmicros.com. The single unit pricing is $59.95. Volume pricing is available.
A few years ago, as you might recall, I had something similar in mind. It was a daunting task, and I did not pursue it.
Good Job!
What program is used on the PC side to download the program? I have never downloaded a program to an AVR via a bootloader. Is the file that is downloaded the plain hex file that is created ones favorite compiler, such as WinAVR/AVR Studio?
Thank you. I already had the hardware designed so most of the work was in the software.
spamiam wrote:
What program is used on the PC side to download the program? I have never downloaded a program to an AVR via a bootloader. Is the file that is downloaded the plain hex file that is created ones favorite compiler, such as WinAVR/AVR Studio?
Yes this is all standard AVR stuff. The bootloader can download both HEX programs and EEPROM data.
I wanted to have a bootloader to make it easy for people to download and execute AVR programs without needing a programmer. In addition the downloader can initiate a download from the host PC without jumpering I/O pins or any other user intervention on the device side. This is achieved by reusing the DTR and ATN/RESET hardware already present for ZX devices.
As I couldn't find any existing software that did this, I wrote my own bootloader (based on standard well-known AVR bootloader technology). There is both a command line and GUI downloader for Windows host PCs. The GUI downloader includes a port monitor as well (just like the ZBasic IDE). The AVR bootloader source code is provided in the download package. I wrote the Windows GUI using wxWidgets with the intention of porting to Linux at a later time.
To get a better idea I suggest you install the software package, read the documentation and example code. In particular the extended RAM example gives a very good treatise on how to use extended memory and move around things like the AVR stack to get one contiguous memory area for a heap.
mikep wrote:I wanted to have a bootloader to make it easy for people to download and execute AVR programs without needing a programmer. In addition the downloader can initiate a download from the host PC without jumpering I/O pins or any other user intervention on the device side.
I have always been somewhat fearful about bootloaders for just that sort of reason. The documentation seems to be useful only for someone already very familiar with the entire process. I, therefore, have stayed with JTAG, and recently DebugWire.
When an item is sold out, it is automatically removed from the list. I have added it back with a stock of zero. This is a temporary situation which will be rectified in the next few days - I've been busy building om128 devices lately.
I suspect that there could be a lot of demand for them. They (and the BIG ZX models) answer a lot of needs. I think that the more you market then, the more demand there will be.
Do you assemble them yourself? I would bet that gets a little tedious after a while. When I do big, but not densely packed, PCBs with a lot of 50 and 25 mil SMT parts, I have to take a break after a while.
spamiam wrote:I suspect that there could be a lot of demand for them. They (and the BIG ZX models) answer a lot of needs. I think that the more you market then, the more demand there will be.
I hope so. At this point the trick is to find the demand which at least is easier than trying to create it.
spamiam wrote:
Do you assemble them yourself? I would bet that gets a little tedious after a while. When I do big, but not densely packed, PCBs with a lot of 50 and 25 mil SMT parts, I have to take a break after a while.
My quantities are small enough so I build them myself. There are 21 small (0603) SMT parts to solder. I find it quite relaxing actually.
As you may know the hardest part is getting over the initial fear about the small size of the parts - after that and some practice it isn't so hard. The smallest part I have is the 0.65mm (25 mil) RS232 level converter. I now feel confident that I could handle 0.5mm pitch parts as well. It just a matter of a PCB solder stop mask and flux. I now rarely get solder bridges.
I know what you mean about relaxing. It is sort of fun, until despite everything a bridge occurs. Usually a little use of solder wick will do the job, but occasionally...... aargh.
21 parts is not too bad. 0603 is not too bad. 0402, is not so fun. The parts are just so small that they are hard to hold in place with any instrument!
For those of you afraid to do SMT soldering, it is not too hard. 0806 is easy. smaller that that gets slightly trickier. Good magnification is key