Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

6- и 10-контактные разъемы AVR ISP

Внутрисистемное программирование (ISP), также называемое внутрисхемным последовательным программированием (ICSP), представляет собой возможность программирования некоторых программируемых логических устройств , микроконтроллеров и других встроенных устройств во время их установки в полную систему, вместо того, чтобы требовать, чтобы микросхема быть запрограммированным перед установкой в ​​систему. Это позволяет доставлять обновления прошивки во встроенную память микроконтроллеров и связанных процессоров, не требуя специальной схемы программирования на печатной плате, и упрощает работу по проектированию. [1]

Существует несколько взаимно несовместимых протоколов внутрисистемного программирования для программирования микроконтроллерных устройств, включая микроконтроллеры PIC , AVR и Parallax Propeller . ICSP в первую очередь был реализован компанией Microchip Technology для программирования устройств PIC и dsPIC.

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

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

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

История [ править ]

Начиная с начала 90-х годов мы стали свидетелями важной технологической эволюции архитектуры микроконтроллеров. Сначала они были реализованы в двух возможных решениях: с OTP (One Time Programmable) или с памятью EPROM . В этих технологиях процесс стирания памяти требует, чтобы микросхема подвергалась воздействию ультрафиолетового света через специальное окно над корпусом. В 1993 году Microchip Technology представила первый микроконтроллер с памятью EEPROM.: PIC16C84. Память EEPROM можно стереть электрически. Эта функция позволила снизить затраты на реализацию за счет удаления окна стирания над пакетом и запуска технологии внутрисистемного программирования. С помощью ISP процесс перепрошивки может быть выполнен прямо на плате в конце производственного процесса. Эта эволюция дала возможность объединить этапы программирования и функционального тестирования в производственных средах и начать предварительное производство плат, даже если разработка прошивки еще не завершена. Таким образом, можно было исправить ошибки или внести изменения позже. В том же году Atmel разработала первый микроконтроллер с флэш-памятью, который проще и быстрее программировать и с гораздо более длительным жизненным циклом по сравнению с памятью EEPROM.

Микроконтроллеры, поддерживающие ISP, обычно снабжены выводами, используемыми периферийным устройством последовательной связи для взаимодействия с программатором, памятью Flash / EEPROM и схемой, используемой для подачи напряжения, необходимого для программирования микроконтроллера. Периферийное устройство связи, в свою очередь, подключается к периферийному устройству программирования, которое обеспечивает команды для работы с памятью Flash или EEPROM.

При разработке электронных плат для программирования ISP необходимо учитывать некоторые рекомендации, чтобы этап программирования был максимально надежным. Некоторые микроконтроллеры с небольшим количеством контактов разделяют линии программирования с линиями ввода-вывода. Это может стать проблемой, если необходимые меры предосторожности не будут учтены при проектировании платы; во время программирования устройство может повредить компоненты ввода / вывода. Более того, важно подключать линии ISP к высокоомным.схемы, чтобы избежать повреждения компонентов программистом и потому, что микроконтроллер часто не может обеспечить достаточный ток для управления линией. Многим микроконтроллерам требуется выделенная линия RESET для входа в режим программирования. Необходимо обратить внимание на ток, подаваемый для управления линией, и проверить наличие сторожевых таймеров, подключенных к линии RESET, которые могут вызвать нежелательный сброс и, таким образом, привести к ошибке программирования. Более того, некоторым микроконтроллерам требуется более высокое напряжение для входа в режим программирования, и, следовательно, необходимо убедиться, что это значение не ослабляется и что это напряжение не передается другим компонентам на плате.

Промышленное применение [ править ]

Процесс внутрисистемного программирования происходит на заключительном этапе производства продукта и может выполняться двумя разными способами в зависимости от объемов производства.

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

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

В производственных линиях доски размещаются на гвоздях, называемых крепежными элементами . Последние интегрируются в зависимости от объемов производства в полуавтоматические или автоматические испытательные системы, называемые ATE - Automatic Test Equipment.. Крепления специально разработаны для каждой платы - или, самое большее, для нескольких моделей, подобных плате, для которой они были разработаны - поэтому они взаимозаменяемы в системной среде, в которую они интегрированы. После того, как плата и приспособление размещены в нужном положении, в тестовой системе есть механизм, позволяющий соприкасаться иглами приспособления с контрольными точками на плате для тестирования. Система, к которой он подключен или напрямую интегрирован внутри, программистом интернет-провайдера. Он должен программировать устройство или устройства, установленные на плате: например, микроконтроллер и / или последовательную память.

Микрочип ICSP [ править ]

Для большинства микроконтроллеров Microchip программирование ICSP выполняется с использованием двух выводов, часов (PGC) и данных (PGD), в то время как высокое напряжение (12 В) присутствует на выводе Vpp / MCLR. Программирование низкого напряжения (5 В или 3,3 В) обходится без высокого напряжения, но оставляет за собой исключительное использование вывода ввода / вывода. Однако для более новых микроконтроллеров, в частности семейств микроконтроллеров PIC18F6XJXX / 8XJXX, переход в режимы ICSP немного отличается. [2] Для входа в режим ICSP Program / Verify необходимо выполнить следующие три шага:

  1. Напряжение на короткое время подается на вывод MCLR (master clear).
  2. 32-битная последовательность ключей представлена ​​на PGD.
  3. Напряжение повторно подается на MCLR.
Программатор Microchip PICkit ICSP

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

  1. Параллельный порт - большой и громоздкий кабель, у большинства компьютеров только один порт, и может быть неудобно менять местами кабель программирования с подключенным принтером. Большинство ноутбуков новее 2010 года не поддерживают этот порт. Программирование параллельного порта выполняется очень быстро.
  2. Последовательный порт (COM-порт) - в свое время самый популярный метод. Последовательным портам обычно не хватает напряжения питания для программирования цепей. Большинство компьютеров и ноутбуков новее 2010 года не поддерживают этот порт.
  3. Гнездо (в цепи или вне цепи) - процессор должен быть либо удален с печатной платы, либо должен быть прикреплен зажим для доступа к микросхеме.
  4. USB-кабель - маленький и легкий, поддерживает источник напряжения, и у большинства компьютеров есть дополнительные порты. Расстояние между программируемой схемой и компьютером ограничено длиной USB-кабеля - обычно она не должна превышать 180 см. Это может создать проблемы для программирования устройств глубоко в машинах или шкафах.

Программисты ICSP имеют много преимуществ, среди которых основными особенностями являются размер, доступность компьютерного порта и источник питания. Из-за различий в схеме межсоединений и целевой цепи, окружающей микроконтроллер, нет программатора, который работал бы со всеми возможными целевыми схемами или межсоединениями. Microchip предоставляет подробное руководство по программированию ICSP [3]. Многие сайты предоставляют примеры программирования и схем.

PIC программируются с использованием пяти сигналов (шестой контакт «aux» предусмотрен, но не используется). Данные передаются по двухпроводной синхронной последовательной схеме, еще три провода обеспечивают программирование и питание микросхемы. Тактовый сигнал всегда контролируется программистом.

Типичное программирование коммуникации

Сигналы и распиновка [ править ]

Типовые соединения микросхемы
  • V pp - режим программирования напряжения. Он должен быть подключен к выводу MCLR или выводу V pp дополнительного порта ICSP, доступного на некоторых PIC с большим количеством выводов. Чтобы перевести PIC в режим программирования, эта строка должна находиться в заданном диапазоне, который варьируется от PIC до PIC. Для  PIC на 5 В это всегда немного выше V dd и может достигать 13,5 В. В PIC только на 3,3 В, таких как серии 18FJ, 24H и 33F, используется специальная подпись для входа в режим программирования, а V pp - это цифровой сигнал, который находится либо на земле, либо на Vdd. Нет ни одного напряжения V pp, которое находится в допустимом диапазоне V pp для всех PIC. Фактически, минимально необходимый V pp уровень для некоторых PIC может повредить другие PIC.
  • V dd - это положительная мощность на входе PIC. Некоторые программисты требуют, чтобы это обеспечивалось схемой (схема должна быть хотя бы частично включена), некоторые программисты рассчитывают управлять этой линией самостоятельно и требуют, чтобы схема была отключена, в то время как другие могут быть настроены в любом случае (например, Microchip ICD2) . Программисты Embed Inc ожидают, что они сами будут управлять линией V dd, и потребуют, чтобы целевая цепь была отключена во время программирования.
  • В сс - Отрицательный вход питания в ПОС и опорный ноль вольт для остальных сигналов. Напряжения других сигналов неявно относятся к V ss .
  • ICSPCLK - Линия часов последовательного интерфейса данных. Эта линия переходит от GND к V dd и всегда управляется программистом. Данные передаются на заднем фронте.
  • ICSPDAT - Последовательная линия данных. Последовательный интерфейс является двунаправленным, поэтому этой линией может управлять программист или PIC, в зависимости от текущей операции. В любом случае эта линия переключается с GND на Vdd. Бит передается на заднем фронте PGC.
  • AUX / PGM - более новые контроллеры PIC используют этот вывод для включения программирования низкого напряжения (LVP). Удерживая PGM на высоком уровне, микроконтроллер перейдет в режим LVP. Микроконтроллеры PIC поставляются с включенным LVP, поэтому, если вы используете новый чип, вы можете использовать его в режиме LVP. Единственный способ изменить режим - использовать программатор высокого напряжения. Если вы запрограммируете микроконтроллер без подключения к этому выводу, режим не изменится.

Распиновка RJ11 [ править ]

Microchip поддерживает промышленный стандарт для использования сокетов RJ11 с программатором ICSP. На иллюстрации представлена ​​информация, представленная в их технических паспортах. Однако здесь есть место для путаницы. Таблицы данных PIC показывают перевернутый разъем и не дают графического изображения выводов, поэтому неясно, на какой стороне разъема находится контакт 1. Приведенная здесь иллюстрация не проверена, но использует стандартную распиновку для телефонной отрасли (вилка / розетка RJ11 была первоначально разработана для проводных настольных телефонов).

RJ11 для программатора ICSP PIC

Ссылки [ править ]

  1. ^ Oreilly, Проектирование встраиваемых Hardware, 2 - е издание Джон Catsoulis
  2. ^ http://ww1.microchip.com/downloads/en/DeviceDoc/39644l.pdf
  3. ^ ww1.microchip.com/downloads/en/devicedoc/30277d.pdf Руководство по программированию ICSP , Microchip

См. Также [ править ]

  • Программисты устройств