«Универсальный программатор на FT232R. Сайт о микроконтроллерах AVR.RU», версия для печати. Исходный документ: https://avr.ru/ready/tools/prog/ft232r_universal

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

 

Введение:

 

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

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

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

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

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

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

 

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

Рисунок 1. Внешний вид программатора. (/int/Files/Picture/programmators/ft232r_universal/pic%201.%20Appearence.jpg) 

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

 

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

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

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

Рисунок.2 Рабочее окно программы. Вкладка "AVR". (/int/Files/Picture/programmators/ft232r_universal/Pic%202.%20AVR-menu.png)

 

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

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

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

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

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

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

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

Рисунок 3. Таблица из даташита на ATmega48. Значение фьюзов тактирования.
Рисунок 3. Таблица из даташита на ATmega48. Значение фьюзов тактирования. (/int/Files/Picture/programmators/ft232r_universal/Pic%203.%20Fuse%20bits%20ATmega48.png)

Фъюзы защиты (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“ (/int/Files/Picture/programmators/ft232r_universal/Pic%204.%20PIC-menu.png)

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

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

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

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

Настройка:

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

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

Внешний вид меню «Настройка» приведён на рисунке 5.
Рисунок 5. Внешний вид меню "Настройка"
Рисунок 5. Внешний вид меню «Настройка» (/int/Files/Picture/programmators/ft232r_universal/Pic%205.%20SETUP-menu.png)

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

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

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

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

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

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

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

Рисунок 6. Схема программатора
Рисунок 6. Схема программатора (/int/Files/Picture/programmators/ft232r_universal/Pic%206.%20Scheme.png)  (/int/Files/Picture/programmators/ft232r_universal/Pic%206.%20Scheme.png)

Для программирования чипов 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. последняя версия программы (/int/Files/Dounload/programmators/ft232r_universal/FT232Prog37.zip)
  2. 2 разновидности схемы (/int/Files/Dounload/programmators/ft232r_universal/Scheme.zip)
  3. проект на Delphi (/int/Files/Dounload/programmators/ft232r_universal/Project.zip)
  4. предыдущая статья (/ready/tools/prog/ft232r)
  5. некоторые полезные PDF, использованные при разработке (/int/Files/Dounload/programmators/ft232r_universal/PDF.rar)
  6. Альтернативная функция программатора – цифровой анализатор на FT232R (/ready/signal/sense/logic_analyzer)
  7. протокол прошивания пиков (ICSP) Guid (http://www.microchip.com/downloads/en/devicedoc/30277d.pdf)
 
 
 

 

Автор:  Сергей Меньшиков (http://forum.avr.ru/member.php?u=69342), e-mail для связи -  

Обсуждение на форуме (http://forum.avr.ru/programmator-usb-t35721.html)

 

 

 

Все права защищены © AVR.RU, 2021.