USB программатор МК AT89S52

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 11:53, курсовая работа

Описание работы

За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все оставшиеся части "голой" микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.

Содержание работы

1. Введение. 2
2. Обзор программаторов. 3
2.1. Программатор Громова. 4
2.2. STK200/300. 5
2.3. USBAsp. 6
3. Последовательное программирование AT89S52. 6
3.1. Алгоритм программирования. 6
3.2. Интерфейс программирования SPI. 7
4. Аппаратная реализация программатора. 8
4.1. Микросхема FT245BM. 9
5. Программная реализация. 10
5.3. Использование драйвера D2XX. 10
5.2. Bitbang. 10

Файлы: 1 файл

_Курсовая.docx

— 200.46 Кб (Скачать файл)

Основными элементами являются USB трансивер, контроллер FIFO и входной и выходной буферы FIFO (рис. ). Взаимодействие между этими элементами обеспечивается контроллером последовательного интерфейса (SIE).

Рисунок. Блок-схема микросхемы FT245BM

Данная микросхема является аппаратным преобразователем, а потому программатор на её основе лишен недостатков  COM программаторов, использующих bitbang. Для изменения уровней информационных выводов не нужно работать напрямую с линиями, вместо этого достаточно записать байт данных. Кроме того, микросхема сама формирует длительность импульсов, что упрощает работу программной части и ускоряет скорость работы.

5. Программная реализация.

Для программирования микроконтроллера написана программа, эмулирующая протокол SPI. Используются D2XX драйвера от FTDI, предназначенные для работы с микросхемой напрямую, а не с виртуальным COM портом. Код программы написан на Delphi, библиотека D2XX для Delphi взята с сайта FTDIchip.com. Обмен данными реализуются с помощью режима bitbang микросхемы FT245B.

5.3. Использование драйвера D2XX.

Для начала работы с устройствами FTDI необходимо получить их список. Для этого служит функция

procedure TMainFrm.GetDeviceList();

var

  Result: FT_Result;

  i: integer;

begin    

  DeviceList.Clear;

  Result := GetFTDeviceCount;

  if (Result = FT_OK) then

  begin

    for i := 0 to FT_Device_Count-1 do

    begin

      GetFTDeviceDescription(i);

      DeviceList.Items.Add(Description);

    end;

  end;

end;

5.2. Bitbang.

Важно не путать bitbang режим FT245B и bitbang режим COM порта. FT242BM может быть переведена в специальный режим, который переопределяет функции нормальной работы микросхемы. Этот режим преобразует 8 информационных линий в 8-мибитную двунаправленную шину. Первоначально такой режим был разработан для программирования FPGA устройств, однако может применяться и для взаимодействия с EEPROM или микроконтроллерами.

Каждая ножка может  быть настроена на ввод либо на вывод. Любые данные, которые записываются в микросхему, автоматически тактируются и появляются на ножках, настроенных на вывод, с указанной частотой.

В FT245B реализован только асинхронный bitbang, потому данные читаются постоянно, опять же с заданной частотой. Более новые микросхемы имеют синхронный bitbang режим, в котором данные читаются только при записи, а в некоторых также присутствует Multi-Protocol Synchronous Serial Engine – режим, в котором уже реализованы наиболее популярные протоколы, такие как SPI, I2C и JTAG.

Для работы в режиме bitbang необходимо использовать две функции: FT_SetBaudRate и .

FT_STATUS FT_SetBaudRate (FT_HANDLE ftHandle, DWORD dwBaudRate)

Параметры функции: ftHandle – указатель на устройство (далее аналогично); dwBaudRate – необходимая скорость передачи.

Данная функция устанавливает  скорость передачи и приема байт данных. Для bitbang режима необходимая частота передачи умножается на 16, т.е. для передачи на скорости 9600 Мбит/c необходимо выполнить функцию FT_SetBaudRate с параметром dwBaudRate, равным 153600 (16*9600).

FT_STATUS FT_SetBitmode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode)

Параметры функции: ucMask – маска bitbang режима, устанавливает, какие ножки должны быть вводами, а какие – выводами; ucMode – режим работы bitbang.

Данная функция позволяет  задать направление работы каждой информационно  ножки микросхемы, а также включить или отключить bitbang режим. Параметр ucMask является бит-маской – бит, установленный в ноль соответствует чтению с линии, установленный в единицу – записи на линию. Например, при параметре ucMask равному 00000101b, ножки D7-D3 и D1 будут вводами, а D2 и D0 – выводами.

Значения, которые может  принимать параметр ucMode, приведены в таблице 2.

Таблица 2. Значения параметра ucMode

Значение

Описание

Устройства

0x0

Отключение  bitbang

Все

0х1

Асинхронный bitbang

Все

0x2

MPSSE

FT2232, FT2232H, FT4232H и FT232H

0х4

Синхронный  bitbang

FT232R, FT245R, FT2232, FT2232H, FT4232H и FT232H

0х8

MCU Host Bus Emulation

FT2232, FT2232H, FT4232H и FT232H

0х10

Fast Opto-Isolated Serial

FT2232, FT2232H, FT4232H и FT232H

0х20

CBUS bitbang

FT232R и FT232H

0х40

Режим синхронного FIFO

FT2232H и FT232H


 


Информация о работе USB программатор МК AT89S52