2051 Programmer

The scanner automatically goes into the wired programming mode. Macos high sierra patcher tool. PGM and WirEd appear. Page 76: Cloning Your Scanner You can clone all the frequencies, trunking talk groups, and fl eet maps programmed in your PRO-2051 to another PRO-2051 using an optional interface cable and software (available at your local RadioShack or www.radioshack.com). At89c2051 programmer free download. Mcs51linux This is a very simple EEPROM programmer for MCS-51 chips like AT89C2051, AT89C1051, AT89C4051 for Bl.

Our AT89C2051 and AT89C51 programmers are now only available to special order - the new P89C51RD+ and T89C51RD2 represent far better value for money - and they can be programmed via a serial port, so you don't need to buy a programmer from us!
If you still want our programmer - after all it is one of the only AT89C2051 programmers that works under any operating system, and programs in 6 seconds -
Please contact us and we'll place a backorder for you

Erase, Program and verify an AT89C2051 in one easy operation!

Programs in just 6 seconds!

PG2051 - A Programmer for the Atmel AT89C2051, from AirBorn Electronics


The AT89C2051 is a 20 pin 8051 compatible microprocessor (including serial port) with 2k of FLASH memory, available from Atmel (see http://www.atmel.com/atmel/products/). The PG2051 erases, programs, and verifies AT89C2051 chips in 6 seconds. As the AT89C2051 devices are FLASH, they can be reprogrammed as often as needed.

The PG2051 may be connected to a PC or other host by a serial cable. The programmer interface is PC serial compatible, operates at 9600 Baud, and accepts standard Intel Hex files.

The programmer features a test switch which allows the owner to check if an AT89C2051 is blank, working, programmed or failed in just one second - without needing the PC connected.

    FEATURES:

  • Programs the 2k FLASH memory in 89C2051's
    • Can be reprogrammed 1000 times per chip
    • Fast - programs a chip in 6 seconds (typ.)
  • 89C2051 is 8051 Instruction and Reg compatible
  • Programmer interface is PC serial compatible
    • 9600 Baud, 8 data, 2 stop bits, no parity
  • Accepts standard Intel Hex files
  • Programs Security bits, if required
    • Dipswitch selectable
  • One Step program operation
    • Download starts Test/Erase/Program/Verify
  • Stand-alone test switch
    • Allows 89C2051 test without PC download
    • Tests for blank chip without PC download
  • Programmer also handles AT89C1051's
  • Powered by DC plug pack (supplied)
  • Evaluation Kit includes two sample 89C2051 devices

AUD$188 (+gst)
for Programmer, plugpack
& Data sheet

OPERATION:

The PG2051 is a development programmer for the ATMEL AT89C2051. The AT89C2051 programmer is fast, small and simple to use.

The programmer may be connected to a PC or other host by a serial cable. The data to be downloaded to the programmer is transmitted in Intel Hex format. The programmer will erase & program, verify, write protect and security protect as it receives the file, according to the settings on its Dip switches.

In normal use device programming consists of:
Insert an 89C2051- (Manual Test if desired)Mode COM1:9600,N,8,2
Download intel hex file- (Causes programming)Copy Myfile.hex COM1
Watch LEDs- (Indicates success)

The PG2051 can be used stand-alone by inserting an 89C2051 and operating the Manual test switch, in this mode it indicates Tested, Blank and Verified checksum conditions.

EVALUATION KIT:


The PG2051 evaluation kit, with prototype board [Click here for schematic]
  • The PG2051 programmer
  • Power supply plugpack
  • PG2051 data sheet and reference card
  • Two AT89C2051 FLASH memory CPU devices
  • A small prototype board with LEDs, to test with
  • A well documented sample .ASM program
  • A shareware assembler & dis-assembler
  • $233 (plus GST [tax] in Australia)

AUD$233 (+gst) for Evaluation kit &
Programmer. Order by Fax, Phone
or Mail - see ORDER FORM.

The AT89C2051 Microprocessor

  • Just Page One of the AT89C2051 data sheet ..the pinout and features, quicker download
  • For more information on these microprocessors, visit Atmel's site.
The AirBorn Electronics programmer described here connects to a Serial port, works under any operating system, and programs in 6 seconds by just copying the hex file to the COM port.
There is also a programmer design available from Atmel that you can build yourself - although it does not share these features.

Download the free programmer here, - but remember to get the software from Atmel, also.

Fax: (61)(2) 9922 4483
Tel: (61)(2) 9925 0325

Mail: AirBorn Electronics
P O Box 1491
North Sydney 2059
Australia

Building a programmer for the Intel MCS-51/8051 compatible AT89C2051, with host software running on MacOSX.

Notes

I’ve been meaning to dive a bit deeper intoIntel MCS-51/8051 devices and programmingever since I built the LEAP#088 ElectronicClockKit.While it’s long been EOL at Intel, this article By Jon Wilderis a valiant argument for why they are still around.

I have some (still in production) AT89C2051 chips -but before I can do much more, I need a programmer. Mac os x capitan iso download.

2051 programmer 2

Reading the AT89C2051 datasheet, its seems programming is actually a quite straight-forward process - the only complicationbeing the need for a 12V programming voltage in addition to standard logic high of ~5V.

So while I could go out and buy a programmer, the idea of building my own is very attractive for two reasons:

  • it is a bit of a short cut to building familiarity with the chip and datasheet
  • I can make sure it supports my host platform of choice - MacOSX

Inspirations and Prior Art

I found a couple of interesting projects that provided a good starting point.I’d recommend checking these out. In summary:

  1. AT89C2051_programmer
    • by piotrb5e3
    • uses separate 12V programming voltage power supply [negative]
    • open source python host programming software distributed via PyPI (at89overlord) [positive]
    • uses Arduino Uno as a programmer [positive]
  2. An Arduino-based programmer for the AT89C2051 chip
    • by ceptimus
    • uses a charge pump for 12V programming voltage [positive]
    • charge pump control is quite naive (bit-banging) [negative]
    • C# host programming software, open sourced but not in collaborative version control [negative]
    • uses Arduino as a programmer [positive]
    • quite wasteful of GPIO pins, so requires Arduino Mega/ATmega2560 [negative]

Boiling down my wishlist/plan:

2021 Programming Ideas

  • use an Arduino-controlled charge pump for programming voltage, but control it with PMW similar to LEAP#393 DicksonChargePump
  • assign GPIO pins judiciously so can still use Ardiuino Uno/ATmega328 as the programmer
  • base the Arduino programming sketch on piotrb5e3’s, but modified for charge pump control
  • hopefully maintain compatibility with at89overlord so it can be used as the host programming software, else adapt as required

VPP/RST Power Control

We need to switch between 12V, 5V and 0V on the VPP/RST pin for the range of programming modes.From the datasheet

Programmer
  • VPP Programming Enable Voltage: 12V ± 0.5V (programming current is only 250µA)
  • for HIGH with 5V supply: actually require 0.7 * VCC i.e. 3.5V minimum
  • for LOW: actually require 0.2 * VCC - 0.1V i.e 0.9V maximum

My goal was to achieve this with as few Arduino pins as possible, and without requiring an external 12V power supply.I can’t find the specs, but I’m pretty sure we need negligible current/power at any of these levels, which simplifies things.

I finally figured out this scheme. It needs 3 Arduino pins:

  • ~16V charge pump, generated with 62kHz PWM from 2 pins (inverted pair of PWM waves)
    • the output is fed to VPP/RST after clamping with a 12V zener diode
  • 0/5V controlled with a digital pin:
    • 5V is connected to VPP/RST via a diode to prevent 12V appearing back on the Arduino pin
    • 0V signal is inverted via a pair of NPN transistors that pull the VPP/RST down hard
    • this avoids ~2V from the unexcited charge pump preventing a true 0V input

And it works;-)

There is one caveat: there’s an “invalid state” that must be avoided lest the magic smoke may be released in a possible high current/burnout.This is avoided in the programming software.

Here’s a breakdown of the control states. In this table:

2051 Programmer Download

  • RST_PIN - pin A0 output
  • Charge Pump PWM - pins 3,11 output
RST_PINCharge Pump PWMCharge Pump VoltageQ1cQ2VPP/RST
High, 5VOn12VLowOff~12V
Low, 0VOn12VHighOninvalid state
High, 5VOff~2VLowOff~4.4V
Low, 0VOff~2VHighOn~0V

Possible improvement: I could probably reduce this to requiring 2 pins in total with the addition of an inverter IC to:

2051 Programmers

  • invert a single PWM signal for charge pump control
  • replace the 2 x NPN inverter for the 0V pull-down

Installing at89overlord

Programmer

Using a Python3 virtual environment. Requirements are in requirements.txt

Popularity

This installs at89overlord 0.4.0 (there wasa minor issuewith the packaging of 0.3.0 that may cause problems; 0.4.0 works fine though)

2021 Programming Language Popularity

Programming a Device

On my system, I have the Arduino plugged in and appearing on /dev/tty.usbmodem14511.

Using the hex file generated with the Blinky code here, programming a chip is as simple as this:

Breadboard Construction

Putting it on a Prototyping Shield

With so many wires on the breadboard, this is not very practical to build every time I need to program an 8051,and it is pretty fragile - just one dodgy wire and programming/verification can easily fail.

It looks like a nice project to build a custom board, with ATmega328 built in … another project for later!

I have a spare prototyping shield for an Uno, so for now I’ve put the circuit on that.Here’s a sketch of the layout I used:

The finished shield:

Now it’s easy to program an AT89C2051.

Programmers

Credits and References

  • Intel’s MCS-51 Microcontroller Family – It’s Here to Stay by Jon Wilder
  • 12 Volt Arduino-based Charge Pump - similar project used as inspiration
  • An Arduino-based programmer for the AT89C2051 chip - ceptimus