- Для чего нужен разъем ISCP на плате ардуино UNO?
- Распиновка ICSP:
- ICSP для прошивки
- Icsp кабель для чего
- Arduino Uno: распиновка, схема подключения и программирование
- Видеообзор
- Подключение и настройка
- Шаг 1
- Шаг 2
- Что-то пошло не так?
- Пример работы
- Элементы платы
- Микроконтроллер ATmega328P
- Микроконтроллер ATmega16U2
- Светодиодная индикация
- Порт USB Type-B
- Разъём питания DC
- Понижающий регулятор 5V
- Понижающий регулятор 3V3
- Кнопка сброса
- ICSP-разъём ATmega328P
- ICSP-разъём ATmega16U2
- Icsp кабель для чего
- Внутрисистемное программирование
- Содержание
- История [ править ]
- Промышленное применение [ править ]
- Микрочип ICSP [ править ]
Для чего нужен разъем ISCP на плате ардуино UNO?
Описано назначение выводов ISCP на платах Arduino UNO, Nano и других подобных.
На самом деле ICSP — это просто повторение пинов 5V, GND, RESET, MISO, MOSI, SCK (в нумерации Arduino Uno это выводы 11-13). То есть на схеме платы эти выводы просто попарно соединены между собой: 11-MOSI, 12-MISO, 13-SCK.
Данные пины обычно используются для передачи данных через интерфейс SPI (Serial Peripheral Interface).
Распиновка ICSP:
В зависимости от ситуации бывает удобно пользоваться либо выводами 11-13, либо разъемом ICSP.
Я также часто использую разъем ICSP для подачи питания на ардуину (через выводы 5V, GND), поскольку остальные выводы обычно заняты чем-то ещё.
ICSP для прошивки
Кроме того, у разьема ISCP есть еще одно назначение. На самом деле это даже его основное назначение, хотя оно и редко используется в домашних условиях. Разьем ISCP используется для промышленного программирования основного микроконтроллера ATMEGA328P, т.е. через внешний программатор — в тех случаях, когда зашивать программу через USB-кабель неудобно, либо нецелесообразно. Собственно ISCP расшифровывается как in-circuit serial programming.
В домашних условиях для прошивки мы обычно используем USB . Для этого ардуина подключается к компьютеру, и какой-то дополнительный программатор не требуется (его роль играет чип CH340 либо вспомогательный МК ATMEGA16U2).
Подробнее про прошивку через ISCP читайте здесь:
Источник
Icsp кабель для чего
ICSP
Внутрисхемное программирование
PIC-контроллеров
DOC Rev 1.03
(последнее обновление 19.05.2005)
Рекомендации по ICSP:
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
Линия | Назначение |
GND (VSS) | Общий провод. |
VDD (VCC) | + напряжение питания. |
MCLR’ (VPP) | Вход сброса микроконтроллера / вход напряжения программирования. |
RB7 (DATA) | Двунаправленная шина данных в режиме программирования. |
RB6 (CLOCK) | Вход синхронизации в режиме программирования. |
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Схемное решение:
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:
Пояснение к схеме:
- Линия MCLR’ развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
- Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
- Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
- Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
ВНИМАНИЕ.
Рекомендуемая длина соединительного кабеля ICSP не более 50 см.
Наиболее частые ошибки:
- Забывают отключить цепь MCLR перемычкой от остальной схемы.
- Если вывод MCLR «подтянут» к напряжению VDD через резистор — то при малых значениях сопротивления этого резистора ток, текущий между напряжением VPP и VDD может привести к перегрузке формирователя VPP программатора и падению этого напряжения ниже допустимого.
- Если вывод MCLR замкнут на VDD без резистора — напряжение VPP окажется приложенным к VDD. В этом случае возможен даже выход из строя формирователя VPP из-за перегрузки по току.
- Если вывод MCLR подключен к схеме мониторинга напряжения питания, то VPP окажется приложенным к выходу схемы монитора питания, что также может повлечь перегрузку по току.
- Забывают развязать по току выводы RB7 и RB6 от остальной схемы.
- Если хотя бы одна из этих линий подключена к выходу логического элемента, то возникнет конфликт между выходом элемента и формирователем программатора.
- Если хотя бы на одной из этих линий имеются элементы, потребляющие значительный ток — формирователь программатора (для RB6 или RB7) или микроконтроллера (для RB7) могут не смочь обеспечить требуемый ток.
- Забывают установить перемычку (jumper), отключающий цепь VDD микроконтроллера и интерфейса ICSP от остальной схемы. В этом случае схемой по шине VDD может потребляться значительный ток, который программатор может и не обеспечить.
- Используют кабель ICSP длиной более 50 см.
Расположение выводов ICSP у PIC-контроллеров:
Внимание!
Материал только для общей справки. Обязательно убедитесь, что указанное расположение выводов соответствует выбранному вами микроконтроллеру. Для этого, обратитесь к Data Sheets и Programming Specifications на соответствующий микроконтроллер.
Пояснение: Вывод PGM рекомендуется «притягивать» к общему проводу (GND), через резистор, номиналом 1k.
Источник
Arduino Uno: распиновка, схема подключения и программирование
Arduino Uno — флагманская платформа для разработки на языке программирования С++.
Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На плате предусмотрены 20 портов входа-выхода для подключения внешних устройств, например плат расширения или датчиков.
Видеообзор
Подключение и настройка
Шаг 1
Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B).
Шаг 2
Установите и настройте интегрированную среду разработки Arduino IDE.
Что-то пошло не так?
Пример работы
В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод L , подключенный к 13 пину микроконтроллера.
После загрузки программы встроенный светодиод L начнёт мигать раз в секунду.
Это значит, всё получилось, и можно смело переходить к другим экспериментам на Ардуино.
Элементы платы
Микроконтроллер ATmega328P
Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц. Контроллер обладает тремя видами памяти:
Микроконтроллер ATmega16U2
Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UART преобразователя. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт.
Микроконтроллер ATmega328P общается с ПК через сопроцессор ATmega16U2 по интерфейсу UART используя сигналы RX и TX , которые параллельно выведены на контакты 0 и 1 платы Uno. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
ON | Индикатор питания платформы. |
L | Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается. |
RX и TX | Мигают при прошивке и обмене данными между Uno и компьютером. А также при использовании пинов 0 и 1 . |
Порт USB Type-B
Разъём USB Type-B предназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобится кабель USB (A — B).
Разъём питания DC
Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.
Понижающий регулятор 5V
Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.
Понижающий регулятор 3V3
Понижающий линейный преобразователь LP2985-33DBVR обеспечивает напряжение на пине 3V3 . Регулятор принимает входное напряжение от линии 5 вольт и выдаёт напряжение 3,3 В с максимальным выходным током 150 мА.
Кнопка сброса
Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.
ICSP-разъём ATmega328P
ICSP-разъём выполняет две полезные функции:
ICSP-разъём ATmega16U2
ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2. А подробности распиновки читайте в соответствующем разделе.
Источник
Icsp кабель для чего
Внутрисхемное программирование (англ. In-System Programming , сокр. ISP ) — это технология программирования электронных компонентов (таких как микроконтроллеры), позволяющая программировать компонент, который уже установлен в устройство. До появления этой технологии, компоненты приходилось извлекать из устройства для их перепрограммирования.
Микросхемы, имеющие возможность внутрисхемного программирования, имеет схему для коммуникации с программатором посредством последовательного интерфейса.
Программирование по ISP-интерфейсу происходит по пяти линиям связи: MOSI, MISO, SCK, RESET,GND.
Так же схемой предусмотрена возможность из обычного напряжения питания генерировать напряжения необходимые для программирования.
Для программирования большинство микросхем используют разные варианты протокола JTAG.
Рекомендации по ICSP:
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
- GND (VSS) Общий провод.
- VDD (VCC) + напряжение питания.
- MCLR’ (VPP) Вход сброса микроконтроллера / вход напряжения программирования.
- RB7 (DATA) Двунаправленная шина данных в режиме программирования.
- RB6 (CLOCK) Вход синхронизации в режиме программирования.
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Источник
Внутрисистемное программирование
Внутрисистемное программирование (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 необходимо выполнить следующие три шага:
- Напряжение на короткое время подается на вывод MCLR (master clear).
- 32-битная последовательность ключей представлена на PGD.
- Напряжение повторно подается на MCLR.
Отдельное оборудование, называемое программатором, требуется для подключения к порту ввода-вывода ПК с одной стороны и к PIC с другой стороны. Список функций для каждого основного типа программирования:
- Параллельный порт — большой и громоздкий кабель, у большинства компьютеров только один порт, и может быть неудобно менять местами кабель программирования с подключенным принтером. Большинство ноутбуков новее 2010 года не поддерживают этот порт. Программирование параллельного порта выполняется очень быстро.
- Последовательный порт (COM-порт) — в свое время самый популярный метод. Последовательным портам обычно не хватает напряжения питания для программирования цепей. Большинство компьютеров и ноутбуков новее 2010 года не поддерживают этот порт.
- Гнездо (в цепи или вне цепи) — процессор должен быть либо удален с печатной платы, либо должен быть прикреплен зажим для доступа к микросхеме.
- USB-кабель — маленький и легкий, поддерживает источник напряжения, и у большинства компьютеров есть дополнительные порты. Расстояние между программируемой схемой и компьютером ограничено длиной USB-кабеля — обычно она не должна превышать 180 см. Это может создать проблемы для программирования устройств глубоко в машинах или шкафах.
Программисты ICSP имеют много преимуществ, среди которых основными особенностями являются размер, доступность компьютерного порта и источник питания. Из-за различий в схеме межсоединений и целевой цепи, окружающей микроконтроллер, нет программатора, который работал бы со всеми возможными целевыми схемами или межсоединениями. Microchip предоставляет подробное руководство по программированию ICSP [3]. Многие сайты предоставляют примеры программирования и схем.
PIC программируются с использованием пяти сигналов (шестой контакт «aux» предусмотрен, но не используется). Данные передаются по двухпроводной синхронной последовательной схеме, еще три провода обеспечивают программирование и питание микросхемы. Тактовый сигнал всегда контролируется программистом.
Источник