1
\$\begingroup\$

I am new to this site. I am now working on microcontrollers. I successfully burnt hex file to 89S52 using arduino as a programmer. But I want to program 89C52 as this is the cheapest atmel microcontroller in my area. There are programmers available online that costs nearly 14.5 US dollar. But I want any cheap way as I am a student and cannot afford that much. Is there any way to do that? Or can I use arduino rx and tx pins to program 89C52?

Thanks in advance

\$\endgroup\$
3
  • 1
    \$\begingroup\$ The 89C52 comes in two modes: high-voltage and low-voltage programming. Do your chips have a "-5" (for 5 V programming)? See ww1.microchip.com/downloads/en/DeviceDoc/doc0313.pdf#page=13 \$\endgroup\$ Jul 23, 2018 at 16:32
  • 2
    \$\begingroup\$ The 89C52 is programmed with parallel 8-bit data and 13-bit address + 6 control signals. The algorithm is trivial but you need to create enough digital output pins. \$\endgroup\$ Dec 19, 2020 at 22:49
  • \$\begingroup\$ Even if 89C52 is cheaper than 89S52, the price difference between them only matter if you are building a comercial device at hundreds of units. A poor student who will only use one of two pieces should go for 89S52, even if the IC is somewhat more expansive. The reason is avoiding the complexity of programming 89C52 (for programming 89C52 you should provide it with 8 bits of data for each address, and 12 bits for each address, and control codes, all of them at the same time. Since there are uCs that can be serial programmed, serial programming is the only way to go. \$\endgroup\$
    – mguima
    May 20 at 13:26

2 Answers 2

1
\$\begingroup\$

If you really want to go cheap, use a 2$ or less STM32C8T6 board, which has SPI to communicate with AT89C52. You can use the Arduino IDE using STM32Duino if you are familiar with Arduino.

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

Atmel AT89C52 can be programmed over SPI using Arduino. Here's an Arduino project to do that:

https://www.hackster.io/PatelDarshil/programming-atmel-at89-series-via-arduino-cf6201

\$\endgroup\$
1
  • \$\begingroup\$ I have tried your technique. But it only works for 89S52 not 89C52 \$\endgroup\$ Jul 24, 2018 at 9:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.