By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications. In addition, the AT89C is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The power-down mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset. Pin Configuration 2. Pin Description 4.
|Published (Last):||24 October 2008|
|PDF File Size:||20.73 Mb|
|ePub File Size:||9.46 Mb|
|Price:||Free* [*Free Regsitration Required]|
Programming an at89s with an Arduino Mar 21, tags: arduino at89s bitbang I decided to flash an Atmel at89s microcontroller using an Arduino. I picked the at89s mostly because people before me had picked it for their projects, such as the heart kit i. I had a bunch lying around. The at89s is exactly the same as the , except it has 2Kb of flash memory instead of 4Kb.
The hardware The at89s costs about a dollar and is based on the instruction set developed by Intel in The chip is fully static and can take a clock between 0 and 24Mhz. If you want to program you own microcontroller, you can pick almost any chip. The chips usually cost between a few cents to a few dollars as long as you stay away from the fancy stuff.
Note: I also had a few C variants lying around at89c and at89c The C variants have the same pin layout but are not as easy to program due to the lack of ISP.
The useful components from the pack for this project were the Arduino UNO you can pick any Arduino variant , breadboard I used the small stamp sized one for fun , resistors, push button, LEDs and jumper wires. It;s cheaper to buy exactly the parts you need but having a starter kit is very convenient. Making sure the Arduino works The first step is to make sure the Arduino works.
The exact installation process is beyond the scope of this article. I connected the Arduino to my laptop, installed the software and selected one of the samples Blink. After uploading the code to the Arduino, I had a the onboard LED which soldered with port 13 that was blinking every second: Programming modes The at89s has two programming modes: parallel and ISP.
Having to deal with two different voltage levels on the same pin is a little annoying can be accomplished with a transistor. I decided to use the slower ISP programming mode.
You can even use a switch to program it manually! The documentation says Mhz. As far as I can tell, this range is very conservative. I was able to use a signal in the hz range. The final code uses 8Mhz. You can also use a crystal with two capacitors. Keep in mind the chip erase function which resets the content of the flash needs to be called before being able to re-program the memory. I was expecting to be able to write to specific locations in the flash without having to clear the entire memory.
Hand assembling a small program I wrote the following piece of assembly code to blink a LED connected to P3. I generally avoid using pins 0 and 1 on the Arduino because they are shared with the serial console on the UNO.
AT89C2051-24PU - Microntrolador 8-bit Atmel