4
\$\begingroup\$

We are to create an 8051 microcontroller based system as a university project. We have the specs, which says we need an Atmel 89C51 chip. But Atmel recommends that we use AT89S51 instead of AT89C51. Why is it so? What is the difference between the two?

Also, what other hardware do we need to connect the microcontroller to a laptop in order to burn the program? What is a "programmer", do we need to build it ourselves? I've also read about ISPs and "off-the-shelf development boards" but I'm a bit confused here regarding what hardware exactly we need to buy.

\$\endgroup\$

5 Answers 5

3
\$\begingroup\$

"Not recommended for new designs" means "we aren't going to make this anymore".

If it's for something low-quantity, go ahead and use it, but don't use it in something you intend to make thousands of over the next decade.

\$\endgroup\$
2
\$\begingroup\$

The former chip is obsolete, you should use the newer one.

Programming details are here.

\$\endgroup\$
2
\$\begingroup\$

As to the second part of your question: A programmer is required to interface with the micro so you can write the code you develop on a PC to the micro for execution.

Some chips, particularly in prototype systems, use a 'drop in' programmer that you physically remove the microcontroller chip from the system and drop into a chip mount on the programmer to write your software to memory, and then replace the chip in the system.

ISP's achieve this without having to remove the chip from the system, usually by reserving a pair of Tx/Rx ports on the controller and requiring the designer to include a small interface plug.

Dev boards come in a variety of flavours. At the most basic end of the scale, bare-bones kits that have appropriate breakouts for a certain chip on an otherwise blank PCB with a hole grid drilled in it.

I think what you're probably looking at is a development kit that has the chip premounted and a set of breakouts and support components already included. Support components may include a typical power supply, a USB controller and interface port, line balancing resistors on I/O channels, etc. In these cases, there's usually a method setup to quickly reprogram the board without having to remove it from everything else (via USB for instance). Some of these boards will even let you run a monitoring host program that executes your code and reports it back to the PC for debugging.

For your project, don't look at ISPs unless you're planning to SMD solder everything but anticipate changes to microcontroller software later (it's the "inflexible" solution). A dev kit is excellent for initial prototyping, but you may be paying for excess functionality that you won't need in your final product (hence "development" board). Barebones kits will give you a decent final prototype to present, but will take the most effort and extra component buy-in to build.

So... Try to strike a balance, I guess?

(sorry for wall of text!)

\$\endgroup\$
0
\$\begingroup\$

Another option for programming your microcontroller is to create a bootstrap/bootloader code that fits in the 4K flash of the chip. That code will contain serial port driver, xmodem/ymodem protocol support for downloads, and flash programming code. Put a bigger flash on the board for holding your main program code. All this boot code (4k internal flash) does it start the chip with a boot output to the serial port giving the user a boot options to reprogram the bigger flash or just go ahead and boot from the big flash (main code resides).

We've used similar setups at my previous employers with 8051, but we usually didn't have internal flashes. Of course we always had serial port boot options for reprogramming our external flash.

\$\endgroup\$
-3
\$\begingroup\$

I strongly suggest you to use Phillips's P89c51RD2/P89v51rd2,It has inbuilt serial bootloader so you will not need any programmer sort of thing.Its in circuit programmable (ISP). its best for prototyping for rookies..following is the circuit necessary using RS232,please dont forget to use XTAL=11.0592Mhz

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Did you even read the question? \$\endgroup\$
    – Matt Young
    Jan 5, 2014 at 16:00
  • \$\begingroup\$ sorry, it is a mistake. i suggested you p89c51rd2 bcoz it's easy to prototype.I forgot the specs about "atmel's 89c51". \$\endgroup\$
    – FARUK
    Jan 8, 2014 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy