Универсальный программатор на FT232R

 

Введение:

 

Данный программатор предназначен для программирования различных микроконтроллеров, а также прошивания микросхем SPI Flash и I2C Eeprom и т.п. Подробный список поддерживаемых микросхем спрашивайте в теме поддержки, так как возможности программатора постоянно расширяются.

Этот программатор является развитием программатора, описанного ранее вот тут. Работа программатора описана там же и сильно не изменилась, добавились лишь поддерживаемые микросхемы, а также функции чтения FLASH и EEPROM.

Также данный программатор может работать как имитатор и анализатор последовательных протоколов - подробно об этом написано в [6].

Программатор очень прост и не требует каких-то дополнительных прошиваний. Спаял – и всё работает, так как основную функцию выполняет компьютер. Программатор основан на микросхеме FT232R, которая позволяет управлять пинами в режиме битбэнг. Для того, чтоб прошивание занимало как можно меньшее время, реализована пакетная передача данных.

Программатор не имеет выходного буфера, потому что FT232R позволяет запитывать свои порты внешним напряжением и переводить их в состояние Z (3тье состояние) после программирования, поэтому он не конфликтует с периферией контроллера.

Внешний вид программатора показан на рисунке 1.

 

Рисунок 1. Внешний вид устройства

Рисунок 1. Внешний вид программатора. 

Программатор имеет два разъёма для внутрисхемного программирования: AVR-ISP и PIC-ISP. Из названия уже понятно назначение разъёмов. Также программатор имеет панельку для программирования SPI Flash и I2C Eeprom. С одной стороны платы – под микросхемы в DIP-8, с другой – SO-8 (на прищепку). Также имеется 2 джампера: один для изменения режимов питания программатора и программируемой микросхемы, другой переключает режим выхода 12В (программирование PIC контроллеров или работа в режиме анализатора).

 

Программная оболочка.

Интерфейс программатора интуитивно понятен, к тому же кнопочки на русском, довольно удобно. Внешний вид программы показан на рисунке 2. Имеется табло с Логом операций (справа) и табло с закладками для программирования различных чипов (слева). Фьюзы подписаны согласно даташитам, галочка означает ‛1“ .

 Рисунок 2. Внешний вид меню "AVR"

Рисунок.2 Рабочее окно программы. Вкладка "AVR".

 

Работа с чипами AVR:

На рисунке 2 показана работа программатора с чипом ATmega48.

Для начала работы необходимо нажать кнопку «Read Signature», чтобы программатор определил чип. После этого в рабочем окне программы активизируются доступные кнопки и названия доступных фъюзов. Совместно с этим программатор производит чтение фьюзов и выставляет галочки.

Чтобы прошить флеш необходимо нажать кнопку «Файл Flash» и выбрать файл. Файл загружается в буфер, и под кнопкой «Файл Flash» будет подписана информация о нём и доступном объёме флэши чипа.

Прошивание Еепром происходит подобным способом.

Прошивка защиты и фьюзы:

Все фьюзы прописаны в соответствии с даташитами на контроллеры. Галочка в поле выбранного фьюза означает «1» - именно то значение «1», которое указано в даташите. Например, на рисунке.2 изображены фьюзы, считанные с контроллера ATmega48 согласно даташиту Tabl.8-1 (см. рисунок 3). Фьюзы CKSEL = 0010. означает, что тактирование чипа происходит от внутреннего RC генератора.

Рисунок 3. Таблица из даташита на ATmega48. Значение фьюзов тактирования.
Рисунок 3. Таблица из даташита на ATmega48. Значение фьюзов тактирования.

Фъюзы защиты (LockBit) прописываются согласно даташиту. В программной оболочке имеются для задания защиты 3 выпадающих меню. Первые два задают лок биты BLB01,02 второе  BLB11,12, а третье лок биты LB.

С третьим окном всё понятно и подписано. Там 3 режима: «нет защиты», «защита от записи» и «защита записи и чтения».

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

Если при прошивании контроллера возникла проблема с тактированием чипа, то возможно тактирование его от программатора. Для этого на разъёме AVR-ISP пин.3 выведен сигнал Cbus.4, на который при желании можно вывести тактовую частоту 6,12,24 или 48 Мгц. Это делается в закладке «Настройка». Частота будет выдаваться постоянно, вне зависимости от режимов программирования и работы программы.

Работа с PIC-контроллерами:

Рабочее окно программы при работе с PICами показано на рисунке 4.

 

Рисунок 4. Рабочее окно программы. Закладка ‛PIC“

  Рисунок 4. Рабочее окно программы. Закладка ‛PIC“

В отличие от фирмы Atmel фирма Microchip не ищет лёгких путей, поэтому программирование PICов очень наворочено.

Во-первых, MpLab создаёт при компиляции файл, в котором прописаны и Флэш, и Еепром, и Фъюзы, и ID, и защита. Всё намешано. Работа с такими файлами осуществляется 3мя кнопками: «Файл»-открытие файла дампа; «Считать дамп» - чтение и сохранение дампа; «Прошить дамп» - прошивание всего дампа.

Все загруженные данные (фъюзы и ID  и т.п.) отображаются в соответствующих областях. Перед прошивкой их можно подкорректировать.

Также можно прошить каждую область отдельно. Например, прочитать и прошить фъюзы.

Настройка:

Перед работой программатора (если программатор только собран или после замены FT) лучше всего зайти в меню «Настройка» и настроить работу FT на своё усмотрение или по умолчанию.

Кратенько про настройки:

Внешний вид меню «Настройка» приведён на рисунке 5.
Рисунок 5. Внешний вид меню "Настройка"
Рисунок 5. Внешний вид меню «Настройка»

В меню настройки можно изменить основные параметры, влияющие на работу программатора.

1. вывод тактовой частоты Cbus4 – этот выход заведён на разъём XT2-3. Служит, например, для тактирования чипов. Может иметь значение 6,12,24,48 или «выключен».

2. функции красного и зелёного светодиода не изменяются - на данный момент эти функции не реализованы.

3. Ограничение тока портов - тут можно задать ограничение тока, чтобы случайно не испортить программатор или подключаемую к нему схему. Этот параметр устанавливает ограничение тока не отдельных пинов, а всех сразу, то есть это суммарный ток всех портов.

4. Версия USB. Этот параметр больше зависит от вашего компьютера и на работу программатора особо не влияет.

Аппаратная часть

Схема программатора приведена на рисунке 6. Также имеется упрощённая схема программатора: ниже в архиве со схемой лежит версия Lite. Отличается простотой, содержит в себе 5 резисторов и 1 микросхему, но поддерживает исключительно чипы AVR.

Рисунок 6. Схема программатора
Рисунок 6. Схема программатора 

Для программирования чипов ATMEL а также микросхем SpiFlash всё просто. FT соединяется с ними через токоограничивающие резисторы 560 Ом. С ними никаких хитростей не требуется, FT после программирования отдаёт ноги и не мешает работе устройства.

Для программирования I2C Eeprom пришлось поставить транзистор, поскольку шина I2C имеет сигнал, направление которого меняется по ходу работы микросхемы, а это сделать на FT232R невозможно - переключение вход/выход требует остановки передачи. Для этого реализовано разделение сигналов на транзисторе VT2 и подтягивающем резисторе 1K. После него BIT3 является выходным, а BIT1 входным (когда BIT3=0). Таким образом, мы можем и передавать данные, и принимать в процессе.

Для программирования PIC контроллеров кроме реализованной уже шины I2C, необходимо было реализовать 12В выход (сигнал MCLR). Для этого реализован DC-DC преобразователь на микросхеме MC34063 - он преобразует 5В от USB в постоянное 12В.

В качестве коммутатора 12В сигнала использован драйвер IR2102, так как он быстродействующий и вполне подходит по току, да и по размерам.

Поскольку MCLR должен меняться не от 0, а от Vcc, соответственно, пришлось разделить питание диодами VD2, VD3.

 

Материалы, используемые в статье:

  1. последняя версия программы
  2. 2 разновидности схемы
  3. проект на Delphi
  4. предыдущая статья
  5. некоторые полезные PDF, использованные при разработке
  6. Альтернативная функция программатора – цифровой анализатор на FT232R
  7. протокол прошивания пиков (ICSP) Guid
 
 
 

 

Автор:  Сергей Меньшиков, e-mail для связи -  

Обсуждение на форуме