2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Программировать микроконтроллеры несложно. Создание программиста - отличный первый проект в области электроники. Цель этого руководства - объяснить простой метод «последовательного программирования в схемах», используемый с микрочипами PIC.
Шаг 1. Почему ICSP?
Программировать большой DIP-чип (сквозное отверстие) очень просто. Вставьте его в программатор с сокетом, сожгите и верните в схему приложения. Протестируйте и повторите.
С меньшими микросхемами (для поверхностного монтажа) все становится сложнее. Стандартных разъемов для QFN, SSOP, QFP или даже для больших корпусов SOIC.300 нет. Есть действительно дорогие (100 долларов) клипы, которые можно прикрепить к этим чипам и запрограммировать. Для каждого типа микросхемы и количества выводов, которые вы используете, требуется свой зажим. Альтернатива есть. Это называется ICSP. ICSP означает «программатор последовательного интерфейса (ing?)». Это способ программирования PIC, пока он еще присоединен к схеме приложения. Правильно, больше никакой замены чипа. Почему ICSP? 1. Отсутствуют программные гнезда для микросхем малогабаритных корпусов. Клипсы дорогие. 2. Больно вставлять и вынимать микросхемы из программатора во время разработки. Невозможно для деталей поверхностного монтажа.
Шаг 2: Что такое ICSP?
Для программирования PIC, когда он подключен к цепи приложения, необходимо пять соединений. Я добавляю на свои печатные платы 5-контактный разъем, чтобы сделать это соединение быстрым и легким. Основы программирования PIC. Для программирования PIC требуется пять соединений. Питание, заземление, напряжение программирования, часы и данные. + (Vdd) / - (Vss) Это соединения питания и заземления (Vdd, Vss). Довольно стандартно. Если вы используете программатор с «реальными» уровнями напряжения (НЕ JDM2!), Ваше приложение может работать от собственного источника питания при программировании, исключая эти соединения. Vpp Это напряжение программирования. PIC входят в режим программирования, когда на вывод MCLR / Vpp подается ~ 13 вольт (обычно вывод 1 на современных PIC, подробнее об этом ниже). Clock / Data или PGC / PGD Линии синхронизации и данных используются для записи и чтения PIC прошивка. Обычно это те же контакты, что и у PORTB6 и PORTB7. Упражнение: Найдите точки подключения ICSP на PIC на рисунках ниже. Если PIC подходит, носите его. Я получаю много вопросов о моем дизайне JDM2 на инструкциях. Наиболее частым является "Будет ли он программировать PIC X? '"' - вот как вы можете сказать: 1) Посмотрите на лист данных. Найдите схему контактов, которая выглядит примерно так, как на картинке ниже. 2) Определите расположение контактов, которые должны быть подключены для программирования (Vpp, Vdd, Vss, Data и Clock). 3) Посмотрите на соединение разъема на программист. Можете ли вы сопоставить нужные контакты с разъемом на программаторе?
Шаг 3: Как ICSP?
В зависимости от вашего дизайна теперь вы можете выполнить все необходимые подключения и запрограммировать свой PIC. Есть несколько уловок, о которых вам следует знать. Дизайн для ICSP важен. Microchip предоставляет прекрасное примечание к приложению в формате PDF о проектировании для ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744 Вот несколько советов и примеров проектов ICSP из моих предыдущих инструкций. Совет №1, Уровень угрозы: Важно Не подключайте к ЧАСам что-либо еще и контакты DATA (обычно RB6 и RB7, PGC и PGD). Просто не делай этого. Бывают ситуации, когда очень умным инженерам это сходит с рук, но они этого не делают. Компоненты, прикрепленные к контактам, будут искажать тактовые сигналы и сигналы данных, что приведет к непредсказуемому программированию. Вдобавок, если вы когда-нибудь захотите использовать встроенный последовательный отладчик, вы не сможете. Только не делайте этого. Совет №2 Уровень угрозы: Взрывоопасно Всегда используйте диод между напряжением программирования и системным напряжением. Если вы используете MCLR (master clear) на PIC, вы должны подать некоторое напряжение на вывод MCLR через резистор 10Kish. Это также контакт, на который вы будете подавать ~ 13 вольт для входа в режим программирования. Я поставил диод 1n4148 (эквивалентный) между резистором и выводом MCLR / Vpp (как показано на схеме и рендеринге ниже). Это поддерживает напряжение программирования на выводе Vpp, предотвращая разрушение других компонентов на вашей плате. Совет № 3 Уровень угрозы: (повторно) усталость Низкое программирование напряжения сдерживает вас, чувак. Я никогда не добивался успеха с LVP. Я никогда не видел, чтобы это работало (постоянно) собственными глазами. Просто прикусите пулю и потратьте 2,50 доллара на создание программатора JDM2.
Шаг 4: Программисты ICSP
ICSP не требует другого протокола программирования. Программист на основе сокетов уже производит необходимую сигнализацию, но отправляет ее в сокет, а не по проводам. Большинство программаторов сокетов можно использовать в качестве ICSP, подключив провода от сокета к цепи приложения. Например, оригинальный программатор JDM2 (здесь: https://www.jdm.homepage.dk/newpic.htm) можно использовать для выполните программирование ICSP, поместив 5 необходимых сигналов в заголовок. Это можно увидеть в программаторе здесь: https://www.belza.cz/digital/jdm.htm. Чтобы все было под рукой, я переделал этот дизайн в Eagle Cad и прикрепил его к этому руководству. Следите за ориентацией транзистора, один из отпечатков может быть неправильным (я сделал это больше года назад, больше не помню). Точно так же мой обновленный программатор JDM2 (здесь: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) можно использовать для ICSP, вставив провода в разъемы DIP и подключив их к целевому PIC. ***** В JDM2 используются необычные напряжения… подключите его к цепи БЕЗ внешнего питания (или даже земли), подключенного к цепи приложения. Перед подачей питания отключите соединения ICSP. Невыполнение этого требования не является деструктивным, но приведет к неудачному программированию. ******* Другой вариант - (полу) правильный программатор ICD. ICD позволяет вам контролировать выполнение микропрограмм на вашем PIC, устанавливая точки останова в коде или считывая значения памяти и портов. ICD также может анимировать выполнение кода, запитать схему приложения и запрограммировать PIC. Все это происходит через то же 5-контактное соединение ICSP, которое мы обсуждали. Несколько клонов ICSP, которые вы можете сделать самостоятельно, можно увидеть здесь: https://www.icd2clone.com/wiki/Main_Page. Я построил PiCS (rev B) несколько месяцев назад, и он мне очень понравился.