Простой внутрисхемный программатор

Электроника для всех

Блог о электронике

AVR. Учебный курс. Трактат о программаторах

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.

Итак, первым шагом в освоении микроконтроллера обычно становится программатор. Ведь без программатора невозможно загнать программу в микроконтроллер и он так и останется безжизненным куском кремния.

Что же представляет из себя это устройство?
В простейшем случае программатор это девайс который связывает микроконтроллер и компьютер, позволяя с компа залить файл прошивки в память контроллера. Также нужна прошивающая программа, которая по специальному протоколу загонит данные в микроконтроллер.

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:

Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).

К этим выводам подключается прошивающий шнур программатора и происходит заливка прошивки. После чего шнур отключается и контроллер начинает работу.
У AVR прошивка заливается по интерфейсу SPI и для работы программатора нужно четыре линии и питание (достаточно только земли, чтобы уравнять потенциалы земель программатора и устройства):

  • MISO — данные идущие от контроллера (Master-Input/Slave-Output)
  • MOSI — данные идущие в контроллер (Master-Output/Slave-Input)
  • SCK — тактовые импульсы интерфейса SPI
  • RESET — сигналом на RESET программатор вводит контроллер в режим программирования
  • GND — земля

Сам же разъем внутрисхемного программирования представляет собой всего лишь несколько штырьков. Лишь бы на него было удобно надеть разъем. Конфигурация его может быть любой, как тебе удобней.
Однако все же есть один популярный стандарт:

Для внутрисхемной прошивки контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). А также бывают безмозглыми или со своим управляющим контроллером.

Безмозглые программаторы, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP может быть проблемой. Плюс бывает зависимость от тактовой частоты процессора компьютера.

Так что твой 3ГГЦ-овый десятиядерный монстр может пролететь, как фанера над Парижем.

Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.
Вот очень краткая подборка проверенных лично безмозглых программаторов:

  • Программатор Громова.
    Простейшая схема, работает через оболочку UniProf(удобнейшая вещь. ), но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнках может не заработать. А еще на быстрых компах часто не работает. Да, через адаптер USB-COM эта схема работать не будет. По причине извратности подхода 🙂
  • STK200
    Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.
  • FTBB-PROG.
    Очень надежный и быстрый программатор работающий через USB, причем безо всяких извратов. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI, да в таком мелком корпусе, что запаять ее без меткого глаза, твердой руки и большого опыта пайки весьма сложно. Шаг выводов около 0.3мм. Данный программатор встроен в демоплаты Pinboard

Программаторы с управляющим контроллером лишены многих проблем безмозглых. Они без особых проблем работают через USB. А если собраны на COM порт, то без извращенских методик работы с данными — как честный COM порт. Так что адаптеры COM-USB работают на ура. И детали подобрать можно покрупней, чтобы легче было паять. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы прошить ему управляющий контроллер. Проблема курицы и яйца. Широко получили распространение такие программаторы как:

Внутрисхемное программирование, несмотря на все его удобства, имеет ряд ограничений.
Микроконтроллер должен быть запущен, иначе он не сможет ответить на сигнал программатора. Поэтому если неправильно выставить биты конфигурации (FUSE), например, переключить на внешний кварцевый резонатор, а сам кварц не поставить. То контроллер не сможет запуститься и прошить его внутрисхемно будет уже нельзя. По крайней мере до тех пор пока МК не будет запущен.
Также в битах конфигурации можно отключить режим внутрисхемной прошивки или преваратить вывод RESET в обычный порт ввода-вывода (это справедливо для малых МК, у которых RESET совмещен с портом). Такое действо тоже обрубает программирование по ISP.

Параллельное высоковольтное программирование
Обычно применяется на поточном производстве при массовой (сотни штук) прошивке чипов в программаторе перед запайкой их в устройство.

Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не 3 линии данных, а восемь + линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после прошивки переставляется в целевое устройство.

Для радиолюбительской практики он особо не нужен, т.к. ISP программатор решает 99% насущных задач, но тем не менее параллельный программатор может пригодиться. Например, если в результате ошибочных действий были неправильно выставлены FUSE биты и был отрублен режим ISP. Параллельному программатору на настройку FUSE плевать с высокой колокольни. Плюс некоторые старые модели микроконтроллеров могут прошиваться только высоковольтным программатором.
Из параллельных программаторов для AVR на ум приходит только:

  • HVProg от ElmChan
  • Paraprog
  • DerHammer

А также есть универсальные вроде TurboProg 6, BeeProg, ChipProg++, Fiton которые могут прошивать огромное количество разных микроконтроллеров, но и стоят неслабо. Тысяч по 10-15. Нужны в основном только ремонтникам, т.к. когда не знаешь что тебе завтра притащат на ремонт надо быть готовым ко всему.

Прошивка через JTAG
Вообще JTAG это отладочный интерфейс. Он позволяет пошагово выполнять твою программу прям в кристалле. Но с его помощью можно и программу прошить, или FUSE биты вставить. К сожалению JTAG доступен далеко не во всех микроконтроллерах, только в старших моделях в 40ногих микроконтроллерах. Начиная с Atmega16.

Компания AVR продает фирменный комплект JTAG ICEII для работы с микроконтроллерами по JTAG, но стоит он (как и любой профессиональный инструмент) недешево. Около 10-15тыр. Также есть первая модель JTAG ICE. Ее можно легко изготовить самому, а еще она встроена в мою демоплату Pinboard.

Прошивка через Bootloader
Многие микроконтроллеры AVR имеют режим самопрошивки. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него заливается прошивка. Подробней описано в статье посвященной бутлоадеру.
Достоинство этого метода еще и в том, что работая через бутлоадер очень сложно закосячить микроконтроллер настолько, что он не будет отвечать вообще. Т.к. настройки FUSE для бутлоадера недоступны.

Бутлоадер также прошит по умолчанию в главный контроллер демоплаты Pinboard чтобы облегчить и обезопасить первые шаги на пути освоения микроконтроллеров.

Pinboard II
Прошивка AVR с помощью демоплаты Pinboard II (для Pinboard 1.1 все похоже)

Программатор для AVR

Описание

Этот простой AVR программатор позволит вам безболезненно загружать программы в формате hex в большинство AVR микроконтроллеров от ATMEL, не жертвуя своим бюджетом и временем. Он более надежен, чем большинство других простых доступных AVR программаторов, и на его сборку уйдет гораздо меньше времени.

AVR программатор состоит из внутрисхемного последовательного программатора (с разъемом) и маленькой печатной платы с DIP панелькой, в которую вы можете поместить свой микроконтроллер и быстро его запрограммировать.

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

Весь AVR программатор собирается из широко распространенных компонентов и умещается в корпусе разъема COM порта. Печатная плата с DIP панелькой позволяет вставлять в нее 28-выводной AVR микроконтроллер ATmega8 в корпусе DIP, но вы можете изготовить печатные платы для микроконтроллеров в любых других корпусах. Этот программатор совместим с популярным ПО PonyProg, которое показывает вам ход процесса прошивки в виде шкального индикатора статуса.

Внутрисхемный последовательный программатор AVR

Плата AVR программатора (вид спереди) с 9-контактным последовательным разъемом (гнездо).
Плата программатора AVR (вид сзади).
Размещение платы программатора AVR в корпусе разъема RS232.
Законченный программатор со стандартным 6- контактным разъемом ICSP.

Плата с панелькой для AVR

Плата имеет минимальное количество компонентов и используется для программирования микроконтроллеров вне целевого устройства.

Плата с 28-выводным микроконтроллером Atmega в корпусе DIP.
В схеме есть 2 разъема: ICSP, к которому подключается AVR программатор и разъем для внешнего источника питания.

Плата включает в себя 28 выводную DIP панельку, кварцевый резонатор на 4 МГц или резонатор с двумя конденсаторами по 22 пФ, и два разъема. Двухконтактный разъем служит для подключения к AVR микроконтроллеру питания +5 В, а 6-контактный – для подключения программатора.

Питание микроконтроллера от внешнего источника напряжения, а не непосредственно от последовательного порта, гарантирует, что контроллер получит именно 5 В и обеспечит надежную и безошибочную прошивку.

Плата для 28 выводного микроконтроллера AVR Atmega8 в DIP корпусе.

ПО PonyProg

Чтобы иметь возможность загружать hex файлы из компьютера в микроконтроллер, вам потребуется скачать и установить ПО PonyProg2000. После установки, первое, что предстоит сделать, это сконфигурировать PonyProg для работы с AVR программатором. Для того, чтобы сделать это, войдите в меню «Setup» и выберите пункт «Interface Setup». Ниже на рисунке подсвечены именно те опции, которые вам следует выбрать.

Следующим шагом выберите «AVR micro» и тип микроконтроллера, который хотите запрограммировать (например ATmega8).

Теперь конфигурирование PonyProg завершено, и мы можем открыть hex файл с программой, которая будет зашита в микроконтроллер. Перейдите в меню «File», выберите «Open Program (FLASH) File . » и укажите на hex файл, который надо зашить. Вы должны увидеть шестнадцатеричные значения, примерно такие, как показаны на рисунке ниже. Если вы все еще не подключили программатор к последовательному порту компьютера, то сейчас самое время это сделать. Убедитесь, что ваш программатор физически подключен к AVR микроконтроллеру через плату с панелькой или 6 контактный разъем ICSP. Наконец, кликните на подсвеченной иконке «Write Program Memory (FLASH)» или идите в меню «Command» и выберите «Write Program (FLASH)».

Кликните на кнопке «Yes», чтобы подтвердить запись.

Теперь сядьте поудобнее, расслабьтесь и наблюдайте за процессом программирования по индикатору состояния. PonyProg прошьет AVR микроконтроллер и проверит, загрузился ли hex файл без ошибок. Этот процесс обычно занимает от 10 до 30 секунд, в зависимости от размера программы, которую вы будете зашивать в микроконтроллер.

После программирования появится окно «Write successful», показывающее, что AVR микроконтроллер был запрограммирован и теперь готов к использованию.

Программатор своими руками ChipStar-Janus

2020-05-29 Дата последнего обновления программы: 2020-05-29
Автор: Тиком – разработчик и производитель программаторов ChipStar

Двуликий Янус

Мы решили назвать этот программатор “Янус“.

Почему так? Потому что в римской мифологии Янус – это двуликий бог дверей, входов и выходов, а также начала и конца. Какая связь? Почему наш программатор ChipStar-Janus двуликий?

  • C одной стороны, этот программатор – простой. Распространяется как бесплатный проект, его можно легко изготовить самому.
  • C другой стороны, он разработан фирмой, длительное время профессионально занимающейся разработкой и производством различной радиоэлектронной аппаратуры, в том числе программаторами.
  • C одной стороны, этот программатор – простой, с первого взгляда имеет не сильно впечатляющие характеристики.
  • C другой стороны, работает совместно с профессиональной программой (кстати, точно такой же, как и остальные профессиональные программаторы ChipStar).
  • C одной стороны, мы предлагаем этот программатор для свободной бесплатной сборки.
  • C одной стороны, мы его продаем и в готовом виде, как обычный бюджетный продукт.
  • C одной стороны, на самодельный программатор не распространяется гарантия (что естественно).
  • C одной стороны, если вы его смогли собрать, то и отремонтировать сможете, да и программатор настолько простой, что ломаться, собственно, нечему.
  • C одной стороны, это простой внутрисхемный программатор.
  • C одной стороны, через простые адаптеры расширения он поддерживает программирование NANDFLASH и других микросхем уже “в панельке”.

Таким образом, программатор ChipStar-Janus для многих специалистов может стать настоящим выходом в ситуации, когда разных простых или любительских программаторов уже недостаточно, а более сложный программатор кажется избыточным или на него не хватает выделенного бюджета.

Что нас побудило разработать этот программатор.

Есть великое множество простых специализированных программаторов, пригодных для самостоятельного изготовления.

Есть множество дешевых китайских программаторов в уже готовом виде.

Есть немало любительских разработок, часто по качеству превосходящих последние.

Казалось бы, в чем смысл очередной поделки?

Мы длительное время занимаемся разработкой производством и поддержкой универсальных программаторов, в основном специального назначения. У нас богатый опыт работы с самыми разными микросхемами. Часто к нам обращаются люди уже собравшие, а часто и купившие, какой-нибудь из выше названных “изделий”. Нашим специалистам часто без смеха/слез/ужаса (нужное подчеркнуть) невозможно смотреть на схемные решения, качество сборки и, особенно, на программное обеспечение этих приборов. Ладно когда программатор стоит “три копейки”, купил, что-то работает, что-то не работает, зато деньги не большие. Но часто соотношение цена/возможности таких приборов у нас вызывают, мягко говоря, удивление. Хочется воскликнуть: это столько не стоит!

Кроме всего выше названного есть особая категория программаторов, пригодных для самостоятельного изготовления – это программаторы (точнее, схемы программаторов и программное обеспечение), разработанные специалистами фирм производящих микросхемы (в основном микроконтроллеры). Такие программаторы спроектированы вполне профессионально, в их схемотехнике нет “ляпов”. Они поддерживают все заявленные микросхемы. Но есть два “маленьких” недостатка: перечень программируемых микросхем весьма ограничен (что вполне понятно) и программное обеспечение весьма спартанское – никаких лишних функций, как правило – только стереть, записать, верифицировать. Часто даже функции чтения микросхемы нет.

Нам стало обидно, что наш многолетний опыт полноценно используется только в такой узкой области, как программаторы специального назначения, поэтому мы решили поделиться своими знаниями с широкой публикой.

Итак, программатор ChipStar-Janus в начальной конфигурации – это внутрисхемный программатор. В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, некоторые микроконтроллеры архитектуры MCS51, микроконтроллеры фирмы STMicroelectronics и еще ряд других, а также микросхемы последовательной памяти с интерфейсом I2C (в основном серия 24). К разъему расширения программатора можно подключить простейшие адаптеры и начать программировать микросхемы памяти “в панельке”.

Сейчас реализовано программирование “в панельке”:

  1. микросхемы последовательной памяти (Serial EPROM) с интерфейсом I2C (серия 24xx);
  2. микросхемы последовательной флэш памяти (Serial FLASH) с интерфейсом SPI (SPI Flash);
  3. микросхемы последовательной памяти (Serial EPROM) с интерфейсом MW (серия 93xx);
  4. микросхемы NAND FLASH;

Программатор и программное обеспечение поддерживает технологию самостоятельного добавления микросхем в три клика. Пока реализовано добавление микросхем NAND и I2C. В самое ближайшее время планируется реализовать эту технологию для микросхем MW (серия 93xx) и AVR. Таким образом, вы получаете не просто программатор, а мощный инструмент для самостоятельной работы.

Три способа получить программатор ChipStar-Janus

1-й способ:
Собрать программатор самому полностью

Способ подходит тем, у кого есть время, опыт и желание, но ограничены финансовые возможности. Или просто интересно.

  1. Прочитать условия использования самостоятельно собираемого программатора.
  2. Прочитать инструкцию по сборке программатора.
  3. Скачать полную документацию на программатор.
  4. Скачать информацию для изготовления печатных плат программатора.
  5. Изготовить печатные платы.
  6. Закупить необходимую комплектацию для сборки программатора согласно спецификации.
  7. Зарегистрироваться на сайте обязательно как новый пользователь по этой ссылке!
  8. Войти в личный кабинет и скачать программное обеспечение для программатора и прошивку для микроконтроллера.
  9. Записать (залить, загрузить) полученную прошивку в микроконтроллер. Для этого нужен программатор. Вот незадача, мы же его еще не сделали! Как быть? Можно одолжить у кого-нибудь программатор или попросить записать прошивку в микроконтроллер. Если это невозможно, то вам лучше воспользоваться вторым способом.
  10. Правильно собранный программатор сразу начнет правильно работать. Для функционального контроля воспользуйтесь программой JanusCheker.

2-й способ:
Собрать программатор самому, купив готовую печатную плату и прошитый микроконтроллер

Способ аналогичен предыдущему, только вы избавите себя от самых трудноосуществимых операций: изготовления печатных плат и прошивки микроконтроллера без программатора.

  1. Прочитать условия использования самостоятельно собираемого программатора.
  2. Прочитать инструкцию по сборке программатора.
  3. Скачать полную документацию на программатор.
  4. Купить набор для сборки (готовую печатную плату и микроконтроллер с уже записанной прошивкой).
  5. Закупить необходимую комплектацию для сборки программатора согласно спецификации
  6. Зарегистрироваться на сайте как обычный пользователь готового программатора по этой ссылке. Для этого в регистрационной форме нужно указать серийный номер и дату прошивки полученного вами микроконтроллера.
  7. Войти в личный кабинет и скачать программное обеспечение для программатора.
  8. Правильно собранный программатор сразу начнет правильно работать. Для функционального контроля воспользуйтесь программой JanusCheker.

Как видите, этот путь значительно короче. Готовая плата выпускается только в варианте для компонентов поверхностного монтажа, как на фотографии готового программатора. Если вы выбрали этот способ, пройдите по ссылке и закажите комплект для сборки программатора ChipStar-Janus.

3-й способ:
Купить готовый программатор

Проще всего купить готовый программатор. Этот случай ничем не отличается от покупки любого другого нашего программатора.

Что мы еще планируем сделать для развития программатора ChipStar-Janus

1. Расширить возможности самостоятельного добавления микросхем, добавив:

  • Микросхемы памяти c протоколом MWсерии 93xx.
  • Микросхемы памяти c SPI интерфейсом.
  • Микросхемы памяти DataFlash.
  • Микроконтроллеры AVR семейств Mega и Tiny.

2. Выпустить дополнительные модули для превращения программатора в измерительную лабораторию:

  • Мультиметр.
  • Логический анализатор.

Что еще имеет смысл купить или сделать своими руками для программатора ChipStar-Janus

  1. Адаптер для программирования микросхем NAND.
  2. Адаптер для программирования микросхем последовательной памяти с интерфейсами I2C и SPI.
  3. Адаптер для программирования микросхем последовательной памяти с интерфейсом MW (93 серия).

Часто спрашивают

ChipStar-Janus это готовый программатор, а ChipStar-Janus/KIT это набор основных деталей для сборки программатора ChipStar-Janus.

Посмотреть и отредактировать можно программой CAM350.
CAM350® является стандартом де-факто для проверки, оптимизации и генерации данных для эффективного управления изготовлением печатных плат.

Правильно собранный программатор ChipStar-Janus сразу будет правильно работать. Ищите ошибку монтажа или неисправный компонент. Проверить функционирование программатора можно с помощью программы JanusCheker.
Всегда используйте программное обеспечение и документацию самой последней версии!

Ошибки нет. Все так и должно быть.

Правильное включение диода VD6 показано в документации. Рисунок диода VD6 на печатной плате первой версии нанесен неверно. Включение программатора с неправильно запаянным диодом не приведет к выходу его из строя.

Никаких. Микроконтроллер нужно правильно прошить высоковольтным алгоритмом записи в соответствии со спецификацией Microchip.

Все необходимые fuses интегрированы внутрь прошивки (файл .hex) в соответствии со спецификацией Microchip. Программатор ОБЯЗАН правильно читать фусес из файла прошивки.
Если программа используемого программатора не умеет прочитать фусес из файла, то их нужно выставить вручную как показано здесь: “Биты конфигурации (фусес) для прошивки микроконтроллера программатора ChipStar-Janus/KIT”

Да. Только придется отпаять VD6 (он препятствует подаче высокого напряжения программирования 12V на вывод MCLR процессора). Соединение с программатором необходимо произвести в соответствии со схемой для внутрисхемного программирования и инструкцией используемого программатора.

Нет. Нужно использовать PIC18F25K50.

Посмотреть другие вопросы о программаторе ChipStar-Janus

Простой внутрисхемный программатор

Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server during query in /usr/home/18888/triton-prog.ru/html/cfg/functions.php on line 45

Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /usr/home/18888/triton-prog.ru/html/cfg/functions.php on line 46
Lost connection to MySQL server during query

Santei

Внутрисхемное программирование
Все модели программаторов ТРИТОН позволяют программировать микросхемы непосредственно в устройствах пользователя. Для этого не только микросхема, но и само устройство должны поддерживать режим внутрисхемного программирования. В устройстве должно быть предусмотрено подключение программатора. Поскольку для программирования многих микросхем используются напряжения, значительно превышающие напряжение питания, устройство должно выдерживать эти напряжения. Подключаемое устройство не должно оказывать шунтирующего влияния на сигналы программатора. Как правило, все эти требования подробно описаны в фирменных спецификациях по программированию на каждую микросхему.

Программирование микросхем внутрисхемно может осуществляться двумя способами:
непосредственно сигналами с панельки программатора.
с помощью специального переходника TSH-ICSP.
Программирование сигналами с панельки программатора
Для этого нужно просто соединить выводы микросхемы с соответствующими выводами панельки программатора и, если микросхема имеет несколько алгоритмов программирования, выбрать режим ICSP. Посмотреть на каких выводах программатор сформирует необходимые сигналы, можно в документации на данную микросхему или в меню “МикросхемаПараметры”.

Возможные проблемы. Ключи программатора, которые формируют логические сигналы и обеспечивают чтение данных с микросхемы, построены по схеме с открытым коллектором, в нагрузке которого стоит резистор 10k. Поэтому, если в устройстве пользователя к выводам DATA или CLOCK подключена какая-либо низкоомная нагрузка, то возможно шунтирование сигналов программатора и как следствие сбои в работе. В этом случае, непосредственно на разъем для внутрисхемного программирования, между VCC и сигналом DATA (или CLOCK) можно установить дополнительный резистор номиналом 0,5..1k, который будет подтягивать уровень сигнала и увеличивать нагрузочную способность. Для устойчивой работы необходимо отношение сопротивления нагрузки к сопротивлению в открытом коллекторе не менее, чем 5:1.
Программирование через переходник TSH-ICSP
В отличии от выводов панельки программатора, которые построены по схеме с ОК, логические выходы переходника TSH-ICSP буферизированы, т.е. выполнены по схеме push-pull и обеспечивают ток нагрузки в нуле и единице до 15-20mA. Остальные сигналы: питание, земля и напряжение программирования передаются на выходы переходника без изменений. Необходимо отметить, что ток нагрузки логических выходов идет за счет источника питания в программаторе, максимальный ток которого не должен превышать 80mA.

Чтобы использовать переходник TSH-ICSP его необходимо “Включить”. Для этого, после выбора микросхемы, в меню “МикросхемаПараметры” необходимо установить флаг “Использовать TSH-ICSP”. Программа считает из файла “ICSP.CFG” начальную конфигурацию, сделает необходимые настройки и покажет на экране цоколевку разъема. Если в появившемся окне этого флага нет, значит выбранная микросхема не может программироваться в устройстве пользователя или программатор не поддерживает этот режим.

Переходник для внутрисхемного программирования TSH-ICSP поддерживает технологию универсальных алгоритмов и может быть частично переконфигурирован пользователем в меню: “МикросхемаПараметры”:
выводы с 1 по 4 Vcc, Vpp, GND, логический вход/выход c ОК.
выводы 5, 7, 9 буферизированные логические входы/выходы, вход/выход c ОК или GND.
выводы 6, 8 Vpp, GND, логический вход/выход c ОК.
вывод 10 Vcc, GND, логический вход/выход c ОК.
Для увеличения нагрузочной способности выходов с ОК на выводах 6, 8 и 10 на плате переходника предусмотрена возможность установки дополнительных подтягивающих резисторов номиналом 0,5..1k.

Если расположение сигналов на выходах панельки не совпадает с цоколевкой разъема на плате, то программа позволяет изменить конфигурацию выводов. Для этого в положениях “Начальное состояние” и “Управляющие сигналы” надо мышкой перетащить сигналы на требуемые выводы, после чего сохранить настройки. Чтобы после переназначения сигналов, переходник работал корректно, менять конфигурацию надо в двух местах:
в “Начальном состоянии”, где задается состояние выводов, которое будет подано на микросхему в момент включения питания, и которое обеспечивает вход микросхемы в режим программирования.
и в положении “Управляющие сигналы”, где задаются номера выводов на которых программатор будет формировать логические сигналы.

Программа учитывает схемотехнику переходника и программатора, и подсвечивает неправильно сконфигурированные сигналы желтым цветом. Кроме того, при перетаскивании управляющих сигналов, программа может исправлять некоторые ошибки.

Чтобы каждый раз не повторять эту операцию, можно сохранить текущие настройки в виде проекта или отредактировать файл “ICSP.CFG”. Чтобы изменить текущую или добавить новую конфигурацию в файл “ICSP.CFG” нужно в любом текстовом редакторе изменить соответствующую строку в конце этого файла. Более подробно о переназначении выводов и работе переходника TSH-ICSP описано в файле “ICSP.CFG”, который находится в папке, куда устанавливалась программа.
Общие замечания и рекомендации

Перед подключением разъема для внутрисхемного программирования, ОБЯЗАТЕЛЬНО СОЕДИНИТЬ общий вывод платы или корпус устройства с корпусом компьютера или программатора. В первую очередь это касается устройств работающих от внешних импульсных иточников питания. При отсутствии надежного контакта или при неправильном заземлении, разность потенциалов будет приложена через выводы панельки к ключам программатора. Как правило, такие программаторы уже не ремонтопригодны.

Формирователь напряжения питания в программаторе обеспечивает ток не более 80mA. При внутрисхемном программировании, с учетом емкостей по питанию, ток потребляемый программируемым устройством не должен превышать 50mA. Если устройство потребляет больший ток, то необходимо использовать внешний источник питания. При этом подавать питание одновременно этого источника и программатора НЕЛЬЗЯ.

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

Программируемое устройство может иметь большие емкости в цепях питания. Программатор позволяет работать с емкостями по питанию до 500mkF, при условии, что устройство потребляет ток не более 20..30mA. Для этого в параметрах микросхемы необходимо изменить ячейку $18 – длительность задержки при включении питания. Этот параметр определяет время, в течение которого защита в программаторе находится в выключенном состоянии, обеспечивая заряд емкости максимальным током. Значение устанавливается из расчета 1ms на

Программатор формирует “землю” и логический ноль с помощью полевых транзисторов с очень малым сопротивлением канала. Поэтому выводы микросхемы, которые используются при программировании, не должны подключаться напрямую к цепям питания или выходам других микросхем, которые находятся в активном состоянии. Выходы этих микросхем должны быть отключены перемычками на время программирования или переведены в третье состояние с помощью дополнительных сигналов.
Рекомендуемая схема подключения PIC контроллеров
Перемычку J1 можно не устанавливать, если ток потребляемый схемой не превышает 50mA.
При отсутствии диода D1 номинал резистора R1 должен быть не менее 20kOm.
Вместо диода D1, резисторов R2 и R3 можно установить перемычки и размыкать их на время программирования.
Номиналы резисторов R2 и R3 (или сопротивление нагрузки, подключенной к выводам DATA или CLOCK) должны быть не менее 1kOm при работе через TSH-ICSP и 50kOm для сигналов с панельки программатора.
Резисторы R2 и R3 можно не устанавливать, если нагрузка, подключенная к выводам DATA или CLOCK подтянута к VDD.
Типовые ошибки и возможные проблемы.

Многие PIC контроллеры (Pic12F*, Pic16F*) для входа в режим программирования требуют сначала подачу высокого напряжения на вывод MCLR и только потом напряжение питания. Некоторые из них, особенно при работе от внутреннего генератора, могут запускаться при подаче напряжения на обычные выводы микросхемы. Поэтому схема должна быть спроектирована с учетом того, чтобы не допустить попадания Vpp в цепи питания или на другие выводы микросхемы.

Если устройство имеет большую емкость по питанию, и при этом потребляет незначительный ток, то во время работы, когда программатор отключает питание между циклами, емкость может не успеть разрядиться, что может препятствовать последующему входу в режим программирования. В этом случае можно установить дополнительный резистор (порядка 1kOm) между VDD и GND, непосредственно на разъеме для внутрисхемного программирования.

Если для сброса контроллера используется супервизор без токоограничивающего резистора, то напряжение программирования (+12..13v) окажется приложенным к его выходу, что приведет к срабатыванию защиты в программаторе и может повредить микросхему.
Рекомендуемая схема подключения Serial EEPROM 24xxx
Eсли ток потребляемый схемой не превышает 50mA, то можно запитать схему от программатора.
В устройстве на шине I2C может быть подключено несколько микросхем. Доступ к каждой микросхеме осушествляется по адресу, установить который можно в параметрах микросхемы.
Процессор в подключаемом устройстве не должен оказывать шунтирующего влияния на сигналы программатора. Для этого используется дополнительный сигнал, который подключается ко входу RESET микроконтроллера и запрещает его работу на время программирования микросхемы. Уровень этого сигнала зависит от типа процессора и задается в параметрах микросхемы в положении “Начальное состояние”.
Типовые ошибки и возможные проблемы.

Не подключен сигнал RESET и процессор находится в активном состоянии. Если при работе с Serial EEPROM, процессор попытается обратиться к микросхеме одновременно с программатором, то между ними возникнет конфликт. В результате в программаторе может сработать защита по питанию, но в любом случае, микросхема будет считана или записана с ошибками. Чтобы избежать этого один из выводов панельки нужно использовать в качестве сигнала сброса для процессора.

ДОБАВЛЕНО 07/04/2010 11:34

А картинки не скопировались. Я по ссылке нормально захожу.

Всё это я понимаю у меня это на диске есть.
А вот как в фильме 5 элемет шорт ё нейм.

1 что на выводах большого разъёма имеется
2 что за мелкий разъём и что так же на нём имеется.

m.ix писал:
Всё это я понимаю у меня это на диске есть.
А вот как в фильме 5 элемет шорт ё нейм.

1 что на выводах большого разъёма имеется
2 что за мелкий разъём и что так же на нём имеется.

Santei

Миша,а вот и техподдержка подошла.Именно эти рисунки и есть по ссылкеtrt, я набор адапторов заказывл за 4800,вы ответили что поступят к середине апреля,их нужно снова заказать,или отправите после поступления без доп.заказа?

Santei, лучше повторить заказ, когда панельки будут в наличии. Если заказ был размещен ранее, то сначала будет отправлен запрос на подтверждение заказа.

Santei

когда все же ожидается их поступление?

Santei, Для заказов есть иная тема.

Santei, А что за внешние разъёмы то?

“Прошиваем” микроконтроллеры. Часть 1. Знакомство.

Микроконтроллер относится к программируемому типу микросхем, на основе которого можно собрать схему какого либо автоматического устройства. Такое устройство может представлять собой простейшую схему с мигающим светодиодом, или автомат, выполняющий сложные вычисления и управляющий другими устройствами. Основной элемент в обоих случаях может быть одним и тем же микроконтроллером, разница будет состоять лишь в записанной в него программе.
Доступность микроконтроллеров и простота составления своих собственных программ для них, делает микроконтроллеры очень заманчивым для сборки разнообразнейших схем. Раньше, для изменения функций устройства, построенного на обычных логических микросхемах, требовалось изменять саму схему, выпаивать и впаивать детали, а теперь конструкцию на микроконтроллере обычно достаточно лишь перепрограммировать. Отчасти как раз из-за этой простоты изменения функций, микроконтроллеры быстро вытеснили устройства, построенных на множестве логических элементах.
Программы для микроконтроллеров могут быть написанны на различных языках программирования с использованием специальных компьютерных программ. Написанная и преобразованная (откомпилированная) программа переносится в микроконтроллер с помощью программатора.
Программатором называют электронное устройство, к которому подключается микроконтроллер, а так же программатор – это компьютерная программа, управляющая процессом переноса подготовленной программы из компьютера в микроконтроллер.
Конструкцию с микроконтроллером, в который прошивается прошивка, называют целевой конструкцией или целевой схемой.

Прошивка (“прожиг”) – (глагол) процесс переноса программы в электронное устройство.
Прошивка – (существительное) подготовленная программа для электронного устройства.

Определить, какое именно значение слов “программатор” или “прошивка” употребляется, можно обычно из контекста. Далее мы убедимся, что это не так сложно.

Большинство программ-программаторов могут быть настроены для работы с разными схемами программаторов-адаптеров. Программатор-адаптер подключается к компьютеру через какой либо порт ввода-вывода. В настоящее время существуют три наиболее распространённых возможности подключения программатора к компьютеру по какому либо порту:

В течении последних лет параллельный порт принтера LPT и последовательный COM-порт были вытеснены USB-портом. Тем не менее всё ещё имеются в продаже отдельные платы расширения для LPT- и/или COM-порта. Такие карты (“мультипортовки”) можно дополнительно установить в уже имеюшийся компьютер, но дополнить ноутбук COM- или LPT-портом нельзя или крайне сложно.

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

Часто схемы программаторов для USB-порта достаточно сложны для повторения начинающими электронщиками, и нередко содержат микроконтроллер, который тоже необходимо сначала каким то образом прошить, можно посоветовать несложную схему программатора, подключаемого к компьютеру на COM-порт или на USB через адаптер USB-COM. Через существующие адаптеры USB-LPT прошить микроконтроллер не удасться, так как эти адаптеры “эмулируют” не LPT порт, а лишь управляют работой с принтером.
Нужно предупредить, что программа в микроконтроллер через USB-COM-адаптер загружается в десятки раз дольше, чем через “нормальный” COM-порт и с этим придётся мириться.

Пожалуй, большинство начинающих выбирает восьмибитные AVR-микроконтроллеры RISC архитектуры фирмы ATMEL из-за их гибкости, хорошо описанных примеров применения и невысокой цены. Эти микроконтроллеры, как и множество других, могут быть запрограммированны через ISP-интерфейс.

ISP (In System Programming) – интерфейс внутрисхемного программирования, позволяет программировать контроллер не отсоединяя от остальной схемы.

ISP-интерфейс состоит из пяти проводников: MOSI, MISO, SCK, RESET и GND. Подключение ISP-программатора позволяет программировать микроконтроллеры, (в большинстве случаев) не извлекая сам микроконтроллер из схемы.

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

Вышеперечисленных недостатков лишина схема на Рис. 2. Это программатор для последовательного COM-порта всего на двух распространённых микросхемах: микросхемы RS232-драйвера MAX232 (или аналога) и логической микросхемы 74LS240 (отечественный аналог К555АП3).
Микросхема MAX232 представляет собой широкораспространённый четырёхканальный драйвер (преобразователь уровня) интерфейса RS-232 (примерно от минус 12 до плюс 12 вольт) к уровням CMOS/TTL (уровень 5-вольтовой логики). Микросхема 74LS240 является сдвоенным инвертирующим буфером четырёх линий с разрешением выхода.

Программатор, собранный по этой схеме обладает следующими достоинствами:

  • благодаря MAX232 происходит гарантированное преобразование уровней сигналов
  • программатор не требуется отключать от схемы после прошивки
  • в схему программатора можно легко внести модификации, которые будут полезными в дальнейшем
  • эту схему можно использовать как при работе через COM-порт, так и через переходник USB-COM
  • с этой схемой работают многие программы-программаторы (например, avrdude и PonyProg200).

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

Смелых и Удачных Экспериментов.

Дополнения и файлы:

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

Введение:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для программирования чипов 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.

Читайте также:  Сетевой источник питания с высокими удельными параметрами
Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector