ZeBOY

Atmel AT89C2051

Работа с MK AT89C2051 фирмы Atmel.

Цель

Прошивка МК при помощи Малины необходимым кодом с приминением своего программатора

Программатор PR8051.1 для подключения к RaspberryPi2

Схема:

К программатору подключается также A512.1, для смены напряжения 5V,12V во время прошивки МК.

A512.1 - Управление питанием с 5V на 12V (подключается к PR8051.1)

Схема:

При подачи H(лог. 1) на С, на выходе (контакт RST) будет 5V, иначе 12V.

Подключение PR8051.1 к RaspberryPi2

Распиновка (default) для RaspberryPi 2

PR8051.1 XL1 RST P3.1 P3.2 P3.3 P3.4 P3.5_7 P0 P1 P2 P3 P4 P5 P6 P7
RPi Pin 17 4 18 23 27 22 24 5 6 13 19 26 16 20 21

Драйвер на Python

Код драйвера на GIT. Данный драйвер применяется через программатор PR8051.1

Читаем даташит (прошивка МК):

Programming The Flash
1.

Power-up sequence:

Apply power between VCC and GND pins

Set RST and XTAL1 to GND

2.

Set pin RST to “H”

Set pin P3.2 to “H”

3.

Apply the appropriate combination of “H” or “L” logic levels to pins P3.3, P3.4, P3.5, P3.7 to select one of the programming operations shown in the PEROM Programming Modes table.

-

To Program and Verify the Array:

4.

Apply data for Code byte at location 000H to P1.0 to P1.7.

5.

Raise RST to 12V to enable programming

6.

Pulse P3.2 once to program a byte in the PEROM array or the lock bits. The byte-write cycle is self-timed and typically takes 1.2 ms.

7.

To verify the programmed data, lower RST from 12V to logic “H” level and set pins P3.3 to P3.7 to the appropriate levels. Output data can be read at the port P1 pins.

8.

To program a byte at the next address location, pulse XTAL1 pin once to advance the internal address counter. Apply new data to the port P1 pins.

9.

Repeat steps 6 through 8, changing data and advancing the address counter for the entire 2K bytes array or until the end of the object file is reached.

10.

Power-off sequence:

set XTAL1 to “L”

set RST to “L”

Turn VCC power off

Реализация:

Пример функции на GIT (функция _writeToMk).

Применение с Raspberry

Пример программы на Python3: