Site Loader

Содержание

Программатор PICSTARTER+, аналог Picstart Plus компании Microchip для PIC-контроллеров серий PIC12, PIC16, PIC17, PIC18

Программатор PICSTARTER+, аналог Picstart Plus компании Microchip для PIC-контроллеров серий PIC12, PIC16, PIC17, PIC18

  • Полный схемотехнический аналог фирменного программатора PICSTART Plus компании Microchip.
  • Поддерживается Интегрированной Средой Разработки MPLAB как PICSTART Plus.

Совместно с MPLAB v5.62 и firmware (прошивкой) v3.00, программатор поддерживает полную линейку PIC-контроллеров:

PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC14000, PIC16C505, PIC16C52, PIC16C54, PIC16C54A, PIC16C54B, PIC16C54C, PIC16HV540, PIC16C55, PIC16C55A, PIC16C554, PIC16C558, PIC16C56, PIC16C56A, PIC16C57, PIC16C57C, PIC16C58A, PIC16C58B, PIC16C61, PIC16C62, PIC16C62A, PIC16C62B, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16C63, PIC16C63A, PIC16C64, PIC16C64A, PIC16C642, PIC16C65, PIC16C65A, PIC16C65B, PIC16C66, PIC16C662, PIC16C67, PIC16C71, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C72, PIC16F72, PIC16C72A, PIC16C73, PIC16F73, PIC16C73A, PIC16C73B, PIC16C74, PIC16F74, PIC16C74A, PIC16C74B, PIC16C745, PIC16C76, PIC16F76, PIC16C765, PIC16C77, PIC16F77, PIC16C770, PIC16C771, PIC16C773, PIC16C774, PIC16C781, PIC16C782, PIC16F83, PIC16C84, PIC16F84, PIC16F84A, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F874, PIC16F876, PIC16F877, PIC16C923, PIC16C924, PIC16C925, PIC16C926, PIC17C42, PIC17C42A, PIC17C43, PIC17C44, PIC17C752, PIC17C756, PIC17C756A, PIC17C762, PIC17C766, PIC18C242, PIC18F242, PIC18F248, PIC18C252, PIC18F252, PIC18F258, PIC18C442, PIC18F442, PIC18F448, PIC18C452, PIC18F452, PIC18F458, PIC18C658*, PIC18C858*, rf509AF**, rf509AG**.


Особенности программатора PICSTARTER+:
  • Улучшенный схемотехнический аналог фирменного программатора Picstart Plus компании Microchip.
  • Программатор подключется к COM-порту компьютера (RS232) и поддерживается Интегрированной Средой Разработки MPLAB IDE как программатор Picstart Plus.
  • Поддержка новых PIC-контроллеров появляется в составе Интегрированной Среды Разработки MPLAB IDE задолго до того, как сами микроконтроллеры становятся доступны.

Это позволяет разработчику избегать наиболее неприятных ситуаций, связанных с задержкой ввода поддержки новых микроконтроллеров в программаторы «третьих» фирм. Исключается обычная ситуация, когда образцы кристаллов уже доступны, а разработчик не имеет возможности их использовать из-за отсутствия поддержки в используемом программаторе. Попытки же «подтолкнуть» разработчиков «третьих» фирм к скорейшему вводу поддержки в их программатор как правило не приводят к должному эффекту. Отчасти это объясняется и наличием временнОго зазора. Ведь в то время, когда соответствующее подразделение компании Microchip уже работает над вводом поддержки в свои программаторы используя пилотные «альфа» образцы кристаллов — разработчики «третьих» фирм возможно даже ещё и не слышали об этих кристаллах. Отчасти нерасторопность может объясняться ещё и материальной незаинтересованностью разработчиков оперативно «отодвигать в сторону» текущие разработки и срочно (читать внепланово, аврально) вводить поддержку в уже проданные программаторы.

  • Сертифицированные производителем алгоритмы программирования кристаллов.

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

  • Свежая версия программы поддержки MPLAB IDE БЕСПЛАТНО доступна на http://www.microchip.com
  • Полная схемотехническая копия фирменного Picstart Plus.

А следовательно, полная совместимость с фирменной прошивкой (firmware) микроконтроллера PIC17C44, управляющего программатором PICSTART Plus (возможность upgrade при разработке новых PIC). Прошивка (firmware) доступна в составе программы MPLAB IDE.

  • Внутрисхемное программирование микроконтроллеров ( ICSP ).

Внутрисхемное программирование кристаллов может быть выполнено с использованием простых переходников, изготавливаемых самостоятельно и устанавливаемых в единую универсальную 40pin DIP ZIF панель программатора.

  • В готовом устройстве применяется высококачественная универсальная 40pin DIP ZIF панель фирмы ARIES.

 



Как программировать PIC микроконтроллеры или Простой JDM программатор. Простой JDM программатор для PIC микроконтроллеров — Программаторы микроконтроллеров

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа — «прошивка», а также программатор.

И если с первым пунктом нет проблем — готовую «прошивку» обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является «облегчённой» копией фирменного PICkit2, то автор назвал свою разработку

PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор — это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен «подтягивающий» резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось «допиливать» программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP .

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
Микроконтроллер DD1 8-ми битный микроконтроллер PIC18F2550-I/SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1N4148
Диод Шоттки VD2 1N5817
Светодиоды HL1, HL2 любой на 3 вольта, красного и зелёного цвета свечения
Резисторы R1, R2 300 Ом
R3 22 кОм
R4 1 кОм
R5, R6, R12 10 кОм
R7, R8, R14 100 Ом
R9, R10, R15, R16 4,7 кОм
R11 2,7 кОм
R13 100 кОм
Конденсаторы C2 0,1 мк К10-17 (керамические), импортные аналоги
C3 0,47 мк
Электролитические конденсаторы C1 100 мкф * 6,3 в К50-6, импортные аналоги
C4 47 мкф * 16 в
Катушка индуктивности (дроссель) L1 680 мкГн унифицированный типа EC24, CECL или самодельный
Кварцевый резонатор ZQ1 20 МГц
USB-розетка XS1 типа USB-BF
Перемычка XT1 любая типа «джампер»
Для панели установки микроконтроллеров (МК)
ZIF-панель XS1 любая 40-ка контактная ZIF-панель
Резисторы R1 2 кОм МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа «B» (квадратная). В компьютере же используется USB-розетка типа «А». Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 — 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 — это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force — с нулевым усилием установки).

Благодаря ей можно «зашить» МК практически в любом корпусе DIP.

На схеме «Панель установки микроконтроллера (МК)» указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или «карандашным» методом .

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

«Прошивка» микроконтроллера PIC18F2550.

Файл «прошивки» — PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .

Залить «прошивку» в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex — «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .

Ну, а если разрешить проблему «курицы и яйца» не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .

Обновление «прошивки» программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться — чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить «прошивку».

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню «Tools» — «Download PICkit 2 Operation System» открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню «Help» — «About» в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы — PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод («питание»), а операционная система опознает устройство как «PICkit2 Microcontroller Programmer» и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции «Что делать?» на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .

Необходимые файлы:

Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.

Программа — программатор ProgCode v 1.0

Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1.

В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).

Рисунок (скриншот программы ProgCode v1.0)

Если в программу загружается HEX файл, то желательно перед этим выбрать в списке контроллеров тот МК, для которого расчитана загружаемая прошивка. Если этого не сделать, то файл, расчитанный на микроконтроллер с памятью большего размера чем выбран в списке, будет обрезан и части программы потеряна — при таком варианте загрузки файла выводится предупреждение.

Если этого не произошло, то выбрать нужный контроллер можно и после загрузки файла в программу.

Формат файлов SFR
В программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение.SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.
Настройки порта и протокола при подключении программатора
После установки программы — по умолчанию выставлены все настройки, которые необходимы для работы программатора со схемой JDM, приведённой на этой странице.
Инверсия сигнала в приведённой схеме нужна только для выхода OutData, так как в этой цепи сигнал инвертирован согласующим транзистором. На всех остальных выводах инверсия отключена.

Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»

Рисунок — Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.

Обозреватель локальных проектов

Кроме непосредственно программирования контроллеров в программе реализован удобный обозреватель проектов на МК, находящихся как на локальных папках компьютера, так и в интернете. Сделано это для удобства работы. Нередко нужные проекты лежат в разных папках, и приходится тратить время на то, чтобы добраться до нужной дирректории, чтобы просмотреть проект. Здесь нужные папки легко добавить в список папок и просматривать любой проект двумя-тремя кликами мышки.

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)

Вот так выглядит окно с настройками ассоциаций файлов:

Обозреватель проектов в интернете

Обозреватель проектов в интернете так-же как и локальный обозрватель проектов позволяет быстро перейти на нужный сайт в интернете парой кликов, просмотреть проект и при необходимости сразу прошить программу в МК.



При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:


Описание процесса программирования микросхем

Большинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.

Рассмотрим запись информации во флэш память микроконтроллера PIC 16 F 628 A

Есть 2 линии DATA и CLOCK , по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.

Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA ) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK ).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC 16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд

«LoadConfiguration » 000000 — Загрузка конфигурации

«LoadDataForDataMemory » — 000011 — Загрузка данных в память данных(EEPROM )
«IncrementAddress » 000110 — Увеличение адреса PC МК
«ReadDataFromProgramMemory » 000100 — Чтение данных из памяти программ
«ReadDataFromDataMemory » 000101 — Чтение данных из памяти данных(EEPROM )
«BeginProgrammingOnlyCycle » 011000 — Начать цикл программирования
«BulkEraseProgramMemory » 001001 — Полное стирание памяти программ
«BulkEraseDataMemory » 001011 — Полное стирание памяти данных(EEPROM )

Реагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды

«LoadDataForProgramMemory » 000010 — Загрузка данных в память программ

необходимо отправить в контроллер сами данные — 16 бит,
которые выглядят так:

“0xxxxxxxxxxxxxx 0”.

Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC 16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда

«BeginEraseProgrammingCycle» 001000 — Начать цикл программирования

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

Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.


Схема JDM программатора

Очень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)


Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.

Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

Поключение выходов программатора к конкретному МК зависит от типа МК. Часто на плату программатора монтируют несколько панелек, которые расчитаны на определённый тип контроллеров.

В таблице приведено назначение ножек некоторых типов МК при программировании.

Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.



Назначение выводов для микроконтроллеров серии PIC16Fxxx в зависимости от типа корпуса в большинстве случаев является стандартным, но если возникает сомнения на этот счёт, то надёжнее всего свериться с даташитом на конкретный экземпляр МК. Часть документации присутствует на русском сайте http://microchip.ru Полное же собрание даташитов и другой документации находится на сайте производителя PIC микроконтроллеров: http://microchip.com

Индекс проектов

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

При необходимости прошить контроллер выбранной прошивкой — кликаем мышкой на файл формата SFR, к примеру Timer_a.sfr
Программа загружает файл с сервера в новую вкладку.

После этого остаётся только вставить МК в панельку программатора, если это ещё не сделано, и нажать на кнопку «Записать всё».
Программа записывается в МК. После этого контроллер вставляется в плату устройства и устройство готово к работе.

Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com.

В схеме данного программатора используется преобразователь логических уровней max232.

Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя.

Так и сделал. Взял микросхему Ch440G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось.

В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно).

После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе — ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же — всё шьёт, но очень медленно.

Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (Ch440 — 0.3-0.5$ , к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков — это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами.

Вот фото готового девайса:

Как поётся в песне «я его слепила из того, что было». Набор деталей самый разнообразный: и smd, и DIP.

Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.

Список радиоэлементов
Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 Микросхема Ch440G 1 В блокнот
IC2 Микросхема К1533ЛА3 1 В блокнот
VR1 Линейный регулятор

LM7812

1 В блокнот
VR2 Линейный регулятор

LM7805

1 В блокнот
VT1 Биполярный транзистор

КТ502Е

1 В блокнот
VT2 Биполярный транзистор

КТ3102Е

1 В блокнот
VD1-VD3 Выпрямительный диод

1N4148

2 В блокнот
C1, C2, C5-C7 Конденсатор 100 нФ 5 В блокнот
C3, C4 Конденсатор 22 пФ 2 В блокнот
HL1-HL4 Светодиод Любой 4 В блокнот
R1, R3, R4 Резистор

1 кОм

3

В качестве элементарного программатора предлагаем вам собрать по авторской схеме JDM совместимый программатор, который мы назвали NTV программатор. Ниже схема NTV программатора (используется розетка DB9; не путать с вилкой).

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

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

Конструктивно плата программатора вставляется между контактами разъема DB-9, которые подпаиваются к контактным площадкам печатной платы. Ниже рисунок платы и фотография собранного программатора.



Для полноты информации следует сказать, что есть еще один подобный программатор, который я собирал под микроконтроллеры в 8 выводном корпусе ( и ). Программатор также великолепно работает и с этими микроконроллерами. Ниже рисунок платы и фотографии.

Рассказать в:
Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.
Программа — программатор ProgCode v 1.0Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1. В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).

Рисунок (скриншот программы ProgCode v1.0)

Если в программу загружается HEX файл, то желательно перед этим выбрать в списке контроллеров тот МК, для которого расчитана загружаемая прошивка. Если этого не сделать, то файл, расчитанный на микроконтроллер с памятью большего размера чем выбран в списке, будет обрезан и части программы потеряна — при таком варианте загрузки файла выводится предупреждение.

Если этого не произошло, то выбрать нужный контроллер можно и после загрузки файла в программу.

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

Настройки порта и протокола при подключении программатораПосле установки программы — по умолчанию выставлены все настройки, которые необходимы для работы программатора со схемой JDM, приведённой на этой странице.
Инверсия сигнала в приведённой схеме нужна только для выхода OutData, так как в этой цепи сигнал инвертирован согласующим транзистором. На всех остальных выводах инверсия отключена.

Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»

Рисунок — Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.

Обозреватель локальных проектовКроме непосредственно программирования контроллеров в программе реализован удобный обозреватель проектов на МК, находящихся как на локальных папках компьютера, так и в интернете. Сделано это для удобства работы. Нередко нужные проекты лежат в разных папках, и приходится тратить время на то, чтобы добраться до нужной дирректории, чтобы просмотреть проект. Здесь нужные папки легко добавить в список папок и просматривать любой проект двумя-тремя кликами мышки.

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)

Вот так выглядит окно с настройками ассоциаций файлов:

Обозреватель проектов в интернетеОбозреватель проектов в интернете так-же как и локальный обозрватель проектов позволяет быстро перейти на нужный сайт в интернете парой кликов, просмотреть проект и при необходимости сразу прошить программу в МК.


При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:

Описание процесса программирования микросхемБольшинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.Рассмотрим запись информации во флэш память микроконтроллера PIC16F628AЕсть 2 линии DATA и CLOCK, по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.
Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд»LoadConfiguration» 000000 — Загрузка конфигурации
«LoadDataForProgramMemory» 000010 — Загрузка данных в память программ
«LoadDataForDataMemory» — 000011 — Загрузка данных в память данных(EEPROM)
«IncrementAddress» 000110 — Увеличение адреса PC МК
«ReadDataFromProgramMemory» 000100 — Чтение данных из памяти программ
«ReadDataFromDataMemory» 000101 — Чтение данных из памяти данных(EEPROM)
«BeginProgrammingOnlyCycle» 011000 — Начать цикл программирования
«BulkEraseProgramMemory» 001001 — Полное стирание памяти программ
«BulkEraseDataMemory» 001011 — Полное стирание памяти данных(EEPROM)
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияРеагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды»LoadDataForProgramMemory» 000010 — Загрузка данных в память программнеобходимо отправить в контроллер сами данные — 16 бит,
которые выглядят так: “0xxxxxxxxxxxxxx0”.Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияПолучив её, контроллер отключается от внешнего мира на 6 миллисекунд, которые нужны ему, чтобы завершить процесс записи.Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.
Схема JDM программатораОчень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)


Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

Поключение выходов программатора к конкретному МК зависит от типа МК. Часто на плату программатора монтируют несколько панелек, которые расчитаны на определённый тип контроллеров.

В таблице приведено назначение ножек некоторых типов МК при программировании.

приведены рисунки с назначением выводов наиболее распространнённых МК при программировании.Цоколёвка (распиновка) микроконтроллеров PIC16F876A, PIC16F873A в корпусе DIP28.

Цоколёвка (распиновка) микроконтроллеров PIC16F874A, PIC16F877A в корпусе DIP40.
Цоколёвка (распиновка) микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A в корпусе DIP18.
Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.

Назначение выводов для микроконтроллеров серии PIC16Fxxx в зависимости от типа корпуса в большинстве случаев является стандартным, но если возникает сомнения на этот счёт, то надёжнее всего свериться с даташитом на конкретный экземпляр МК. Часть документации присутствует на русском сайте http://microchip.ru Полное же собрание даташитов и другой документации находится на сайте производителя PIC микроконтроллеров: http://microchip.com
Индекс проектовПрограмма позволяет напрямую выходить на страницу индекса, парой кликов просматривать описание нужного проекта и сразу-же прошивать программу в контроллер.

При необходимости прошить контроллер выбранной прошивкой — кликаем мышкой на файл формата SFR, к примеру Timer_a.sfr
Программа загружает файл с сервера в новую вкладку.

После этого остаётся только вставить МК в панельку программатора, если это ещё не сделано, и нажать на кнопку «Записать всё».
Программа записывается в МК. После этого контроллер вставляется в плату устройства и устройство готово к работе.

Скачать программу можно на странице загрузки файлов:http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Раздел:

Программатор для PIC или про то как мне захотелось самодельных электронных часов

Старым стал наверное, стал испытывать проблемы, при попытке разглядеть, сколько там времени на дисплее ресивера за тюлевой занавеской.
Хотелось что либо сколхозить.
А так как на столе, уже около года, валялись пара сегментных дисплейчика, была выбрана схема на PIC (простейшая, с возможностью регулировки хода)
А для программирования PIC требовался как раз программатор
Чтоб узнать что из этого получилось, добро пожаловать под кат

В выбранной мной схеме часы собирались на основе PIC16F628A
В списке поддерживаемых программатором микроконтроллеров — был указан и мой
Это и повлияло на выбор

Список поддерживаемых микроконтроллеров

10 Серия:
PIC10F200 * PIC10F202 * PIC10F204 * PIC10F206 *
PIC10F220 * PIC10F222 *
12C серии:
PIC12C508 PIC12C508A PIC12C509 PIC12C509A
PIC12C671 PIC12C672 PIC12CE518 PIC12CE519
PIC12CE673 PIC12CE674
12F серии:
PIC12F509 PIC12F629 PIC12F635
PIC12F675 PIC12F683
16C серии:
PIC16C505 PIC16C554 PIC16C558 PIC16C61
PIC16C62 PIC16C62A PIC16C62B PIC16C63
PIC16C63A PIC 16C64 PIC16C64A PIC16C65
PIC16C65A PIC16C65B PIC16C66 PIC16C66A
PIC16C67 PIC16C620 PIC16C620A PIC16C621
PIC16C621A PIC16C622 PIC16C622A PIC16C71
PIC16C71A PIC16C72 PIC16C72A PIC16C73
PIC16C73A PIC16C73B PIC16C74 PIC16C74A
PIC16C74B PIC16C76 PIC16C77 PIC16C710
PIC16C711 PIC16C712 PIC16C716 PIC16C745
PIC16C765 PIC16C773 PIC16C774 PIC16C83
PIC16C84
16F серии:
PIC16F505 PIC16F506 PIC16F54 PIC16F57 *
PIC16F59 * PIC16F627 PIC16LF627A PIC16F627A
PIC16F628 PIC16LF628A PIC16F628A PIC16F630
PIC16F631 PIC16F631-1 PIC16F636 PIC16F636-1
PIC16F639 * PIC16F639-1 * PIC16F648A PIC16F676
PIC16F677 PIC16F677-1 PIC16F684 PIC16F685 *
PIC16F685-1 * PIC16F687 * PIC16F687 *-1 PIC16F688
PIC16F689 * PIC16F689-1 * PIC16F690 * PIC16F690-1 *

PIC16F72 PIC16F73 PIC16F74
PIC16F76 PIC16F77 PIC16F737 PIC16F747
PIC16F767 PIC16F777 PIC16F83 PIC16F84
PIC16F84A PIC16F87 PIC16F88 PIC16F818
PIC16F819 PIC16F870 PIC16F871 PIC16F872
PIC16F873 PIC16F873A PIC16LF873A PIC16F874
PIC16F874A PIC16F876 PIC16F876A PIC16F877
PIC16F877A
18 Серия:
PIC18F242 PIC18F248 PIC18F252 PIC18F258 PIC18F442 PIC18F448
PIC18F452 PIC18F458 PIC18F1220 PIC18F1320 PIC18F2220 PIC18F2320
PIC18F2321 PIC18F4210 PIC18F2331 PIC18F2450 PIC18F2455 PIC18F2480
PIC18F2510 PIC18F2515 PIC18F2520 PIC18F2550 PIC18F2580
PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320
PIC18F6525 PIC18F6621 PIC18F8525 PIC18F8621 PIC18F2331 PIC18F2431
PIC18F4331 PIC18F4431 PIC18F2455 PIC18F2550 PIC18F4455 PIC18F4580 PIC18F2580 PIC18F2420 PIC18F2520 PIC18F2620 PIC18F6520 PIC18F6620 PIC18F6720 PIC18F6585 PIC18F6680 PIC18F8585 PIC18F8680


Заказ был сделан 19.08.2016, а уже 15.09.2016 был у меня
Фотографии упаковки не сохранилось, но комплектация соответствовала фото продавца, всё упаковано в отдельные пакетики, пакетики в общем большем пакете, а тот в свою очередь в почтовый жёлтый пакет с пупыркой

Внешний вид платы программатора — спаяно аккуратно, но плата не отмыта от слова СОВСЕМ

Но, плата оказалась вполне рабочей
Для работы с ним потребуется программа и драйвера, скачать их можно например тут
Программа интуитивно понятная, выбираем микроконтроллер, указываем путь к файлу прошивки, прошиваем
Как установить микроконтроллер в разъёме программатора — программа подскажет
Мой необходимо было установить первой ногой во второй контакт
Обычно я жму считать чип, чтоб убедиться, что программа видит микроконтроллер, потом заливаю прошивку

В общем-то программатор вполне работоспособный и прошить мой PIC мне удалось
Фузы я не выставлял — заводские, по умолчанию, — вполне прокатили

Короче, плата программатора грязная, элементы впаяны нормально, комплектация точно как указана продавцом и представлена на его странице на картинках, упаковано нормально, доставлено относительно оперативно
Минус за грязь
Скорее всего рекомендую к покупке, чем нет

Теперь о том для чего я всё это затеял

Самодельные часы

Проект взят отсюда

Схема:

Там-же описание, прошивка, рисунок платы

Попытка найти подходящий корпус привела к товарищу, у которого завалялся корпус, в виде домика
Под него была нарисована односторонняя плата

И получились часики:




В качестве питания — зарядка от мобилки
Часы показывают попеременно время и температуру, уличный датчик — не задействовал
Так-же были изготовлены ещё одни маленькие под самодельный корпус:

плата

Конструкция — простейшая, минимум деталей, запускаются без каких либо танцев с бубном
Но, если честно, мне они не понравились, т.к. с этой прошивкой они работают только если не вносить коррекции времени
Как только вносишь коррекцию — часы виснут, и помогает только передёргивание питания
По этому захотелось чего ни будь большего
Так что ПРОДОЛЖЕНИЕ СЛЕДУЕТ…

Доработка PonyProg2000 для программирования PIC-контроллеров PIC16F676хх

Эта статья предназначена, в первую очередь, для специалистов и радиолюбителей, в арсенале которых имеется одна из версий весьма распространенного программатора PonyProg 2000. Автор дает описание простого дополнительного адаптера для этого программатора, позволяющего расширить его возможности при минимальных материальных затратах. Кроме того, в статье приведены методики установки и настройки бесплатного программного обеспечения (ПО) программаторов IC-Prog и WinPic800 для работы с программатором PonyProg.

Программатор PonyProg2000 разных модификаций — это один из самых распространенных программаторов, используемых радиолюбителями и профессионалами. Он является программатором устройств с последовательным доступом (Serial Device Programmer) типа JDM. Интересно, что аббревиатура JDM — это сокращение имени и фамилии изобретателя одного из первых удачных подобных программаторов, датчанина Jens Dyekjar Madsen (см. [1]).

Программатор PonyProg2000 ([2]) разработан итальянцем Клаудио Ланконелли (Claudio Lanconelli). Он состоит из аппаратной и программной частей. Описание PonyProg2000 было опубликовано в нашем журнале ранее (см. [3, 4]).

С помощью этого программатора можно считывать и программировать как различные микросхемы памяти, так и микроконтроллеры AVR и PIC, но, по мнению автора, PonyProg2000 «заточен» больше под микроконтроллеры AVR,чем под PIC. Некоторые производители разрабатывают и изготавливают варианты программатора PonyProg с более широкими возможностями, чем заложены в аппаратный контроллер от Claudio Lanconelli. Например, программатор PonyProg2000 от [5] имеет адаптеры с более разнообразными панельками (см. рис. 3 в [4]). Автор имеет именно такой PonyProg, но и этот программатор не работает с 14-выводными микроконтроллерами PIC. Таких микроконтроллеров несколько: PIC16F630, PIC16F676, PIC16F684 и PIC16F688.

Совсем недавно у автора возникла необходимость запрограммировать («прошить») PIC16F676. Приобретать дорогостоящий новый программатор для разовой работы не хотелось. Поэтому было решено расширить возможности имеющегося в наличии PonyProg, дополнив его адаптером с 14-выводной DIP-панелькой.

Из технического описания микроконтроллера PIC16F676 (см. [6]) следует, что при работе с программатором используются всего пять выводов этой микросхемы: 1 — напряжение питания 5 В; 14 — корпус; 12 — вход тактовых импульсов; 13 — вход/выход данных; 4 — вход напряжения программирования +13 В. Наиболее распространенный МК типа PIC16F84 в корпусе DIP-18 имеет аналогичные выводы: 14 — напряжение питания 5 В; 5 — корпус; 12 — вход тактовых импульсов; 13 — вход/выход данных; 4 — вход напряжения программирования + 13 В. Схема адаптера, позволяющего работать с PIC16F84, показана в [4] на рис. 16.

В принципе, для разового программирования микроконтроллера PIC16F676 можно было подпаять панельку DIP-14 проводами на этот «штатный» PIC-адаптер, соединив пять выводов этой панельки с соответствующими выводами 18-выводной панельки U9 адаптера. Автор решил сделать отдельный адаптер для программирования 14-выводных PIC-контроллеров, используя информацию, изложенную выше. Схема такого адаптера приведена на рис. 1.

Рис. 1. Принципиальная схема адаптера микроконтроллеров PIC16F630/676/684/688 для PonyProg 2000

 

Следует отметить, что разъемы подключения адаптеров к базовым платам для разных версий программаторов PonyProg имеют отличия. На схеме рис. 1 обозначены номера выводов как классического разъема PonyProg от Claudio Lanconelli, так и разъема программатора от [5], которым пользуется автор статьи. Адаптер микроконтроллеров PIC16F630/676/684/688 для такого программатора собран на односторонней печатной плате размером 43×38 мм. Внешний вид этого адаптера показан на рис. 2, а комплект, состоящий из базовой платы PonyProg от FLYCONT, ИБП и самодельного адаптера микроконтроллеров PIC16F630/676/684/688 — на рис. 3.

Рис. 2. Адаптер микроконтроллеров PIC16F630/676/684/688 для PonyProg от FLYCONT

 

Рис. 3. Базовая плата PonyProg от FLYCONT, ИБП и адаптер микроконтроллеров PIC16F630/676/684/688 для PonyProg 2000

 

Для читателей, желающих самостоятельно изготовить адаптер для PIC16F630/676/684/688, чертежи его печатных плат в формате программы-редактора Sprint Layout 5 можно скачать с [7].

Адаптер для микроконтроллеров PIC16F630/676/684/688 можно упростить, если напряжение, поступающее на вывод 7 (7, 17) адаптера от БП через базовую плату, превышает 13 В. В этом случае нет необходимости в подключении батарейки 9 В (типа «Крона»), а значит можно не ставить разъем J2 и разъем переключаемой перемычки JP1 и запаять проволочную перемычку вместо JP1 для подачи напряжения программирования VPP на эмиттер ключа Q1 (см. схему рис. 1).

Изготовление адаптера PIC16F630/676/684/688 — это только часть работы. Дело в том, что программное обеспечение PonyProg не позволяет работать ни с одним из 14-выводных МК. Зато бесплатное ПО IC-Prog 1.6B и некоторые более ранние версии этой программы прекрасно работают с различными программаторами JDM, включая аппаратный контроллер PonyProg, и могут читать и программировать микроконтроллеры PIC16F630 и PIC16F676. Существует еще одно бесплатное ПО — WinPic800, его последняя версия V3.64 позволяет читать и программировать память всех четырех микроконтроллеров PIC16F630/676/684/688.

Скачать программу IC-Prog 1.6B можно с сайта разработчика [8] по ссылке [9]. Там же можно найти несколько более ранних версий этой программы. Если на вашем ПК используется операционная система (ОС) Windows NT/2000/XP, то нужно скачать и специальный драйвер по ссылке [10]. Для ОС Windows 95/98/SE/ME необходимости в установке драйвера нет.

Желательно также скачать русскоязычный файл помощи по ссылке [11].

Установить программу IC-Prog 1.6B достаточно просто. Для этого в любом удобном месте на жестком диске ПК необходимо создать папку с любым названием, в которую нужно распаковать архив icprog106B.zip. В этом архиве всего один файл icprog.exe. В эту же папку надо поместить файл помощи icprog.chm из архива icprogh_rus.zip. Если ПК работает под управлением Windows NT/2000/XP, то в эту же папку устанавливают драйвер icprog.sys. Для удобства запуска программы IC-Prog можно создать ярлык для icprog.exe и поместить его на рабочем столе. Программа установлена, осталось только ее настроить. Рассмотрим порядок настройки IC-Prog для Windows XP:

1. Правой кнопкой мыши щелкают по значку файла icprog.exe. В открывшемся окне выбирают пункт «Свойства», а затем выбирают вкладку «Совместимость» и устанавливают галочку в начале строки «Запустить программу в режиме совместимости с:». В активировавшемся окне выбирают «Windows 2000».

2. Запускают файл icprog.exe и в открывшемся англоязычном окне программы выбирают меню «Settings», затем — строку «Options» и в открывшемся окне — вкладку «Language», где устанавливают язык («Russian») и щелкают кнопку «Ok». После чего программа выдаст запрос на перезагрузку («You need to restart IC-Prog now»), с которым необходимо согласиться, нажав «Ok». Программа пере-загрузится и вновь открывшееся окно будет уже русскоязычным.

3. Открывают меню «Настройки», в котором выбирают строку «Опции», а затем вкладку «Программирование» (см. рис. 4), устанавливают галочку в строке «Проверка при программировании» и нажимают «Ok».

Рис. 4. Вкладка «Программирование» программы IC-Prog

 

4. Открывают меню «Настройки», в котором выбирают строку «Программатор». Откроется окно «Настройки Программатора» (рис. 5), в котором выбирают «JDM Programmer», порт, к которому подключен программатор, «Прямой доступ к портам», а в поле «Параметры сигналов» ставят галочку в строке «Инверсия Данных Вывода». Остальные строки не должны быть активированы (см. рис. 5).

Рис. 5. Окно «Настройки Программатора» программы IC-Prog

 

5. Для активации драйвера необходимо в меню «Настройки» выбрать строку «Опции», а затем вкладку «Общие», установить «галочку» на пункте «Вкл. NT/2000/XP драйвер» и нажать «Ok». Если драйвер ранее не был активирован, то откроется окно «Confirm», в котором следует нажать «Ok». После этого программа перезапустится, и драйвер будет активирован.

При использовании более ранних версий операционной системы Windows пункт 1 из приведенного перечня выполнять нет необходимости, а при использовании Windows 95/98/SE/ME не нужно выполнять и пункт 5.

Программа IC-Prog установлена, настроена и готова к работе.

Последняя и несколько предыдущих версий ПО программатора WinPic800 представлены на сайте [12], но, к сожалению, скачать ПО с этого сайта не всегда удается. В этом случае программу WinPic800 v 3.64 можно разыскать через какую-либо поисковую машину (например, Google) или скачать с сайта нашего журнала (см. ниже).

Скачанный архив WinPic800.zip содержит дистрибутив WinPic800_v3_64.exe, который можно запустить прямо из архива.

Запускают дистрибутив, в открывшемся окне установщика появится окно инсталляции с одним пунктом «Выбор языка установки» («Choose a setup language»), в котором выбирают русский язык («Russian») и щелкают мышкой по кнопке «Далее» («Next»). Далее надо установить программу, следуя подсказкам установщика. По умолчанию программа устанавливается в папку C:Program FilesWinPic800. После установки следует запустить файл WinPic800.exe из этой папки. При этом, как правило, открывается русскоязычное окно программатора WinPic800 v3.64. Если же откроется англоязычное окно WinPic800 v3.64, то любой другой язык можно выбрать через меню «Language». При выборе русского языка может возникнуть проблема. Дело в том, что в большинстве случаев (но не всегда) ряд надписей кириллицей в этой программе будет отображаться нечитаемыми символами (см. рис. 6 и рис. 7).

Рис. 6. Нечитаемые символы в главном окне программы WinPic800

 

Рис. 7. Нечитаемые символы в окне «Чтение» программы WinPic800

 

Причиной этого является неудачный выбор кириллических шрифтов и кодовых страниц. Самый простой способ решения этой проблемы — использовать англоязычную версию программы. Автор русификации и украинизации этой программы Сергей Рюмик в статье [13] рекомендует бороться с этой проблемой изменением кодовых страниц. Выполняют это следующим образом:

1. Запускают редактор реестра: C:Windows egedit.exe.

2. Открывают в реестре папку HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlNls CodePage.

3. Перезаписывают значения трех кодовых страниц 1250, 1251, 1252 как «c_1251.nls» в соответствии с рис. 8.

4. Перезагружают компьютер, запускают WinPic800 и в меню «Language» выбирают русский язык («Russian»). Программа должна воспроизводить кириллицу без проблем.

Рис. 8. Окно редактора реестра regedit.exe с открытой папкой кодовых страниц (CodePage)

 

Этот метод универсальный и подходит для всех версий программы WinPic800. Правда, автор статьи [13] утверждает, что он срабатывает в полной мере не на всех ОС и компьютерах. Если проблемы с отображением кириллицы не устранились, или вы опасаетесь по какой-либо причине переписывать реестр, то нужно использовать программы-русификаторы (специальные патчи, заплаты). Такую заплату для WinPic800 версии 3.61 от Сергея Рюмика можно скачать по ссылке [14]. Этот русификатор нежелательно использовать для более поздних версий этой программы. По просьбе постоянных участников форума [15] Владимир Ачи-лов (aka shaman) в конце 2009 г создал программу-русификатор для WinPic800 v3.64. Архив русификатора содержит файл WinPic800.exe и папку Languages, в которой находится всего один файл Russian.ini. Этими файлами надо заменить соответствующие файлы ранее установленной программы WinPic800 версии 3.64. С разрешения В. Ачилова мы разместили архив с разработанной им версией русификатора на сайте нашего журнала [16]. В этот же архив, для удобства наших читателей, мы вложили дистрибутив WinPic800_v3_64.exe.

Теперь мы готовы на 100% «прошить» микроконтроллер PIC16F676. Для этого в панельку изготовленного нами адаптера надо вставить PIC16F676 и подключить адаптер к базовой плате, а базовую плату — к ПК. Затем следует подать на программатор напряжение питания и запустить одну из рассмотренных выше программ. Для примера, запустим IC-Prog 1.6B. При этом откроется главное окно программы (рис. 9).

Рис. 9. Главное окно программы IC-Prog 1.6B

 

В окошке справа вверху этого окна следует выбрать тип программируемого контроллера (PIC16F676), а затем через меню «Файл» открыть HEX-файл программы, которую надо «записать» в контроллер. И наконец, в меню «Комманды» (именно так, с двумя «м», названо это меню) выбрать строку «Программировать Все» или нажать кнопку F5 клавиатуры. Программатор запросит согласие на запись, которое следует подтвердить. Далее программатор проверяет память МК, считывает биты калибровки и выводит окно «OSCAL». В этом окне сообщается значение битов калибровки генератора (в моем случае OSCAL = 3428h). В этом же окне программатор запрашивает: «Вы настаиваете на использовании Установок из файла (3FFFh)?». Если в устройстве будет использоваться внутренний генератор микроконтроллера, необходимо обязательно ответить «Нет», иначе биты калибровки вместе с командой их установки будут затерты, и записанная программа не будет запускаться. После программирования микроконтроллера произойдет верификация(сверка памяти МК с буфером программатора) и выйдет информационное окно с сообщением: «Успешно проверено!».

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

В заключение необходимо отметить, что программы IC-Prog 1.6B и WinPic800 v3.64 поддерживают не только МК PIC16F630/676/684/688, но и множество других микроконтроллеров, что значительно расширяет возможности аппаратного контроллера программатора PonyProg2000.

Литература и интернет-источники

1. http://www.jdm.homepage.dk/ — сайт разработчика программатора JDM (Jens Dyekjar Madsen).

2. http://www.lancos.com/ — сайт разработчика программатора PonyProg2000 Клаудио Ланконелли (Claudio Lanconelli).

3. Безверхний И. Программатор устройств с последовательным доступом PonyProg2000: описание программного обеспечения. «Ремонт & Сервис». 2005, № 9, с. 5458.

4. Безверхний И. Программатор устройств с последовательным доступом PonyProg2000. Аппаратный контроллер SI-Prog. «Ремонт & Сервис». 2005, № 10, с. 48-56.

5. http://www.flycont.com/ — html/pp2k.html.

6. Microchip. PIC16F630/676. Data Sheet. 14-Pin FLASH-Based 8-Bit CMOS Microcontrollers.

7. http://www.remserv.ru/cgi/down-load/Pony_16F676.rar

8. http://www.ic-prog.com/ — сайт программатора IC-Prog.

9. http://www.ic-prog.com/icprog106B.zip — адрес для скачивания ПО IC-Prog 1.6B.

10. http://www.ic-prog.com/icprog_driver.zip — адрес для скачивания драйвера IC-Prog для WINDOWS NT/2000/XP.

11. http://www.ic-prog.com/icprogh_rus.zip — адрес для скачивания русскоязычного файла помощи IC-Prog.

12. http://www.winpic800.com/ — сайт программатора WinPic800.

13. Рюмик С.М. С Интернета по нитке. Радиомир. 2007, № 7, с. 39.

14. http://www.ra-publish.com.ua/programs/Ra-04-2007-usb3.zip — адрес для скачивания русификатора WinPic800 v3.61.

15. http://www.pic.borda.ru/ — форум по микроконтроллерам PIC.

16. htto://www.remserv.ru/cgi/down-load/WinPic800_V3_64.rar.

Автор: Игорь Безверхний (Украина, г. Киев)

Источник: Ремонт и сервис

Программирование pic микроконтроллеров. USB и CAN: Урок 3. Использование Bootloader’a

<< Назад к оглавлению

Окей, это будет первый шаг к освоению USB интерфейса.
Есть такая интересная штука. Называется бутлоадер. Что это такое?
Это программа, которая вшивается в начало памяти контроллера и позволяет его программировать.
То есть, для того, чтобы прошить контроллер теперь не нужно будет подключать программатор. Но мы с вами при этом расплатимся памятью программ, так как 0x1000 ячеек будет занято бутлоадером. Итак, к делу.
Интерфейс USB довольно капризный, так что все, что связано со стабильностью USB должно быть собрано очень аккуратно. Кварц должен быть добротно соединен с ножками контроллера.
Я вообще советую вам купить USB розетку, примонтировать ее на плату, чтобы всегда быть уверенным, что контроллер качественно соединен с портом USB.
на всякий случай даю вам распиновку порта
Взято из википедии.
Схема подключения контроллера pic18f2550

Сразу поясню, что когда мы выключатель sw2 замыкаем на землю, наш контроллер будет входить в режим бутлоадера, то есть прошивать. А если sw2 переключен на +5 то, контроллер будет пытаться запустить нашу программу

Схема подключения контроллера pic18f4550

Прошиваем контроллер следующим файлом

это прошивки, скомпилированные из исходников из официального пакета microchip solutions. Правда я поменял некоторые настройки.

Теперь качаем программу для работы с бутлоадером

Для линукса я пока что не проверил.

Так вот, запускаем эту программу и в идеале мы должны увидеть это:

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

Теперь о том, как это работает. Мы попробуем запустить нашу программу из урока №2. Только ее нужно немного изменить. 

Если бутлоадер получает команду запустить нашу с вами программу (sw2 замкнут на +), то он делает переход на адрес 0x1000 откуда, и будет начинаться теперь наша программа. А векторы прерывание соответственно будут перемещены из 0x8 в 0x1008 и из 0x18 в 0x1018

для того, чтобы изменить нашу программу нужно поменять 

org 0 на org 0x1000

и org 0x28 на org 0x1028

И программа теперь будет начинаться в аккурат после бутлоадера

Вот исходный код новой программы

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

Если у вас все получилось, то у вас при запуске контроллера должен мигать светодиод на порту RA2 как в уроке 2. 

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

Чтобы прошить выбираем

File->import firmware image 

выбираем hex файл

После этого нажимаем program->Erase/Program/Verify device

перезагружаем контроллер

Поздравляю — у вас работает первая USB программа, хоть пока что и написанная не вами

Собрать бутлоадер самому

На всякий случай выложу готовый проект, по которому можно собрать бутлоадер самому. Вдруг вам нужно изменить USBDIV конфигурационное слово, если у вас кварц не 20МГц, или кнопку, на которую надо нажать для пуска бутлоадера.
Пару слов о проекте. Это бутлоадер из MLA 2015_08_10. Microchip добавили такую опцию — при удачной прошивке по адресу 0x1006 записывается подпись. Это слово GOOD (0x600D). Расчет идет на то, что компилятор обычно ничего не хранит в этом адресе, а делает GOTO на основную часть программы. Тем не менее, это проблема, если вы пишете на ассемблере. Поэтому, если вы хотите нетронутую версию бутлоадера — установите MLA и соберите из него.
Еще одно. Бутлоадер собирается только с XC8 компилятором версии PRO. А воровать его с какого-нибудь всем известного сайта — это ай-яй-яй.
Ссылка на проект бутлоадера
https://yadi.sk/d/xYAFgZaDjFr4V

Программное и микропрограммное обеспечение C#, ПЛАТА ИНТЕРФЕЙСА USB

Программное приложение C# и прошивка для платы PIC18F4550

Чтобы продолжить работу над этим проектом, вам необходимо загрузить мою версию прошивки для управления 6 светодиодами и программное приложение, написанное на языке C# Sharp, файл проекта также прилагается к файлам для загрузки, приведенным ниже. Загрузите программное обеспечение, прошивку и драйверы для этой платы в соответствии с вашей операционной системой. Загрузите прошивку с помощью вашего программатора и подключите плату к компьютеру и установите драйверы вручную.Плата много раз успешно тестировалась с Windows XP, Vista и Windows 7, но никогда не тестировалась на win 8.

FIRMWARE -Прошивка CONTROL для 6 светодиодов (СКАЧАТЬ)
Программное обеспечение – Программное обеспечение C# Скачать (СКАЧАТЬ)
Драйвер – XP и WIN7

Эта версия прошивки позволит вам управлять 6 светодиодами с демонстрационной интерфейсной платы USB.

Теперь подключите 8 светодиодов к контактам CTRL 1, 2,3,4,5,6,7,8 (от RD 0 до RD 7) с сопротивлением 1 кОм каждый.

Из всех 8 светодиодов вы должны иметь возможность управлять 6 светодиодами с помощью примера приложения C Sharp, представленного в начале этой страницы.

Конфигурация контактов PORT D на PIC18F4550 настроена таким образом, чтобы приложение C-sharp могло зажигать светодиоды, подключенные к RD 0, RD 1, RD 2, RD 3, RD 6 и RD 7. Однако RD 5 и RD 6 используются только для индикации, чтобы убедиться, что плата находится под напряжением и существует связь USB. Когда интерфейсная плата USB включена и готова к работе, светодиод, подключенный к RD 5 и RD 6, будет мигать попеременно с короткими задержками между ними. Это также указывает на то, что плата находится в режиме только для чтения.

Если светодиод, подключенный к контактам RD0 и RB1, мигает попеременно, это означает, что плата микроконтроллера находится в режиме чтения/записи (режим начальной загрузки). При загрузке загрузки не будет управления остальными светодиодами. Только когда интерфейсная плата USB находится в режиме чтения, только тогда можно управлять щелчками светодиодов.

Программное приложение для управления интерфейсной платой USB

После успешного подключения к ПК, инициализируйте программное обеспечение C# и нажмите кнопку «Проверить состояние» в приложении, чтобы убедиться, что плата взаимодействует с компьютером.При успешном подключении к плате программа покажет вам VID в поле состояния. Если нет, проверьте соединение и перезапустите программное обеспечение.

Программное обеспечение приложения написано на C# (c-sharp) с использованием Visual Studio 2010, ошибки, о которых сообщали пользователи в более старой версии приложения, были исправлены в последней версии приложения [обновлено январь 2014 г.]

Если во время работы с платой из-за каких-либо помех в USB-соединении, если связь с платой потеряна, но светодиоды состояния (RD 5 и RD6) продолжают мигать попеременно, то необходимо перезапустить программу еще раз.

КОНЕЦ ПРОЕКТА ПЛАТЫ ДЕМОНСТРАЦИОННОГО ИНТЕРФЕЙСА USB

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

Подробнее: Программное и микропрограммное обеспечение C#, ПЛАТА ИНТЕРФЕЙСА USB

Текущий проект/сообщение также можно найти, используя:
  • Программирование интерфейсной платы USB
  • Микропрограммное обеспечение микроконтроллера pic
  • Пример программы C# pic16f877a
  • pic usb C#

PIC Control Firmware Engineer — EFFECT Photonics

Инженер по программному обеспечению управления PIC

Описание работы

EFFECT Photonics — ведущая компания по масштабированию высокоскоростных оптических приемопередатчиков для сетей связи на основе технологии Photonic Integrated.Наши команды состоят из энтузиастов и высококвалифицированных коллег, которые разделяют страсть к разработке и созданию оптических приемопередатчиков, которые обеспечат Интернет будущего. Сочетание высокотехнологичной среды и интернационального характера команд делает EFFECT интересной и сложной рабочей средой.

Мы ищем опытного инженера по встраиваемому программному обеспечению, который будет владеть прошивкой, которая будет контролировать все аспекты нашей фотонной интегральной схемы (PIC).Эта роль будет заключаться в моделировании, разработке, тестировании и отладке встроенного программного обеспечения для наших PIC и потребует четкого понимания физики оптических устройств, включая встроенные перестраиваемые лазеры, модуляторы Маха-Цендера и SOA.

Обязанности

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

Профессиональные требования

Необходимые знания, навыки и умения

  • 7+ лет опыта разработки/тестирования управляющей прошивки оптического трансивера (TOSA/ROSA).
  • Минимум степень бакалавра в области вычислительной техники, компьютерных наук, электротехники или физики.
  • Проверенный опыт оптимального определения архитектуры встроенного ПО в соответствии со сложными прецизионными системными требованиями.
  • Опытный специалист по проектированию встроенного ПО и значительной практике кодирования, более 5 лет опыта программирования в среде MCU/SOC и ОС реального времени.
  • Сильные письменные и устные коммуникативные навыки и способность работать независимо и/или межфункционально.

Что мы можем предложить?

  • Работа в захватывающей среде масштабирования;
  • Работа на новейших технологиях;
  • Быть частью очень увлеченной, международной и высококвалифицированной команды;
  • Развивайте свои навыки и вносите свой вклад в развитие компании;
  • Конкурентоспособная заработная плата;
  • И хороший пакет преимуществ, таких как PTO, 401k, Медицина, зрение, стоматология и многое другое!

Для получения дополнительной информации об этой вакансии, пожалуйста, отправьте свой вопрос по адресу набора@effectphotonics.ком. Никаких агентств!

Как обновить прошивку анализатора CAN BUS от Microchip — Веб-сайт Майка Бердиса

CAN BUS Analyzer Tool от Microchip — это монитор шины CAN, который поддерживает CAN 2.0b и ISO11898-2. Его можно приобрести в Digi-Key по цене чуть более 100 долларов США.

Я только начал изучать его, но насколько я могу судить, в устройстве используются два микроконтроллера PIC:

PIC18F2680 является контроллером CAN и взаимодействует с 8-контактным приемопередатчиком CAN (MCP2551) по тому, что выглядит как последовательный TTL.Два MCU взаимодействуют друг с другом через SPI. Я предполагаю, что PIC18F2680 настроен как ведущий SPI, а PIC18F2550 — как подчиненный SPI. PIC18F2550 имеет полноскоростной интерфейс USB 2.0 (12 Мбит/с??), именно так анализатор шины CAN взаимодействует с ПК.

Что мне нравится в этом устройстве, так это то, что в нем есть драйвер SocketCAN. Из списка известных проблем кто-то нашел ошибку в V2.3 официальной прошивки Microchip. В версии 2.3 существует проблема синхронизации между SPI Master и SPI Slave, из-за которой кадры CAN сбрасываются.Так как я планирую использовать это устройство некоторое время, я решил перейти на прошивку rkolataj. Цель этой страницы — задокументировать, как я устанавливал прошивку.

Заголовки для программирования

Судя по схеме на стр. 13 руководства пользователя, на каждый MCU приходится один программный заголовок. J1 предназначен для программирования PIC18F2550 (U1), а J2 — для программирования PIC18F2680 (U2).

При программировании PIC18F2680 плата может питаться от кабеля Mini USB или от внешнего источника питания 9-24 В.При программировании PIC18F2550 необходимо использовать внешний источник питания.

Бывшие в употреблении предметы

Проверка версии прошивки в ПО CAN BUS Analyzer

  1. Подключите CAN BUS Analyzer Tool к USB-порту ПК
  2. Откройте программное обеспечение CAN BUS Analyzer
  3. Перейдите в раздел «Справка» > «О программе»…
  4. Версии прошивки перечислены в разделе «Информация о прошивке»
    • Откройте MPLAB X IPE
    • Подключите PICkit3 к USB-порту ПК
    • Подключите внешний источник питания 9–24 В
    • Проверьте «PICkit3 S.№: xyz» отображается в раскрывающемся списке «Инструмент»
    • Подключите PICkit3 к заголовку программирования J2
    • В раскрывающемся списке «Устройство» выберите «PIC18F2680»
    • Нажмите «Применить», а затем нажмите «Применить». «Подключиться» для активации сеанса
    • Чтобы загрузить файл HEX, нажмите «Обзор».

    Об использовании PICkit2 – 03.11.2018

    Если вы используете PICkit2 для программирования 2680, а не PICkit3, читатель дал этот полезный совет:

    Я просто решил поделиться небольшой информацией о программировании с помощью PICKIT2 (а не 3, как в вашем руководстве).Чтобы PICKIT2 автоматически обнаружил 18F2680, необходимо удерживать кнопку под заголовком программирования «J2», пока выбран тип устройства «18F», после чего устройство будет найдено 🙂

    Программа Программа PIC18F2550

    • Откройте MPLAB X IPE
    • Подключите PICkit3 к USB-порту ПК
    • Подключите внешний источник питания 9–24 В
    • Убедитесь, что «PICkit3 S.No: xyz» отображается в раскрывающемся списке «Инструменты»
    • Подключить Заголовок программирования PICkit3 to J1
    • В раскрывающемся списке «Устройство» выберите «PIC18F2550»
    • Нажмите «Применить», а затем нажмите «Подключиться», чтобы активировать сеанс
    • Чтобы загрузить файл HEX, нажмите «Обзор»
    • Выберите файл «PIC18F2550_Full_v255_0.hex»
    • Нажмите «Программировать», чтобы запрограммировать микроконтроллер.

    Еще раз проверьте версии прошивки

    Восстановление прошивки микроконтроллера с помощью инвазивного анализа

    014. Восстановление прошивки MCU

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

    Чтобы охарактеризовать память EPROM, я буду программировать устройство, чтобы посмотреть, смогу ли я изменить его содержимое, подвергнув кристалл воздействию УФ-излучения.Для программирования и чтения содержимого этого микроконтроллера я использую мультипрограмматор типа MiniPro TL866.

    Состояние по умолчанию для транзисторов с плавающим затвором имеет высокий логический уровень, поэтому при чтении содержимого 12-разрядной микросхемы слов отображаются страницы 0FFF :

    Перевернуть каждый бит в чипе, заполнив буфер нулями и запрограммировав его:

    Чтобы подвергнуть матрицу воздействию УФ-излучения и выбить захваченный заряд из плавающих затворов, я использую старинный стиратель EPROM AT&T ES-140T, но подойдет любой мощный УФ-источник.Вставляю пакет в ластик и выставляю на пять минут.

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

    Открытие кристалла в течение дополнительных 10 минут полностью сбрасывает чип в девственное, незапрограммированное состояние.Я перехожу к разделу конфигурации чипа, который включает в себя различные аппаратные флаги и настройки таймера, такие как флаг Code Protect (CP). Я включаю их все и отмечаю значение изменения слова конфигурации. Поскольку состояние по умолчанию — высокий логический уровень, установка этих флагов фактически очищает биты.

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

    Еще раз прочитав содержимое, я обнаружил… что ничего не произошло! Все биты конфигурации по-прежнему установлены, а содержимое по-прежнему хешируется. Почему это? Либо транзисторы с плавающим затвором чем-то заблокированы, и на плавающие затворы попадает меньше УФ-излучения, либо используется другая технология плавких предохранителей, либо я только что наткнулся на фактическое подавление инвазивной атаки, либо комбинация всех трех.

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

    Я проверяю первую гипотезу, выдерживая чип еще полчаса. К моему большому облегчению, все биты конфигурации сброшены, включая CP. Это означает, что эти транзисторы плохо защищены контрмерой; некоторый ультрафиолетовый свет все еще проникает в плавающие ворота, но с меньшей скоростью.Я могу дополнительно проверить, вытащив фокус из рукава кролика и попытавшись направить больше света под экран, удерживая чип под углом по отношению к источнику света. угол в ластике EPROM. Выставив пакет всего на 15 минут, я удостоверился, что флаги экранированной конфигурации были сброшены.

    После декапсуляции и характеристики УФ-стирания осталось только защитить основную матрицу с плавающими затворами от УФ-излучения, вручную замаскировав область кристалла непроводящим, УФ-непрозрачным материалом.Самый простой и щадящий из них — простой лак для ногтей.

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

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

    Меры по смягчению последствий

    Хотя этот подход работает для многих микроконтроллеров, более ориентированные на безопасность устройства, такие как SIM-карты, доверенные платформенные модули (TPM), аппаратные модули безопасности (HSM) и другие приложения, где целостность системы имеет первостепенное значение, используют усиленные наборы микросхем, которые смягчают эти и другие агрессивные действия. атаки.Давайте взглянем на одно из таких устройств, Yubico YK4 Nano.

    Декапсуляция YK4 и рассмотрение под оптическим микроскопом раскрывают, ну, немногое. Практически каждая активная часть кристалла, за исключением контактных площадок, защищена металлическим слоем, который предотвращает визуальный осмотр и простое воздействие УФ-излучения, описанное ранее.

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

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

    Если вы нашли это интересным и хотите узнать больше о безопасности ИС, идентификации отдельных функций и методах декапсуляции, нет лучшего бесплатного ресурса, чем вики-сайт Siliconpr0n. Если вы хотите узнать больше, Texplained предлагает очень технический учебный курс по всему, что я здесь рассмотрел, а также по обратному проектированию реализованной логики и извлечению зашифрованных ПЗУ путем взлома внутренней схемы.

    Сведения о программном обеспечении | Центр поддержки HPE

    div#horizontalNavigation:not(:empty)[style=’margin-top: 5px;’] + раздел # тело > div[style=’margin-left: 18px; поле справа: 18px; поле сверху: 20 пикселей; padding-bottom: 20px;’] { min-height: calc(100vh — 236px) !важно; } div#содержимое > div#horizontalNavigation:not(:empty)[style=’margin-top: 5px;’] + раздел # тело > дел { min-height: calc(100vh — 196px) !важно; } div#содержимое > div#horizontalNavigation:not(:empty) + раздел # тело > div[style=’margin-left: 18px; поле справа: 18px; поле сверху: 20 пикселей; padding-bottom: 20px;’] { min-height: calc(100vh — 231px) !важно; } div#содержимое > div#horizontalNavigation:not(:empty) + раздел # тело > дел { min-height: calc(100vh — 191px) !важно; } /* для страниц без мегаменю */ div#содержимое > div#horizontalNavigation[style=’margin-top: 5px;’] + раздел # тело > div[style=’margin-left: 18px; поле справа: 18px; поле сверху: 20 пикселей; padding-bottom: 20px;’] { min-height: calc(100vh — 170px) !важно; } div#содержимое > div#horizontalNavigation[style=’margin-top: 5px;’] + раздел # тело > div[style=’padding-bottom: 25px;’] { min-height: calc(100vh — 160px) !важно; } div#содержимое > div#horizontalNavigation[style=’margin-top: 5px;’] + раздел # тело > дел { min-height: calc(100vh — 135px) !важно; } div#содержимое > div#горизонтальная навигация + раздел # тело > div[style=’margin-left: 18px; поле справа: 18px; поле сверху: 20 пикселей; padding-bottom: 20px;’] { min-height: calc(100vh — 165px) !важно; } div#содержимое > div#горизонтальная навигация + раздел # тело > div[style=’padding-bottom: 25px;’] { min-height: calc(100vh — 155px) !важно; } div#содержимое > div#горизонтальная навигация + раздел # тело > дел { min-height: calc(100vh — 130px) !важно; } /* для страниц ошибок прокси */ p#proxy_error { верхняя граница: 0px !важно; padding-top: 10px !важно; } ]]>

    Репик — РепРап

    Repic

    Статус выпуска: Работает


    «Совершенство достигается не тогда, когда больше нечего добавить, а когда нечего убрать.» — Антуан де Сент-Экзюпери

    На этой странице подробно описана экспериментальная универсальная материнская плата на базе USB/PIC, которую я разрабатываю для RepRap и фрезерных станков с ЧПУ. Это может быть интересно программистам, знакомым с Visual Studio Express и желающим поэкспериментировать с прошивкой RepRap в этой среде, используя минимальный набор оборудования.

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

    Текущее состояние, 2016 г.

    Задача:
    сделать печатную плату, которую можно травить, просверлить и припаять все части
    Присоединить процессор PIC
    Посмотреть, что получится

    ПОЧЕМУ?
    Вы можете вытравить печатную плату самостоятельно в домашних условиях, см. ElectronicsFabricationGuide
    Вы можете получить одну из самых дорогих частей, PIC-процессор, бесплатно в качестве образца!
    Скорее всего, вы сможете построить его в качестве своего первого электронного проекта… но тогда как запрограммировать и запустить его с программированием 5-летней давности???

    Файл:Repic.pdf
    Файл:RePic2016.zip

    Текущее состояние, декабрь 2011 г.

    Repic теперь работает и успешно печатается. База кода в настоящее время подвергается очистке, а функции удобства использования добавляются в основное программное обеспечение.

    Известные проблемы:

    • Аппаратная часть нагревателя разработана, но компоненты микропрограммы и программного обеспечения еще не добавлены.В настоящее время я не решил, должен ли он быть стандартным компонентом Repic, а также должен ли он оставаться управляемым транзистором или вместо этого использовать реле (если у вас есть мнение, так или иначе, я хотел бы его услышать).
    • Значения шагового двигателя можно настроить в программном обеспечении, но в настоящее время они хранятся на хост-компьютере как пользовательские настройки. Это будет изменено в следующем выпуске, где они будут храниться на самом RepRap, как и температура экструдера в настоящее время. Значения по умолчанию при первом запуске программы: 80/80/6720/13.5 для XYZE соответственно. Обратите внимание, что значение E установлено на значения, обычно используемые программным обеспечением RepRap, то есть это мм/мин экструзии. Если вы используете Skeinforge, вам нужно установить его на мм/мин пластикового стержня, что является гораздо более высоким значением, обычно около 600. Компонент Virtual RepRap также использует значение E для рендеринга и, таким образом, корректно работает с любым пакетом.
    • Небольшая ошибка в коде 5D запускает печать с нулевой скоростью вместо первой попавшейся скорости, обычно это проявляется в том, что головке требуется несколько секунд, чтобы «накрутиться» до скорости перед началом печати.На печать не влияет, но будет исправлено в следующей версии.

    Цели проектирования

    Основная цель дизайна Repic — свести электронику к абсолютному минимуму. Это означает разработку односторонней печатной платы со сквозными отверстиями, которую можно легко изготовить дома. Это также означает снижение стоимости: полный набор электроники на EBay часто продается дороже 300 австралийских долларов, тогда как полный набор электроники на основе Repic стоит около 80 долларов, включая четыре шаговых драйвера Pololu.В настоящее время я изучаю способы безопасной замены Pololus H-мостами с ШИМ-управлением, что должно снизить цену примерно до 40 долларов. Еще одно соображение заключается в том, что святой Грааль RepRap — это 100% репликация; чем сложнее аппаратные требования, тем больше времени это займет.

    Вторая цель Repic — сделать его максимально удобным для пользователя. Преследуя эту цель, я решил перейти на аппаратный интерфейс на основе USB. Это позволяет RepRap поддерживать полную возможность plug-n-play, а также устраняет необходимость в преобразователе USB->последовательный порт и связанные с этим проблемы с настройкой для конечного пользователя.

    Проблемы дизайна

    Для основного контроллера моей материнской платы я заменил архитектуру на основе Arduino на архитектуру на основе серии Microchip PIC. В настоящее время я предпочитаю PIC 18F4550, который имеет несколько преимуществ:

    • Стоимость. При цене 11 долларов за чип это примерно столько же, сколько у Arduino.
    • Родная совместимость с USB 2.0. Разработка клиентских USB-устройств с этим чипом чрезвычайно проста.
    • Минимальная необходимая вспомогательная электроника.
    • Хорошая поддержка ввода/вывода.До 16 двунаправленных цифровых конечных точек, 13 10-битных аналогово-цифровых входов и 1 цифро-аналоговый выход.
    • Доступен в корпусах SMD и DIP.

    Одним из недостатков использования этого чипсета является отсутствие бесплатного компилятора C++ для архитектуры PIC18 (стандартная прошивка RepRap написана на C++). Я обхожу проблему, запуская парсер gcode на стороне хоста, что означает, что Repic пока не может работать в автономном режиме. В настоящее время я разрабатываю плату на основе PIC24F, которая, в свою очередь, позволит материнской плате Repic работать в режиме USB-хоста, что позволит поддерживать чтение файлов gcode из хорошо зарекомендовавшего себя стандарта USB memstick, таким образом заменив текущий SD- карточной системы и доработка дизайна Repic как полностью совместимого с USB устройства.

    Материнская плата Repic и набор функций

    Материнская плата Repic представляет собой одностороннюю печатную плату, в которой используются только сквозные компоненты. Между контактами нет перемычек или тонких дорожек. Плата содержит разъем USB, разъемы для подключения до четырех драйверов шаговых двигателей Pololu и клеммы для следующего:

    • Три концевых упора с микропереключателем (хотя также поддерживаются оптоконцевые упоры).
    • Нагреватель экструдера и термистор
    • Нагреватель с PWM-управлением и термистором.Катушки нагревателя могут работать от 5 В, 12 В или их комбинации.

    Плата также поддерживает внутрисхемное программирование через USB-порт для обновления прошивки и общих разработок.

    Схема PIC довольно проста и основана на множестве схем в Интернете, включая схемы Дэна Оверхольта, mdhosale и «Evan». Схема нагревательного элемента, экструдера/термистора и шагового двигателя основана на схеме Эдриана Pololu. Значительное вдохновение также было получено от упрощенной электроники Пира.

    Плюсы:

    • Только сквозное отверстие, можно изготовить в домашних условиях методом переноса тонера.
    • Дешево! Всего около 80 долларов, включая четырех водителей Pololu.
    • Меньше точек отказа благодаря упрощенной электронике.
    • Интерфейс USB plug-n-play, т. е. пользовательская настройка не требуется.

    Минусы:

    • Фиксированная конструкция «все в одном» означает, что она не является гибкой.
    • Поддерживает только один экструдер.
    • Автономная работа невозможна.
    • Хост-программа только для Windows.

    Хост-программное обеспечение Repic

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

    Режим Virtual Mendel также удобен для устранения различных проблем с оборудованием.Деталь на изображении ниже была напечатана на модифицированном редукторном экструдере Адриана, который имел несколько незначительных дефектов, включая «слипание» пластика по краям (1 и 2) и неравномерные области заполнения в плоскости XY (3). ). Когда Virtual Mendel запускался с постоянным значением скорости экструдирования, те же артефакты появлялись на смоделированных выходных данных, подтверждая подозрения, что экструдер не может быстро изменить скорость экструдирования из-за недостаточного захвата пластиковой нити.

    Калибровка термистора

    Расчеты термистора

    основаны на отличном посте NopHeads по этому вопросу. Я использую один из официальных термисторов с Beta 4066 и R25 100K, и, используя расчеты NopHeads, я выбрал R1 4700 (который подключен параллельно термистору на самом экструдере) и R2 10k. (это резистор R6 на материнской плате). На данный момент эти значения жестко закодированы в программном обеспечении хоста Repic, но в ближайшие недели я добавлю их в настройки конфигурации, которые сохраняются в EEPROM, чтобы их можно было установить через программное обеспечение хоста во время первоначального ввода в эксплуатацию.

    Я заметил, что показания температуры очень сильно зависят от напряжения питания USB; при управлении с моего ноутбука они, как правило, очень шумные, тогда как при использовании моей настольной машины они стабильны. Похоже, это не влияет на работу экструдера, но мне, вероятно, потребуется добавить некоторую программную фильтрацию, чтобы немного сгладить ситуацию.

    Технические детали экструзии

    Repic поддерживает ускоренное выдавливание «FiveD» с добавлением 32-битных целых чисел в процедуру прерывания PIC, которая выполняется 10 000 раз в секунду.Скорости перемещения и подачи обновляются с помощью итеративного интегратора, который реализует стандартные уравнения для равномерно ускоренного линейного движения, дополнительный член рассчитывается с использованием линейного алгоритма Брезенхема для компенсации накопленной ошибки округления. Конечным результатом является идеальная 5D-экструзия, в которой в качестве входных данных используются параметры G1 GCode и генерируются необработанные сигналы синхронизации для отправки на степперы.

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

    Файлы проекта Repic

    Электроника Building Repic

    включает следующие этапы:

    1. Загрузите файлы платы и сделайте из них одностороннюю плату.
    2. Загрузите образ загрузчика в PIC18F4550. Если у вас нет записывающего устройства PIC, попробуйте создать его ( задача: создать страницу, показывающую, как это сделать ). Затем установите чип на плату Repic.
    3. Загрузите пакет Repic ниже и запрограммируйте прошивку Repic в микроконтроллер.Для этого подключите Repic к хост-компьютеру (или нажмите кнопку сброса), удерживая нажатой кнопку программы. Затем используйте приложение Microchip HID Bootloader для загрузки прошивки в чип.
    4. Соберите остальную часть RepRap как обычно, подключив шаговые двигатели, концевые упоры, нагреватель и термистор к соответствующим клеммам.

    Весь пакет проекта Repic можно скачать здесь:

    Repic v0.4 (бета) Файлы проекта

    В комплект входят следующие компоненты:

    • Двоичная прошивка
    • Аппаратные PDF-файлы со схемами, печатными платами и шелкографией.
    • Приложение для установки программного обеспечения хоста (Windows XP и выше)
    • Файл проекта прошивки C18 и исходный код
    • Файлы проекта Eagle
    • Проект хост-программы, библиотеки и исходный код

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

    Спецификация

    Ниже представлена ​​спецификация, необходимая для сборки материнской платы Repic. Все компоненты, перечисленные ниже, рекомендуются, но не все являются абсолютно необходимыми.Светодиоды можно не включать, так как программное обеспечение хоста сообщит вам, когда материнская плата подключена и работает. Переключатели можно не использовать, если вы не хотите выполнять какое-либо внутрисхемное программирование. Клеммы и разъемы включены в основном для удобства, если вы хотите припаять провода и драйверы шаговых двигателей непосредственно к материнской плате, то они также не нужны. Поле «Обязательно» ниже указывает, нужен ли компонент для «голой» версии Repic.

    Микроконтроллер
    Товар Описание Пример поставщика Количество Стоимость за единицу Общая стоимость Обязательно Примечания
    Пустая печатная плата из стекловолокна — 150 x 150 мм Джейкар 1 8 долларов.95 8,95 $ Да Точный размер не важен, но он должен быть не менее 12 x 10 см (~4 1/2 x 4 дюйма).
    Плата драйвера шагового двигателя Pololu Плата драйвера шагового двигателя Pololu 4 12,68 $ 50,72 $ Да
    ИК1 PIC18F4550 РС Электроника 1 12 долларов.00 12,00 $ Да Jaycar продает этот чип за 45 долларов, но однажды мне удалось получить их по цене, указанной в RS Electronics.
    Р1-Р5 Резистор 4,7 кОм 5% 1/8 Вт Джейкар 5 0,46 $ 2,30 $ Да R5 требуется только для подогревателя
    Р6 Резистор 10 кОм 5% 1/8 Вт Джейкар 1 $0.46 0,46 $ Да См. раздел о калибровке экструдера для выбора значения R6, если вы используете другой термистор.
    С1-С2 Керамический конденсатор 22 пФ 50 В Джейкар 2 0,36 $ 0,72 $ Да
    С3 Электролитический конденсатор 0,1 мкФ 50 В Джейкар 1 $0.45 0,45 $ Да
    С4, С6, С7 Электролитический конденсатор 10 мкФ 25 В Джейкар 3 0,34 $ $1,02 Да C7 требуется только для подогревателя.
    С5 Электролитический конденсатор 0,47 мкФ 50 В Джейкар 1 0,45 $ 0,45 $ Да
    Q1 Кристалл 20 МГц Джейкар 1 4 доллара.95 4,95 $ Да
    Q2, Q3, Q4 VNP14NV04-E МОП-транзистор mouser.com 3 2,23 $ 6,69 $ Да Q3 требуется только для подогревателя на 12 В. Q4 требуется только для нагревательного слоя 5 В.
    40-контактный разъем IC Джейкар 1 1,00 $ 1,00 $ Нет Дополнительный разъем для IC1.
    СВ1, СВ2, СВ3, СВ4 Блоки розеток SIL РС Электроника 3 4,00 $ (упаковка из 5 шт.) 4,00 $ Нет
    SW1 (СБРОС), SW2 (ПРОГРАММА) Квадратный переключатель SPST для печатной платы Джейкар 2 $1,25 2,50 $ Нет В основном используется для упрощения внутрисхемного программирования во время разработки.
    LED1, LED2 Светодиоды 3 мм Джейкар 2 0,20 $ 0,40 $ Нет Может быть любого цвета, я использую красный (индикатор питания) и синий (статус).
    Х1 Разъем USB типа B Джейкар 1 2,95 $ 2,95 $ Нет Старый USB-кабель можно припаять прямо к печатной плате в качестве дешевой альтернативы.
    Х6, Х7, Х8, Х9, Х10 2-контактные винтовые клеммы для печатных плат Джейкар 10 1,20 $ 12,00 $ Нет
    Х2, Х3, Х4, Х5, Х11 3-контактные винтовые клеммы для печатных плат Джейкар 6 $1,55 9,30 $ Нет

    Все поставщики, указанные в таблице выше, находятся в Австралии (в основном в Мельбурне), за исключением Pololu.Цены указаны в австралийских долларах ($AUD), которые на момент написания практически не отличаются от доллара США. Цены на электронные компоненты в Австралии завышены, поэтому я также приведу общую цену в США, которую я рассчитал на основе прейскурантных цен SparkFun:

    Общая стоимость австралийских долларов долларов США
    «Полнофункциональный» Реп: 120,86 $ 88,35 $
    «Голые кости» Реп: 84 доллара.45 65,80 $

    Обратите внимание, что большая часть дополнительных затрат в «полнофункциональном» Repic (21,30 доллара США) была потрачена на очень дорогие винтовые клеммы для печатной платы, которые я использовал. Если вы собираете полную материнскую плату, я бы посоветовал поискать более дешевую альтернативу в местном магазине электроники.

    Контактная информация разработчика

    Марк Фельдман (он же Майндейл)

    Встроенная/прошивка | Advantage Electronic Product Development, Inc.

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

    Некоторые недавно завершенные проекты по проектированию встраиваемых систем включают:

    Беспроводное интеллектуальное сетевое домашнее устройство, использующее чипсеты Zigbee RF для локальных и удаленных устройств, встроенный микроконтроллер серии PIC 18F с проприетарной прошивкой и несколькими аналоговыми и цифровыми датчиками.

    Компактный низковольтный контроллер с микроконтроллером серии PIC 18F, сильноточными реле, внешней сторожевой схемой, ИК- и РЧ-интерфейсами и схемой обнаружения нуля переменного тока.

    Advantage предлагает вам превосходство в электронных продуктах. Благодаря нашей способности проектировать, разрабатывать и производить продукты, совместимые с сенсорными платформами iPhone/iPad/iPod, в сочетании с нашим опытом в области встроенных систем, ваши продукты могут править!

    Наши инженеры по встраиваемым системам владеют несколькими технологиями, включая Wi-Fi, Bluetooth и чипы аутентификации Apple.Наше обязательство заключается в том, чтобы постоянно предлагать нашим клиентам лучшее из встроенного дизайна. Нам разрешено создавать и производить электронные периферийные устройства, взаимодействующие с популярными продуктами Apple iPhone, iPod touch, iPad.

    Языки описания аппаратуры, такие как Verilog HDL и VHDL (язык описания аппаратуры сверхвысокоскоростных интегральных схем), изначально были разработаны для моделирования цифровых схем и позволяют разработчикам формализовать модель своих проектов. Сегодня они используются как комплексное решение, предоставляющее средства для определения цифровых проектов, моделирования, имитации и последующего внедрения этих проектов путем их программирования непосредственно в программируемом логическом устройстве (PLD).

    До появления ПЛИС типичным был традиционный схематический дизайн независимых логических микросхем для более крупных логических схем. Это отнимало много времени, чревато ошибками и неэффективно. Теперь программируемые устройства могут заменить этот метод и обеспечить множество преимуществ. Повышенная надежность для снижения энергопотребления (по сравнению с отдельными логическими микросхемами), снижения требований к пространству, снижения затрат и сокращения времени цикла разработки; наши инженеры по проектированию встраиваемых систем в полной мере используют множество преимуществ, предлагаемых этими устройствами.

    Для большинства конструкций микроконтроллеров требуется определенное количество «связующей логики» или дискретных компонентов, состоящих из набора микросхем для соединения микроконтроллера с периферийными компонентами. Эти микросхемы требуют большей мощности и площади на печатной плате, чем сопоставимые устройства FPGA или CPLD. PLD теперь используются для замены всей этой цифровой логики, интегрируя ее в единое устройство во всех конструкциях, кроме самых простых.

    Более крупные FPGA от Xilinx обеспечивают значительную степень интеграции, например полный интерфейс PCI с ядром виртуального микроконтроллера, и все это на одном компоненте.

    Преимущества использования FPGA и CPLD:

    • Изделия можно миниатюризировать, требуя меньше места на печатной плате
    • Сокращение времени проектирования за счет использования отраслевых наборов инструментов
    • Снижение затрат на проектирование
    • Нулевая стоимость изготовления и нулевой NRE
    • Возможность перепрограммирования, сокращающая количество оборотов платы и время изготовления
    • Производство и компоновка оптимизированы за счет размещения на плате меньшего количества деталей.
    • Использование пространства на плате сведено к минимуму
    • Общие затраты на продукт снижаются, поскольку различные цифровые логические микросхемы могут быть заменены одним или двумя типами программируемых логических микросхем, а запасы деталей сокращаются.
    • PLD
    • очень доступны по цене, например Xilinx XC9536XL CPLD стоит около 2 долларов даже в небольших количествах.

    Программируемые логические устройства идеально подходят для:

    • Мелкосерийное производство
    • Срочные проекты вывода на рынок
    • Быстрое прототипирование
    • Эмуляция логики
    • Реконфигурируемые вычисления
    • Заказное компьютерное оборудование

    Компания Advantage Electronic Product Development предлагает услуги по проектированию встраиваемых систем FPGA и CPLD как часть полной разработки продукта или как отдельную услугу для поддержки наших клиентов в их собственных внутренних проектах.У нас большой опыт разработки прошивок для FPGA и CPLD от Altera и Xilinx. Обычно мы программируем в коде VHDL и используем набор инструментов Xilinx ISE для моделирования, синтеза, имитации и программирования наших программируемых логических устройств.

    Недавно завершенный проект встроенного ПО для сервисов проектирования встраиваемых систем:

    Двенадцатиканальный таймер с восемью триггерами на канал и точностью до 1000-х долей секунды. Эта конструкция включала одноплатный компьютер, а также фирменную плату таймера с микроконтроллером PIC18 и Spartan FPGA.

    .

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован.