Как запрограммировать микроконтроллер?
Ответ мастера:Микроконтроллер призван управлять электронными устройствами, а также осуществлять взаимодействие между ними в соответствии с заложенной в него программой. Микроконтроллеры включают в себя встроенные дополнительные устройства.
Нам потребуется наличие – CodeVisionAVR; – VMLAB.
Установим на ПК приложение-компилятор CodeVisionAVR, которое позволяет программировать микроконтроллеры. В нем можно создать программу для AVR. Также нам нужно установить приложение-симулятор VMLAB, предназначенное для того чтобы проверять работу программы на микроконтроллере.
После завершения установки сделаем резервные копии папок, содержащих программы. В состав приложений входят примеры устройств на микроконтроллерах и встроенные файлы справки. Воспользуемся ними для того, чтобы самим запрограммировать контроллер.
Распакуем архив x8pwm2.rar в папку, в которой установлена программа Vmlab – z8. Затем запустим приложение Vmlab, перейдем к меню Project и выберем в нем пункт Open project, после чего откроем проект из папки с программой Vmlab.
После этого щелкнем в меню Project пункт Re-build all для перекомпилирования проекта. Появится сообщение, что процесс успешно завершен, далее мы сможем приступать к моделированию микроконтроллера.
Выполним симуляцию, то есть начнем выполнять программу, загруженную в компьютерной модели контроллера, а также окружающую его схему. Щелкнем мышью по светофору для начала выполнения программы, которая загружена в память МК. В этот же момент остановим процесс.
Еще раз запустим его и понаблюдаем за тем, как изменяется напряжение в окне Scope. Остановим программу, развернем окно с надписью Code, после чего в нем будет отображен исходный код программы, скомпилированный Cvavr.
Обращаем внимание, что какие-то строки подсвечены желтым. Длина данной подсветки говорит о том, сколько времени находится программа на данной строке. Далее можно прошить контроллер при помощи этой программы.Программирование микроконтроллеров
Программирование микроконтроллеровЧто такое микроконтроллер?
Современная электронная техника не обходится без такого устройства, как микроконтроллер. Как и у старшего брата – программируемого логического контроллера, его возможности очень широки.
Микроконтроллер, по сути, это полноценный компьютер, расположенный на небольшой цифровой микросхеме. На одном кристалле, как правило, располагаются такие устройства, как процессор, оперативная и долговременная память, устройства ввода-вывода, периферийные устройства и стандартные интерфейсы.
Долгое время программирование микроконтроллеров не могло обходиться без специализированных средств разработки, но сегодня, ввиду развития технологий и персональных компьютеров, с микроконтроллером может работать любой желающий специалист. Программирование микроконтроллеров является перспективным направлением, так как возможности применения таких устройств достаточно велики.
Программирование микроконтроллеров. Компоненты
Сам по себе микроконтроллер не является «конечным продуктом», который готов к использованию. Для того чтобы сделать микроконтроллер умным устройством, необходимо его запрограммировать.
Программирование микроконтроллеров обозначает запись, необходимых для выполнения команд, в постоянную память микроконтроллера (ПЗУ). Этот процесс не может осуществляться без таких компонентов, как: программатор (используется для записи программы в микроконтроллер), язык программирования и сама программа (должны быть понятны для микроконтроллера) и знание структуры и параметров микроконтроллера для его рационального использования.
В первую очередь необходимо отметить, что одним из самых важных компонентов в программировании микроконтроллеров является программатор. Он осуществляет взаимосвязь между компьютером и микроконтроллером.
Выбор программатора влияет на получение наилучшего результата. Хороший программатор имеет возможность не только записывать ряд команд в контроллер, но и считывать информацию. При необходимости программатор может выполнять и другие функции, такие как стирание, защита от чтения, и т.д.
Принципы программирования микроконтроллеров
Как правило, программирование микроконтроллера не подразумевает под собой написание именно исходного кода самой программы для получения нужного результата. Это сложный процесс проектирования заданного продукта. Процесс программирования микроконтроллеров происходит в несколько этапов:
Первый этап. Определение задач, которые должно выполнять микроконтроллер.
Известно, что проектирование любого устройства начинается с анализа технического задания. Исходя из заданных требований, формируется начальная элементная база. В некоторых случаях, когда решаемая задача является типовой и количество изменяемых параметров невелико,возможно использование готовых микросхем.
Второй этап. Создание или выбор структурной схемы устройства на основе заданного микроконтроллера.
На данном этапе программирования микроконтроллера необходимо учитывать, что написанная программа для прошивки микроконтроллера не может существовать отдельно от схемы устройства. Это означает, что любое изменение в принципиальной схеме устройства должно отображаться и на программе, написанной для него.
Также на данном этапе чрезвычайно важно разделить программную и аппаратурную части реализации алгоритма работы разрабатываемого устройства. Зачастую гораздо проще реализовать ту или иную задачу за счет аппаратных средств, нежели за счет программных и наоборот. Также при программировании микроконтроллера на этапе создания структурной схемы устройства необходимо распределить задачи таким образом, чтобы к выбранному микроконтроллеру не предъявлялось высоких требований производительности.
Третий этап. Создание программы для прошивки, на основе выбранного языка программирования.
Языки программирования микроконтроллеров по своей структуре очень похожи на языки программирования для универсальных компьютеров. Микроконтроллер, аналогично компьютеру, получает на вход машинный (двоичный) код. Такой код слабо воспринимается человеком и вследствие этого плохо подходит для отладки программ. Сложившаяся ситуация послужила появлению специализированных языков программирования для микроконтроллеров.
Четвертым этапом процесса программирования является запись программы в микроконтроллер с помощью программатора, а также сборка и подключение устройства.
Языки программирования микроконтроллеров
Языки программирования микроконтроллеров делятся на две группы:
- низкого уровня
- высокого уровня
Языком низкого уровня является Ассемблер. Здесь каждому оператору соответствуют не более одной машинной команды. Такой язык программирования очень громоздкий и нелегко понимается для человека. Тем не менее, альтернативы ему на данный момент практически нет, например, когда в процессе программирования микроконтроллера имеются ограниченные ресурсы, такие как 8-ми битные модели с ограниченным объемом памяти. Также данный язык обеспечивает достаточно большое быстродействие и компактность программного кода, что зачастую является немаловажным фактором.
К языкам высокого уровня можно отнести такие языки программирования микроконтроллеров, как PL/M, C/C++, Java, Pascal, Basic и другие. При работе с такими языками происходит увеличение производительности за счет замены одного оператора несколькими машинными командами. Языки программирования высокого уровня требуют больших затрат памяти, так как объем такой программы достаточно большой. Преимущество их использования, это возможность работы программы на различных микропроцессорах, при использовании программ-трансляторов.
В настоящее время в программировании микроконтроллеров наиболее часто используются языки Ассемблер и C/C++, так как обеспечивают компактность кода и быстродействие соответственно.
Среда программирования напрямую зависит от вида выбранного микроконтроллера. Универсальных сред программирования практически не существует, так как каждый вид микроконтроллеров имеет индивидуальную структуру и процесс записи программы в память.
Наиболее популярными средами программирования микроконтроллеров являются: FlowCode(практически единственная среда, позволяющая программировать сразу несколько видов микроконтроллеров PIC, AVR, ARM),AlgorithmBuilder (графическая среда программирования AVR микроконтроллеров),CodeVisionAVR, IAR Systems, CodeComposerStudio (CCS), Energia, Virtualbreadboard, FlashMagic, MPLAB, WinAVR, AtmelStudio.
Как начать программировать микроконтроллеры в 2021 году | CyberStar
Что может быть лучше для компьютерного энтузиаста, чем поработать с железом, запрограммировать его и сразу увидеть результат. Это позволяет делать набор Arduino – микроконтроллер Arduino и различные электронные компоненты: светодиоды, резисторы, сервопривод, мотор, кнопку, жидкокристаллический экран, пьезоэлемент, датчики и другие.
Что это вообще, Arduino?
Arduino UNO R3 – это один из самых известных микроконтроллеров и сейчас его легко найти в продаже. Проще говоря, это электронная плата с портом для подключения к компьютеру и портами для подключения внешних компонентов. И прямо на эту плату можно напрямую загружать программы, которые вы напишите на компьютере
Вот такой онВот такой он
Как начать?
Все просто – покупаете набор микроконтроллера с другими компонентами и начинаете работу. Я не буду в статье упоминать конкретный набор, чтобы это не выглядело рекламой, но могу подсказать в комментариях. Вот такой у меня:
Как же тут много всегоКак же тут много всего
Конечно, сначала непонятно что же с этим всем делать, хотя и хочется что-нибудь сделать. Можно пойти на YouTube, в Google, на форумы и т.д. Я же купил книгу, в которой и показано с самого нуля, как делать различные модельки из разных компонентов, как программировать свои изобретения, запускать код на устройстве. Кроме того, с помощью этой книги я, наконец-то начал потихоньку понимать электронные схемы.
Не рекламаКогда пройдете несколько уроков, познакомитесь с платформой, программированием, схемотехникой и можно уже будет импровизировать, пытаться сделать что-то свое. А потом и переходить на другие платформы, например на Ruspberry.
Я давно мечтал поработать с электроникой не на уровне пользователя, а на уровне разработчика на самых низких уровнях. И Ardiuno для меня стало первым шагом к этому. Если вы такой же любитель компьютеров и электроники, то нам по пути 🙂
прошивка AVR через программатор Microchip PicKit2
Если вы, как и я, используете в своих конструкциях как микроконтроллеры PIC, так и чипы AVR, было бы удобно для программирования обеих линеек микросхем использовать один и тот же программатор. Кстати, не так давно Microchip приобрела компанию Atmel и фактически сейчас обе линейки выпускаются одной и той же компанией.
Посему можно предположить окончание многолетнего холивара на тему что же лучше. Оба типа контроллеров имеют свои недостатки и преимущества, но это тема для другой статьи или видеоролика.Случилось так что когда-то давно я, как и многие другие, начал знакомство с миром микроконтроллеров с какой-то конструкции на микроконтроллере PIC16F84. Через много лет я купил свой первый фабричный программатор для контроллеров PIC. Это был фирменный (оригинальный) PicKit2, который я привез с международной конференции Microchip, которая проходила в Питере в 2009 году.
Оригинальный PicKit2
Купил я его тогда на конференции с хорошей скидкой в 50 процентов. Сейчас можно купить клон такого программатора на Алиэкспресс очень дешево и он будет работать не хуже оригинального. Или, в крайнем случае сделать клон программатора самому, например как описано в этой статье.
Китайский клон PicKit2. Можно заказать здесь
Нужно сказать, что программатор PicKit2 уже не поддерживается компанией Microchip (в плане обновления прошивки или управляющей программы) но это не мешает ему отлично работать и по сей день. Сейчас Microchip продвигает более новую версию — PicKit3, который внешне выглядит почти также как и вторая версия. С третьим я пока не имел дела, для моих задач мне вполне хватает второго.
Обычно если мне нужно запрограммировать микроконтроллер Pic я использую программатор PicKit2 с его родной программой PicKit2.61, а если я хочу прошить, например, контроллер ATMega16, то делаю это через программатор USBAsp который можно купить в Китае за полтора доллара.
Китайский UsbAsp
Однако сейчас появилась возможность использовать для прошивки как PIC так и AVR один программатор — Microchip PicKit2 или его клон, с использованием Бесплатной программы AVRDude, которая сейчас поддерживает PicKit2. Несмотря на то, что AVRDude — это консольное приложение и в чистом виде требует от пользователя навыков работы с командной строкой, но сейчас есть очень хорошая программа — оболочка для AVRDude, которая называется AVRDUDESHELL и позволяет очень удобно работать с AVRDude, не заморачиваясь с командной строкой. Фактически, работая в AVRDUDESHELL вы можете вообще не знать о существовании AVRDude. Скачать программу AVRDUDESHELL можно здесь. Сама AVRDude уже входит в состав AVRDUDESHELL и отдельно ее устанавливать не нужно.
Программатор PicKit2 имеет шести контактный разъем. Для программирования микроконтроллеров PIC используются первые пять контактов. Шестой — дополнительный, при программировании пиков он не задействован.
Разъем программирования PicKit2
Назначение выводов:
VPP / MCLR
VDD напряжение питания целевого устройства
VSS земля
ICSPDAT / PGD
ICSPCLK / PGC
AUX
Для программирования контроллеров AVR нам потребуется сделать специальный шлейф и использовать все шесть контактов PicKit2. Шлейф делаем в соответствии с таблицей ниже:
Шлейф может выглядеть например так:
Для работы подключаем PicKit2, шлейфом соединяем его с программируемым устройством (или адаптером микроконтроллера с Zif панелькой), Запускаем AVRDUDESHELL и выбираем в списке программаторов нужный нам PicKit2. Загружаем файл прошивки и программируем контроллер. Всё предельно просто.
Возможно вам потребуется USB драйвер программатора PicKit2. ВЫ можете скачать его по это ссылке. Он входит в состав родной программы Microchip PicKit2 V2.61. На сайте Microchip вы ее уже не найдете, но можете скачать здесь (см. ниже). Эта небольшая программка пригодится вам и для прошивки контроллеров PIC.
Загрузки:
Программа AVRDUDESHELL
Программа Microchip PicKit2 V2.61 со встроенным USB драйвером
Инструментальные средства для 8-битных м/к
DEMO9RS08KA2
Демонстрационная плата DEMO9RS08KA2 — недорогое инструментальное средство поддержки новых микроконтроллеров Freescale на базе ядра RS08KA. Подключайте, загружайте, создавайте. Да, это просто.
DEMO9RS08KA2 включает готовую схему обвязки микроконтроллера и USB интерфейс загрузчика, и позволяет сократить время разработки аппаратного интерфейса устройства и ускорить отладку программного кода.
Отличительные особенности
- Базовый микроконтроллер: MC9RS08KA2 в 8-выводном корпусе DIP, с предустановленной демонстрационной программой
- Лини ввода/вывода общего назначения выведены на штыревой разъем «папа» 2 х 4
- Встроенный USB-to-BDM интерфейс
- 2 кнопки: одна кнопка сброса; одна — пользовательская
- 4 светодиода: один — индикатор питания; три — пользовательских
- Разъем BDM интерфейса
- Встроенный датчик температуры с отрицательным температурным коэффициентом (NTC)
- Выбор источника питания при помощи джампера:
- посредством USB интерфейса, ток до 500 мА
- разъем питания на 9-12 Вольт (тип.)
- Макетное поле
Комплект поставки
- Демонстрационная плата DEMO9RS08KA2
- Три дополнительных образца микроконтроллера MC9RS08KA2 в корпусе DIP-8
- Компакт-диск со средой разработки CodeWarrior и пакетом обновлений
- USB кабель
- Печатная версия руководства пользователя
- Печатная версия инструкции по эксплуотации
- Список комплекта поставки
Документация
DEMO9RS08KA8
Демонстрационная плата DEMO9RS08KA8 предназначена для оценки, демонстрации и отладки работы микроконтроллеров Freescale RS08KA8
DEMO9RS08KA8 включает готовую схему обвязки микроконтроллера и USB интерфейс загрузчика, и позволяет сократить время разработки аппаратного интерфейса устройства и ускорить отладку программного кода.
Отличительные особенности
- Базовый микроконтроллер: MC9RS08KA8 в 20-выводном корпусе DIP, с предустановленной демонстрационной программой
- Лини ввода/вывода общего назначения выведены на штыревой разъем «мама» 2 х 18
- Встроенный USB-to-BDM интерфейс
- Интерфейс RS-232
- 3 кнопки: одна кнопка сброса; две — пользовательских
- 3 светодиода: один — индикатор питания; два — пользовательских
- Потенциометр, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- Фоторезистор, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- Выбор источника питания при помощи джампера:
- посредством USB интерфейса
- разъем питания на 12 Вольт (тип. )
Комплект поставки
- Демонстрационная плата DEMO9RS08KA8
- Компакт-диск со средой разработки CodeWarrior Специальное Издание
- Компакт-диск с системным ПО от компании SofTec Microsystems
- USB кабель
- Регистрационная карточка
- Печатная версия руководства пользователя
- Печатная версия инструкции по эксплуотации
Документация
USBSPYDER08
USBSPYDER08 — внутрисхемный отладчик с USB интерфейсом для микроконтроллеров Freescale семейств MC9RS08KA, MC9S08QD и MC9S08QG. Устройство позволяет загружать программный код в микроконтроллер и осуществлять такие отладочные функции как исполнение кода в маштабе реального времени, пошагово и с точками останова.
USBSPYDER08 поставлеятся с предустановленным в 8-выводную панельку микроконтроллером MC9RS08QG4, который может быть заменен любым микроконтроллером MC9RS08KA, MC9S08QD или MC9S08QG в корпусе DIP-8. А благодаря встроенному BDM интерфейсу (Background Debug Mode — Режим Фоновой Отладки), отладчик может поддерживать внешние микроконтроллеры в любых корпусах.
USBSPYDER08 совместно со средой разработки CodeWarrior, поддерживающей такие функции как редактор, ассемблер, Си-компилятор и отладчик, обеспечивает полный набор инструментов для написания, компиляции, загоузки, внутрисхемной эмуляции и отладки кода программы пользователя. Полноскоростной режим исполнения кода позволяет тестировать аппаратное и программное исполнение в режиме реального времени.
Отличительные особенности
- Рабочая частота до 10 МГц
- Панелька под корпус DIP-8 для автономной работы с целевым микроконтроллером MC9RS08KA, MC9S08QD или MC9S08QG
- DBM интерфейс для поддержки внешнего микроконтроллера
- Установка аппаратных режимов без помощи джамперов
- USB интерфейс для связи с компьютером
- Разъем доступа к линиям ввода/вывода микроконтроллера
- Поддержка интегрированной среды разработки CodeWarrior (единый интерфейс пользователя для всех отладочных средств Freescale) с поддержкой функций редактора, ассемблера, Си-компилятора, загрузчика и отладчика
USBSPYDER08 поддерживает все микроконтроллеры семейств RS08KA, S08QD и S08QG — программно и аппаратно совместимые низкопроизводительные микроконтроллеры Freescale. |
Комплект поставки
- Плата USB отладчика USBSPYDER08
- Интегрированная среда разработки CodeWqrrior 5.1 Специализированное издание
- Печатиная версия руководства пользователя
- Печатиная версия инструкции по эксплуотации
- Дополнительное ПО от компании Softec Microsystems
Документация
USB BDM MULTILINK
USB BDM MULTILINK производства P&E Microcomputer Systems — простой в использовании инструмент отладки и программирования микроконтроллеров Freescale семейств HCS08, HC(S)12(X), RS08 и ColdFire V1. USB BDM MULTILINK представляет собой аппаратный интерфейс между USB портом компьютера и BDM (Background Debug Mode — Режим Фоновой Отладки) портом отлаживаемого микроконтроллера. При помощи USB BDM MULTILINK пользователь может оценить все преимущества режима фоновой отладки — возможность останавить работу микроконтроллера и переключить управление на компьютер; прямой контроль выполнения кода программы; запись/чтение значений регистров и памяти; модификация программного кода непосредственно в микроконтроллере; программирование устройств внутренней и внешней FLASH памяти.
Аппартные особенности
- Полноскоростной USB 2.0 интерфейс
- Внутрисхемная отладка в режиме реального времени посредством BDM интерфейса
- Высокоскоростное внутрисхемное программирование FLASH памяти
- Компактные размеры (примерно 77 х 50 х 19 мм)
- Поддерживает микроконтроллеры различным напряжением питания в диапазоне 1.8…5.5 Вольт
Программная поддержка
- Внутрисхемный загрузчик FLASH памяти компании P&E для микроконтроллеров HCS08/HC(S)12(X)/RS08
- Внутрисхемный отладчик компании P&E для микроконтроллеров HCS08/HC(S)12(X)/RS08
- Программный пакет разработчика компании P&E для микроконтроллеров HCS08/HC(S)12(X)/RS08
- Среда разработки CodeWarior компании Freescale
- ПО сторонних производителей
Документация
DEMO9RS08LE4
Недорогой демонстрационный набор DEMO9RS08LE4 содержит все необходимое для разработки и отладки программного кода приложения. Интегрированный интерфейс USB позволяет пользователю организовать связь между компьютером и демонстрационной платой при помощи простого USB кабеля.
Отличительные особенности
- Базовый микроконтроллер MC9RS08LE4 в корпусе SOIC-28
- 112-сегментный ЖКИ с прямым подключением к микроконтроллеру
- Интегрированный интерфейс USB-to-DBM (Background Debug Mode — Режим Фоновой Отладки) компании P&E
- Интегрированный стабилизатор напряжения +5 Вольт
- Выбор источника питания при помощи джампера
- 3 кнопки: одна кнопка сброса; две — пользовательских
- 6 светодиодов: четыре пользовательских; индикатор питания; индикатор связи по USB
- Зуммер на 2.3 кГц
- Терморезистор с отрицательным температурным коэффициентом
- Опциональное отключение пользовательской периферии при помощи джамперов
- 32-выводной разъем линий ввода/вывода
- Разъем питания, d = 2.00 мм, 9 Вольт (тип.) / 7 Вольт (мин.)
- Макетное поле 13 х 13 отверстий с шагом 2.54 мм
- USB порт
- RS-232 порт
Документация
DEMO9RS08LA8
Недорогой демонстрационный набор DEMO9RS08LE4 содержит все необходимое для разработки и отладки программного кода приложения. Интегрированный интерфейс USB позволяет пользователю организовать связь между компьютером и демонстрационной платой при помощи простого USB кабеля.
Отличительные особенности
- Базовый микроконтроллер MC9RS08LA8 в корпусе LQFP-48
- 168-сегментный ЖКИ с прямым подключением к микроконтроллеру
- Интегрированный интерфейс USB-to-DBM (Background Debug Mode — Режим Фоновой Отладки) компании P&E
- Интегрированный стабилизатор напряжения +5 Вольт
- Выбор источника питания при помощи джампера
- 3 кнопки: одна кнопка сброса; две — пользовательских
- Датчик света с фильтром нижних частот и операционным усилителем
- Датчик температуры
- Опциональное отключение пользовательской периферии при помощи джамперов
- 40-выводной разъем линий ввода/вывода
- Разъем питания, d = 2.00 мм, 9 Вольт (тип.) / 7 Вольт (мин.)
- USB порт
- RS-232 порт
Документация
DEMOQE
DEMOQE — недорогая отладочная плата для программирования, отладки и демонстрации работы микроконтроллеров Freescale серий S08QB, S08QE и MCF51QE.
DEMOQE поставляется в комплекте с одной из дочерних плат с установленным микрооконтроллером:
- Дочерняя плата DC9S08QB8 — для м/к MC9S08QB8
- Дочерняя плата DC9S08QE8 — для м/м MC9S08QE8
- Дочерняя плата DC9S08QE32 — для м/м MC9S08QE32
- Две дочернии платы: для м/к MC9S08QE128 и MCF51QE128
Реализованная на плате схема отладчика Embedded Multilink компании P&E позволяет подавать напряжение питания, программировать и отлаживать работу микроконтроллера непосредственно с компьютера через стандартный USB кабель.
Отличительные особенности
- Встроенный логический анализатор
- Встроенный виртуальный последовательный порт
- Встроенный /загрузчикотладчик USB Embedded Multilink компании P&E
- Порт RS-232
- Последовательный интерфейс микроконтроллера SCI подключается к Embedded Multilink при помощи джамперов
- Переключатель вкл./выкл. питания платы со светодиодом индикации
- Разъем питания от внешнего источника 5…12 Вольт постоянного тока
- Выбор источника электропитания при помощи джамперов:
- Через USB кабель — 5 Вольт, 500 мА (макс.)
- От внешнего блока питания 5…12 Вольт
- От двух батареек AAA, через стабилизатор напряжения на 3.0 или 2.1 Вольта
- Кнопка сброса со светодиодом индикации
- Схема подключения внешнего кварцевого резонатора (без компонентов)
- 3-осевой датчик ускорения, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- 8 пользовательских светодиодов, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- 4 пользовательских кнопки, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- Пьезо зумер, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
- Потенциометр на 10 кОм, с возможностью подключения/отключения к микроконтроллеру при помощи джампера
Комплект поставки
- Безовая отладочная плата DEMOQE с соответствующей дочерней платой
- Компакт диск с документацией и ПО
- USB кабель
- Комплект двух батареек AAA
- Печатная версия руководства пользователя
- Гарантийный талон компании Freescale
Документация
CodeWarriorTM
Среда разработки CodeWarriorTM Development Studio версии 6.2 — мощное, интегрированное средство разработки, позволяющее в минимальные сроки создавать проекты на базе микроконтроллеров RS08, HC(S)08 и ColdFire V1 — представителях серии взаимозаменяемых 8- и 32-битных микроконтроллеров Fresscale Controller Continuum. Какая бы задача разработки ни стояла — простое, 8-битное решение нижнего уроня (например, датчик дыма), или мощное, 32-битное приложение (например, панель управления системой пожарной безопасности), — CodeWarriorTM предлагает полный набор инструментов для достижения максимальной производительности и использования всех приимуществ микроконтроллеров Freescale Semiconductor.
Важно. Этот продукт поддерживается Microsoft® Windows Vista®
- Vista Home Premium Edition (32-bit)
- Vista Business Edition (32-bit)
Отличительные особенности
- Запуск нового проекта всего за семь кликов мыши
- Перенос проекта с одного ядра на другое всего за четыре клика мыши
- Оптимизированный ассемблер/компилятор C/C ++, для ядер HC(S)08, RS08 и ColdFire V1
- Отладчик системного уровня с графическим интерфейсом
- Поддержка трассировки на кристалле, для ядер HCS08 и ColdFire V1
- Поддержка программирования FLASH памяти
- Поддержка полной симуляции кристалла, для ядер HC(S)08, RS08 и ColdFire V1
- Визуализация данных
- Возможность генерации кода инициализации ЦПУ и периферии, для ядер HC(S)08, RS08 и ColdFire V1
- Более 150 готовых проектов на ассемблере и Си, с возможностью использования в качестве шаблона для новых проетов.
- Анимированные обущающие пособия по работе с проектом в CodeWarriorTM
- Руководство по миграции с 8-битного ялра HCS08 на 32-битную платформу ColdFire V1.
Системные требования
- 1 ГГц Pentium®-совместимый процессор, или выше
- Microsoft Windows® 2000/XP/Vista (32-bit)
- 512 МБ RAM (1 ГБ — рекомендуется)
- Как минимум 600 МБ свободнгого дискового пространства
- Привод CD-ROM
- Порт USB для связи с целевым устройством
- (Опционально) Порт Ethernet для связи с целевым устройством
Документация
DEMO9S08LL16 — недорогой демонстрационный набор, предлагающий разработчику все необходимое для создания и отладки программного кода приложения. Интегрированный интерфейс USB Multilink обеспечивает связь между демонстрационной платой и установленным на ней микроконтроллером и компьютером пользователя по простому USB кабелю.
Отличительные особенности
- Базовый микроконтроллер MC9S08LL16 в корпусе LQFP-64
- Интегрированный интерфейс USB-BDM компании P&E
- Встроенный стабилизатор напряжения на +5 Вольт
- Держатель ионно-литиевой батареи
- Выбор источника питания при помощи джампера
- Пять кнопок: 4 — пользовательских; 1 — кнопка сброса
- Десять светодиодов: 8 — пользовательских; 1 — индикатор питания; 1 — индикатор связи по USB интерфейсу
- Встроенный потенциометр на 10 кОм с фильтром нижних частот
- Встроеный датчик света с операционным усилителем
- Отключение периферии при помощи джамперов
- 40-выводной разъем линий ввода/вывода микроконтроллера
- Разъем для подключения блока питания
- Разъем интерфейса USB
- Разъем интерфейса RS-232
Документация
DEMOAC — отладочная платформа, поддерживающая линейку взаимозаменяемых 8-битных, семейство MC9S08AC, и 32-битных, семейство MCF51AC, микроконтроллеров Freescale серии Flexis™ AC. Плата поставляется в комплекте с двумя сменными микроконтроллерными модулями, обеспечивая простоту переноса проекта между 8-ми и 32-х битными ядрами.
Отличительные особенности
Сменный модуль микроконтроллера MC9S08AC128
- 8-битное ядро HCS08
- 128 КБайт FLASH памяти
- 8 КБайт RAN памяти
Сменный модуль микроконтроллера MCF51AC256
- 32-битное ядро ColdFire V1
- 256 КБайт FLASH памяти
- 32 КБайт RAN памяти
Базовая плата
- Интегрированный интерфейс USB BDM
- Кнопка включения/выключения питания
- Выбор источника питания при помощи джампера
- встроенный стабилизатор напряжения на 5 Вольт
- USB интерфейс
- внешний блок питания
- Кварцевый генератор на 4 МГц
- 3-осевой датчик ускорения
- Шесть светодиодов: 4 — пользовательских; 1 — индикатор питания; 1 — индикатор сброса
- Пять кнопок: 4 — пользовательских; 1 — кнопка сброса
- Потенциометр на 5 кОм
- Возможность подключения/отключения пользовательской периферии при помощи джамперов
- 80-выводной разъем линий ввода/вывода микроконтроллера
Комплект поставки
- Базовая плата DEMOAC
- Сменный модуль с микроконтроллером MC9S08AC128
- Сменный модуль с микроконтроллером MCF51AC256
- Внешний блок питания
- DVD-диск со средой разработки CodeWarrior™
- Печатная версия руководства пользователя
- Печатная версия инструкции по эксплуатации
Документация
EVBQE128 — отладочная плата, позволяющая разрабатывать, отлаживать и тестировать работу приложения на базе взаимозаменяемых микроконтроллеров серии Flexis™ MC9S08QE12 и MCF51QE128. EVBQE128 может работать как независимое устройство или подключаться к компьютеру посредством встроенного интерфейса microDART™.
Отличительные особенности
1. Секция микроконтроллера
- Панелька с нулевым усилием под корпус LQFP-80 для микроконтроллеров MC9S08QE128 или MCF51QE128
- Кварцевый резонатор с возможностью отключения при работе с внешним источником тактового сигнала
- Разъем BDM интерфейса для внутрисхемного программирования и отладки с помощью внешнего устройства
- Разъем для внешнего вывода всех сигналов микроконтроллера
2. Секция электропитания
- Разъем питания (d = 2.1 мм) для внешнего 12-вольтового источника
- Дополнительный 4-выводной разъем для специализированного внешнего источника питания
- Выбор источника питания (USB шина или внешний блок питания) при помощи джампера
- Кнопка включения/выключения питания
3. Секция интерфейса microDART™
- Модуль microDART™ обеспечивает связь между микроконтроллером на отладочной плате и компьютером пользователя посредством стандартного USB интерфейса, реализуя функции внутрисхемного программатора и отладчика. Помимо этого, при подключении USB кабеля к компьютеру, microDART™ автоматически создает «виртуальный» COM-порт, поддерживающий последовательный обмен данными между микроконтроллером и ПК.
4. Секция устройств ввода/вывода
- Пять кнопок: 4 — пользовательских; 1 — кнопка сброса
- Потенциометр на 1 кОм
- Пьезоэлектрический зуммер
- Датчик освещенности
- Датчик температуры
- Десять пользовательских светодиода
- Схема поддержки внешнего ЖКИ
5. Секция интерфейса RS-232
- Два порта интерфейса RS-232 с возможностью подключения/отключения при помощи джампера
Комплект поставки
- Отладочная плата EVBQE128
- Комплект микроконтроллеров MC9S08QE128 и MCF51QE128 в корпусе LQFP-80
- USB-кабель
- Вакуумный пинцет
- Универсальный блок питания на 12 Вольт
- DVD-диск с программным обеспечением, включая среду разработки CodeWarrior™
- Печатная версия руководства пользователя
Документация
DEMO9S08SE8 — демонстрационнная плата для 8-битного микроконтроллера MC9S08SE8, позволяет заметно упростить и ускорить процесс разработки благодаря интегрированному модулю USB-BDM интерфейса, обеспечивающего внутрисхемное программирование и отладку микроконтроллера, удобному программному обеспечению CodeWarrior™ и готовым примерам кода программ. 40-выводной разъем обеспечивает связь между линиями ввода/выода микроконтрорллера, расположенного на плате, и внешними устройствами.
Отличительные особенности
- Базовый микроконтроллер MC9S08SE8 в корпусе SOIC-28
- Интегрированный интерфейс USB-BDM
- Последовательный интерфейс RS-232
- Контактные площадки для тактового генератора на 32.768 кГц
- Выбор источника питания при помощи джамперов
- шина USB
- встроенный стабилизатор напряжения на +5 Вольт
- внешний блок питания 7…18 Вольт постоянного тока
- Три кнопки: 2 — пользовательских; 1 — кнопка сброса
- Три светодиода: 2 — пользовательских; 1 — индикатор питания
- Разъем для внешнего блока питания, d = 2.00 мм
- Разъем интерфейса RS-232, тип DB9
- Разъем интерфейса USB, тип USB-B
- Разъем для подключения к линиям ввода/вывода микроконтроллера
Документация
DEMO9S08SH8/32 — демонстрационнная плата для 8-битных микроконтроллеров семейства S08SH, позволяет заметно упростить и ускорить процесс разработки благодаря интегрированному модулю USB-BDM интерфейса, обеспечивающего внутрисхемное программирование и отладку микроконтроллера, удобному программному обеспечению CodeWarrior™ и готовым примерам кода программ. 40-выводной разъем обеспечивает связь между линиями ввода/выода микроконтрорллера, расположенного на плате, и внешними устройствами.
Отличительные особенности
- Базовый микроконтроллер MC9S08SH8 или MC9S08Sh42
- Интегрированный интерфейс USB-BDM
- Последовательный интерфейс RS-232
- Выбор источника питания при помощи джамперов
- шина USB
- встроенный стабилизатор напряжения на +5 Вольт
- внешний блок питания 6…18 Вольт постоянного тока
- Три кнопки: 2 — пользовательских; 1 — кнопка сброса
- Семь светодиодов: 2 — пользовательских; 1 — индикатор питания; 1 — индикатор питания USB
- Потенциометр на 5 кОм с фильтром нижних частот
- Датчик освещенности с операционным усилителем
- Разъем для внешнего блока питания, d = 2.00 мм
- Разъем интерфейса RS-232, тип DB9
- Разъем интерфейса USB, тип USB-B
- Разъем для подключения к линиям ввода/вывода микроконтроллера
Документация
DEMO9S08QD4 — демонстрационнная плата для 8-битных микроконтроллеров семейства S08QD, позволяет заметно упростить и ускорить процесс разработки благодаря интегрированному модулю USB-BDM интерфейса, обеспечивающего внутрисхемное программирование и отладку микроконтроллера, удобному программному обеспечению CodeWarrior™ и готовым примерам кода программ. 32-выводной разъем обеспечивает связь между линиями ввода/выода микроконтрорллера, расположенного на плате, и внешними устройствами.
Отличительные особенности
- Базовый микроконтроллер MC9S08QD4
- Интегрированный модуль USB-BDM
- Работа от 3.3- или 5-вольтового источника питания
DEMO9S08QA4 — демонстрационнная плата для 8-битных микроконтроллеров семейства S08QA, позволяет заметно упростить и ускорить процесс разработки благодаря интегрированному модулю USB-BDM интерфейса, обеспечивающего внутрисхемное программирование и отладку микроконтроллера, удобному программному обеспечению CodeWarrior™ и готовым примерам кода программ. 32-выводной разъем обеспечивает связь между линиями ввода/выода микроконтрорллера, расположенного на плате, и внешними устройствами.
Отличительные особенности
- Базовый микроконтроллер MC9S08QA4
- Интегрированный модуль USB-BDM
- Контактные площадки для тактового генератора на 32.768 кГц
- Интерфейс RS-232
- Интерфейс I2C
- Выбор источника питания при помощи джампера
- внутренний стабилизатор напряжения
- USB-BDM модуль
- внешний блок питания
- Три кнопки: 2 — пользовательских; 1 — кнопка сброса
- Три светодиода: 1 — индикатор питания; 2 — индикатор работы USB-BDM
- Потенциометр на 5 кОм
- Фотодиод
Комплект поставки
- Демонстрационная плата DEMO9S08QA4
- Компакт-диск со ПО CodeWarrior™
- USB кабель
- Руководство пользователя
Документация
DEMO9S08JS16 — недорогой отладочный набор, позволяющий значительно упростить и ускорить процесс разработки устройств на базе микроконтроллеров MC9S08JS16/8. Набор состоит из базовой платы DEMOJM и съемного модуля с установленным микроконтроллером MC9S08JS16 и служит для демонстрации возможностей микроконтроллера, в первую очередь — встроенного полноскоростного USB 2.0 контроллера устройства. Интегрированная на демонстрационной плате схема USB-BDM (Background Debug Mode — режим фоновой отладки) позволяет программировать и отлаживать микроконтроллер посредством стандартного USB кабеля.
Отличительные особенности
- Встроенный логический анализатор
- Встроенный виртуальный последовательный порт
- USB порт (разъем Mini-AB USB) с поддержкой режимов USB-устройство и USB-хост
- Модуль интерфейса CAN
- Разъем для внешнего блока питания на 6 вольт (тип.)
- 3-осевой датчик ускорения
- Пьезо зуммер
- Схема подтягивающих резисторов для I2C интерфейса
- Потенциометр на 10 кОм
- Кнопка включения/выключения птания
- 5 кнопок: 4 — пользовательских; 1 — кнопка сброса
- 11 светодиодов: 8 — пользовательских; 1 — индикатор питания; 1 — индикатор сброса; 1 — индикатор связи по USB
Документация
DEMOJM — недорогой отладочный набор для взаимозаменяемых 8- и 32-битных USB микроконтроллеров серии Flexis™ JM. Набор содержит базовую плату DEMOJM, один съемный модуль с 8-битным микроконтроллером MC9S08JM60 и один съемный модуль с 32-битным микроконтроллером MCF51JM128. Начав работу с MC9S08JM60, пользователь сможет оценить работу USB контроллера в режиме устройства, а заменив его на MCF51JM128 — в режимах USB-устройство и USB-хост. Возможности USB интерфейса поддерживаются на аппаратном уроне разъемом mini-AB, и на программном уровне интегрированным стеком протоколов USB-LITE компании CMX. Реализованная на плате схема Embedded Multilink компании P&E обеспечивает возможность программирования и отладки микроконтроллера с компьютера пользователя посредством стандартного USB кабеля, а также электропитание платы от USB шины.
Отличительные особенности
- Встроенный логический анализатор
- Встроенный виртуальный последовательный порт
- Порт USB (разъем mini-AB) с поддержкой режимов USB-устройство и USB-хост
- Схема Embedded Multilink компании P&E
- Сигналы последовательного коммуникационного интерфейса микроконтроллера (SCI) подключаются к Embedded Multilink при помощи джаамперов
- Приемопередатчик интерфейса CAN
- 3-осевой датчик ускорения
- Схема подтягивающих резисторов для интерфейса I2C
- Пьезо зуммер
- Потенциометр на 10 кОм
- Кнопка включения/выключения питания
- Кнопка сброса
- Разъем питания для внешнего источника 6…12 Вольт постоянного тока
- Выбор источника питания при помощи джамперов:
- от схемы Embedded Multilink к LDO стабилизатору напряжения
- от внешнего блока питания к LDO стабилизатору напряжения
- от USB шины (разъем mini-AB)
- от разъема MCU_PORT
- Десять светодиодов: 8 — пользовательских; 1 — индикатор питания; 1 — индтикатор сброса
- Четыре пользовательских кнопки
Комплект поставки
- Базовая плата DEMOJM
- Съемный модуль с 8-битным микроконтроллером MC9S08JM60 в корпусе LQFP-64
- Съемный модуль с 32-битным микроконтроллером MCF51JM128 в корпусе LQFP-64
- DVD-диск с ПО и документацией
- Стек протоколов USB-LITE компании CMX
- USB кабель A-B
- Набор USB mini-AB
- Вакуумный пинцет
- Печатная версия рукаводства пользователя
- Гарантийный талон компании Freescale
Документация
DEMO9S08JM16 — недорогой отладочный набор для 8-битных USB микроконтроллеров серии MC9S08JM. Набор содержит базовую плату DEMOJM и один съемный модуль с 8-битным микроконтроллером MC9S08JM16, и позволяет оценить работу USB контроллера в режиме устройства. Возможности USB интерфейса поддерживаются на аппаратном уроне разъемом mini-AB, и на программном уровне интегрированным стеком протоколов USB-LITE компании CMX. Реализованная на плате схема Embedded Multilink компании P&E обеспечивает возможность программирования и отладки микроконтроллера с компьютера пользователя посредством стандартного USB кабеля, а также электропитание платы от USB шины.
Отличительные особенности
- Встроенный логический анализатор
- Встроенный виртуальный последовательный порт
- Порт USB (разъем mini-AB) с поддержкой режима USB-устройство и USB-хост
- Схема Embedded Multilink компании P&E
- Сигналы последовательного коммуникационного интерфейса микроконтроллера (SCI) подключаются к Embedded Multilink при помощи джамперов
- Приемопередатчик интерфейса CAN
- 3-осевой датчик ускорения
- Схема подтягивающих резисторов для интерфейса I2C
- Пьезо зуммер
- Потенциометр на 10 кОм
- Кнопка включения/выключения питания
- Кнопка сброса
- Разъем питания для внешнего источника 6…12 Вольт постоянного тока
- Выбор источника питания при помощи джамперов:
- от схемы Embedded Multilink к LDO стабилизатору напряжения
- от внешнего блока питания к LDO стабилизатору напряжения
- от USB шины (разъем mini-AB)
- от разъема MCU_PORT
- Десять светодиодов: 8 — пользовательских; 1 — индикатор питания; 1 — индтикатор сброса
- Четыре пользовательских кнопки
Комплект поставки
- Базовая плата DEMOJM
- Съемный модуль с 8-битным микроконтроллером MC9S08JM16
- DVD-диск с ПО и документацией
- Стек протоколов USB-LITE компании CMX
- USB кабель A-B
- Набор USB mini-AB
- Вакуумный пинцет
- Печатная версия рукаводства пользователя
- Гарантийный талон компании Freescale
Документация
Программирование микроконтроллеров для начинающих: легко и доступно
Всё популярнее становится тема электронного конструирования. Предлагаем вашему вниманию статью, которая расскажет, что такое программирование микроконтроллеров для начинающих.
Какие микроконтроллеры существуют?
Прежде всего, необходимо обрисовать ситуацию с микроконтроллерами. Дело в том, что они выпускаются не одной фирмой, а сразу несколькими, поэтому существует довольно много различных микроконтроллеров, которые имеют разные параметры, разные особенности при использовании и различные возможности. Различаются они по скорости быстродействия, дополнительным интерфейсам и количеству выводов. Самыми популярными на всем пространстве бывшего СССР являются представители РІС и AVR. Программирование микроконтроллеров AVR и РІС не составляет труда, что и обеспечило их популярность.
Как микроконтроллеры программируются?
Программирование микроконтроллеров осуществляется, как правило, с помощью специальных приспособлений, которые называются программаторами. Программаторы могут быть или покупными или самодельными. Но при прошивке микроконтроллера с помощью самодельного программатора шанс того, что он превратится в «кирпич», довольно высокий. Есть ещё один вариант, который можно рассмотреть на примере платы «Ардуино». Плата работает на МК фирмы Atmel, и в ней осуществляется программирование микроконтроллеров AVR. В плате уже есть заранее прошитый бутлоадер и порт USB, которые позволяют безопасно прошить используемый микроконтроллер, не давая пользователю доступа к данным, что могут этот самый МК вывести из строя. Программирование микроконтроллеров для начинающих не так сложно, как может показаться, и при определённой сноровке и сообразительности избавит вас от необходимости ехать за новым механизмом.
Аппаратные различия разных микроконтроллеров
При выборе микроконтроллеров следует обратить внимание на некоторые аппаратные различия даже не разных компаний, а и в одном модельном ряду. Для начала следует обратить внимание на возможность перезаписи информации на микроконтроллер. Эта функция позволит вам долго экспериментировать с одним МК. Также обратите внимание на количество выводов с их предназначением. Не обделяйте вниманием и частоту работы кристалла, на котором работает схема: от неё зависит количество операций в секунду, которые может выполнить микроконтроллер. При осмотре этих характеристик, а также памяти МК сначала может показаться, что на микроконтроллерах ничего толкового не сделаешь, но это ошибочное мнение. Помните, что программирование микроконтроллеров для начинающих не требует самой лучшей техники вначале, но про запас вы можете взять и что-то более мощное.
Языки программирования микроконтроллеров
В качестве языков программирования микроконтроллеров используется два: С/С++ и ассемблер. Каждый из них имеет свои преимущества и недостатки. Так, если говорить про ассемблер, то он даёт возможность сделать всё очень тонко и качественно, особенно важно это, когда не хватает оперативной памяти или оперативных мощностей (что, впрочем, довольно редко происходит). Но его изучение и написание программ на нём требует довольно много усилий, пунктуальности и времени. Поэтому для разработок на основе микроконтроллеров часто используют языки программирования С и С++. Они являются более понятными, по своему виду и структуре они близки человеческой речи, хотя и не представляют из себя её в полноценном понимании. Также они имеют очень хорошо проработанный функционал, который может запросто взаимодействовать с аппаратной частью, представляя, что это всего лишь элемент программы. При всех своих явных преимуществах на С и С++ создают более объемные программы, нежели на ассемблере.
Также в отдельных случаях, когда критичным является используемое оперативное пространство, можно соединить эти языки. Почти все среды разработки для С и С++ имеют возможность установки в программу ассемблерных вставок. Поэтому в случае возникновения проблемы на критическом участке можно написать ассемблерную вставку и интегрировать её в прошивку для микроконтроллера, а саму прошивку, точнее, большую её часть, написать на С или С++. Программирование микроконтроллеров на СИ является более лёгким, поэтому многие выбирают именно эти языки. Но те, кто не боится трудностей и хочет понять особенность работы аппаратуры, могут попробовать свои силы и с ассемблером.
Напутствие
Если появилось желание поэкспериментировать с микроконтроллерами, это прекрасно. Можно только посоветовать запастись терпением и настойчивостью, и тогда любые цели, поставленные перед изобретателем, окажутся осуществимыми. Программирование микроконтроллеров для начинающих и для опытных людей выглядит по-разному: что для начинающих сложно, то для опытных – рутина. Главное – помнить, что всё, что не противоречит законам физики, является осуществимым и решаемым.
Программатор для pic контроллеров из usb шнура. Как программировать PIC микроконтроллеры или Простой JDM программатор. Эксперименты с микроконтроллерами
Рассказать в:Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей – не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом – как его запрограммировать. Одним из самых простых вариантов программаторов является 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-контроллеров , а тот материал что удаётся найти – очень сомнительного качества. Конечно, можно купить заводской программатор за неадекватную цену и шить сколько душе угодно, но что делать, если человек не занимается серийным производством. Для этих целей можно собрать несложную и не дорогую в реализации самоделку , именуемую JDM-программатором по приведенной ниже схеме (рисунок №1):
Рисунок №1 – схема программатора
Сразу привожу перечень элементов для тех, кому лень всматриваться в схему:
- R1 – 10 кОм
- R2 – 10 кОм (подстроченный). Регулировкой сопротивления данного резистора нужно добиться около 13В на выводе №4 (VPP) во время программирования. В моём случае сопротивление составляет 1,2 кОм
- R3 – 200 Ом
- R4, R5 – 1,5 кОм
- VD1, VD2, VD3, VD4, VD6 – 1N4148
- VD5 – 1N4733A (Напряжение стабилизации 5,1В)
- VD7 – 1N4743A (Напряжение стабилизации 13В)
- C1 – 100 нФ (0,1 мкФ)
- C2 – 470 мкФ х 16 В (электролитический)
- SUB-D9F – разъём СОМ-порта (МАМА или РОЗЕТКА)
- Панелька DIP8 – зависит от используемого вами контроллера
В схеме использован пример подключения таких распространённых контроллеров, как PIC12F675 и PIC12F629 , но это совсем не значит, что прошивка других серий PIC будет невозможна. Чтобы записать программу в контроллер другого типа, достаточно перекинуть провода программатора в соответствии с рисунком №2, который приведён ниже.
Рисунок №2 – варианты корпусов PIC-контроллеров с необходимыми выводами
Как можно догадаться, в схеме моего программатора использован корпус DIP8 . При большом желании можно изготовить универсальный переходник под каждый тип микросхемы, получив тем самым универсальный программатор. Но так как с PIC-контроллерами работаю редко, для меня хватит и этого.
Хоть сама схема довольно проста и не вызовет трудностей в сборке, но она тоже требует уважения. Поэтому неплохо было бы сделать под неё печатную плату. После некоторых манипуляций с программой SprintLayout , текстолитом, дрелью и утюгом, на свет родилась вот такая заготовка (фото №3).
Фото №3 – печатная плата программатора
Скачать исходник печатной платы для программы SprintLayout можно по этой ссылке:
(скачиваний: 670)
При желании его можно изменить под свой тип PIC-контроллера. Для тех, кто решил оставить плату без изменений, выкладываю вид со стороны деталей для облегчения монтажа (рисунок №4).
Рисунок №4 – плата с монтажной стороны
Ещё немного колдовства с паяльником и мы имеем готовое устройство, способное прошить PIC-контроллер через COM-порт вашего компьютера. Ещё тёпленький и не отмытый от флюса результат моих стараний показан на фото №5.
Фото №5 – программатор в сборе
С этого момента, первый этап на пути к прошивке PIC-контроллера , подошёл к концу. Второй этап будет включать в себя подключение программатора к компьютеру и работу с программой IC-Prog .
К сожалению, не все современные компьютеры и ноутбуки способны работать с данным программатором ввиду банального отсутствия на них COM-портов , а те что установлены на ноутбуках не выдают необходимые для программирования 12В . Так что я решил обратится к своему первому ПК , который давным-давно пылился и ждал своего звёздного часа (и таки дождался).
Итак включаем компьютер и первым делом устанавливаем программу IC-Prog . Скачать её можно с сайта автора или по этой ссылке:
(скачиваний: 769)
Подключаем программатор к COM-порту и запускаем только что установленное приложение. Для корректной работы необходимо выполнить ряд манипуляций. Изначально необходимо выбрать тот тип контроллера, который собираемся шить. У меня это PIC12F675 . На скриншоте №6 поле для выбора контроллера выделено красным цветом.
Скриншот №6 – выбор типа микроконтроллера
Скриншот №7 – настройка метода записи контроллера
В этом же окне переходим во вкладку “Программирование ” и выбираем пункт “Проверка при программировании “. Проверка после программирования может вызвать ошибку, так как в некоторых случаях самой прошивкой устанавливаются фьюзы блокировки считывания СР . Чтобы не морочить себе голову данную проверку лучше отключить. Короче следуем скриншоту №8.
Скриншот №8 – настройка верификации
Продолжаем работу с этим окном и переходим на вкладку “Общие “. Здесь необходимо задать приоритет работы программы и обязательно задействовать NT/2000/XP драйвер (скриншот №9). В некоторых случаях программа может предложить установку данного драйвера и потребуется перезапуск IC-Prog .
Скриншот №9 – общие настройки
Итак, с этим окном работа окончена. Теперь перейдём к настройкам самого программатора. Выбираем в меню “Настройки”->”Настройки программатора ” или просто нажимаем клавишу F3 . Появляется следующее окно, показанное на скриншоте №10.
Скриншот №10 – окно настроек программатора
Первым делом выбираем тип программатора – JDM Programmer . Далее выставляем радиокнопку использования драйвера Windows . Следующий шаг подразумевает выбор COM-порта , к которому подключен ваш программатор. Если он один, вопросов вообще нет, а если более одного – посмотрите в диспетчере устройств, какой на данным момент используется. Ползунок задержки ввода/вывода предназначен для регулирования скорости записи и чтения. Это может понадобится на быстрых компьютерах и при возникновении проблем с прошивкой – этот параметр необходимо увеличить. В моём случае он остался по умолчанию равным 10 и всё нормально отработало.
На этом настройка программы IC-Prog окончена и можно переходить к процессу самой прошивки, но для начала считаем данные с микроконтроллера и посмотрим что в него записано. Для этого на панели инструментов нажимаем на значок микросхемы с зелёной стрелкой, как показано на скриншоте №11.
Скриншот №11 – процесс чтения информации с микроконтроллера
Если микроконтроллер новый и до этого не прошивался, то все ячейки его памяти будут заполнены значениями 3FFF , кроме самой последней. В ней будет содержаться значение калибровочной константы. Это очень важное и уникальное для каждого контроллера значение. От него зависит точность тактирования, которая путём подбора и установки этой самой константы закладывается заводом изготовителем. На скриншоте №12 показана та ячейка памяти, в которой будет храниться константа при чтении контроллера.
Скриншот №12 – значение калибровочной константы
Повторюсь, что значение уникальное для каждой микросхемы и не обязательно должно совпадать с тем, что на рисунке. Многие по неопытности затирают эту константу и в последствии PIC-контроллер начинает некорректно работать, если в проекте используется тактирование от внутреннего генератора. Советую записать эту константу и наклеить надпись с её значением прямо на контроллер. Таким образом вы избежите множество неприятностей в будущем. Итак, значение записано – двигаемся дальше. Открываем файл прошивки, имеющий как правило расширение .hex . Теперь вместо надписей 3FFF , буфер программирования содержит код нашей программы (скриншот №13).
Скриншот №13 – прошивка, загруженная в буфер программирования
Выше я писал, что многие затирают калибровочную константу по неосторожности. Когда же это происходит? Это случается в момент открытия файла прошивки. Значение константы автоматически меняется на 3FFF и если начать процесс программирования, то назад дороги уже нет. На скриншоте №14 выделена та ячейка памяти где ранее была константа 3450 (до открытия hex-файла ).
Микроконтроллеры PIC заслужили славу благодаря своей неприхотливости и качеству работы, а также универсальности в использовании. Но что может дать микроконтроллер без возможности записывать новые программы на него? Без программатора это не больше чем кусочек удивительного по форме исполнения железа. Сам программатор PIC может быть двух типов: или самодельный, или заводской.
Различие заводского и самодельного программаторов
В первую очередь отличаются они надежностью и функциональностью, которую предоставляют владельцам микроконтроллеров. Так, если делается самодельный, то он, как правило, рассчитывается только на одну модель PIC-микроконтроллера, тогда как программатор от Microchip предоставляет возможность работы с различными типами, модификациями и моделями микроконтроллеров.
Заводской программатор от Microchip
Самый известный и популярный – простой программатор PIC, который использует множество людей и известный для многих под названием PICkit 2. Его популярность объясняется явными и неявными достоинствами. Явные достоинства, которые имеет этот USB программатор для PIC, можно перечислять долго, среди них: относительно небольшая стоимость, простота эксплуатации и универсальность относительно всего семейства микроконтроллеров, начиная от 6-выводных и заканчивая 20-выводными.
Использование программатора от Microchip
По его использованию можно найти много обучающих уроков, которые помогут разобраться с всевозможными аспектами использования. Если рассматривать не только программатор PIC, купленный «с рук», а приобретенный у официального представителя, то можно ещё подметить качество поддержки, предоставляемое вместе с ним. Так, в дополнение идут обучающие материалы по использованию, лицензионные среды разработки, а также демонстрационная плата, которая предназначена для работы с маловыводными микроконтроллерами. Кроме всего этого, присутствуют утилиты, которые сделают работу с механизмом более приятной, помогут отслеживать процесс программирования и отладки работы микроконтроллера. Также поставляется утилита для стимулирования работы МК.
Другие программаторы
Кроме официального программатора, есть и другие, которые позволяют программировать микроконтроллеры. При их приобретении рассчитывать на дополнительное ПО не приходится, но тем, кому большего и не надо, этого хватает. Довольно явным минусом можно назвать то, что для некоторых программаторов сложно бывает найти необходимое обеспечение, чтобы иметь возможность качественно работать.
Программаторы, собранные вручную
А теперь, пожалуй, самое интересное – программаторы PIC-контроллеров, которые собираются вручную. Этим вариантом пользуются те, у кого нет денег или просто нет желания их тратить. В случае покупки у официального представителя можно рассчитывать на то, что если устройство окажется некачественным, то его можно вернуть и получить новое взамен. А при покупке «с рук» или с помощью досок объявлений в случае некачественной пайки или механических повреждений рассчитывать на возмещение расходов и получение качественного программатора не приходится. А теперь перейдём к собранной вручную электронике.
Программатор PIC может быть рассчитан на определённые модели или быть универсальным (для всех или почти всех моделей). Собираются они на микросхемах, которые смогут преобразовать сигналы с порта RS-232 в сигнал, который позволит программировать МК. Нужно помнить, что, когда собираешь данную кем-то конструкцию, программатор PIC, схема и результат должны подходить один к одному. Даже небольшие отклонения нежелательны. Это замечание относится к новичкам в электронике, люди с опытом и практикой могут улучшить практически любую схему, если есть куда улучшать.
Отдельно стоит молвить слово и про программный комплекс, которым обеспечивают USB-программатор для PIC, своими рукамисобранный. Дело в том, что собрать сам программатор по одной из множества схем, представленных в мировой сети, – мало. Необходимо ещё и программное обеспечение, которое позволит компьютеру с его помощью прошить микроконтроллер. В качестве такового довольно часто используются Icprog, WinPic800 и много других программ. Если сам автор схемы программатора не указал ПО, с которым его творение сможет выполнять свою работу, то придется методом перебора узнавать самому. Это же относится и к тем, кто собирает свои собственные схемы. Можно и самому написать программу для МК, но это уже настоящий высший пилотаж.
Универсальные программаторы, которые подойдут не только к РІС
Если человек увлекается программированием микроконтроллеров, то вряд ли он постоянно будет пользоваться только одним типом. Для тех, кто не желает покупать отдельно программаторы для различных типов микроконтроллеров, от различных производителей, были разработаны универсальные устройства, которые смогут запрограммировать МК нескольких компаний. Так как компаний, выпускающих их, довольно много, то стоит избрать пару и рассказать про программаторы для них. Выбор пал на гигантов рынка микроконтроллеров: PIC и AVR.
Универсальный программатор PIC и AVR – это аппаратура, особенность которой заключается в её универсальности и возможности изменять работу благодаря программе, не внося изменений в аппаратную составляющую. Благодаря этому свойству такие приборы легко работают с МК, которые были выпущены в продажу уже после выхода программатора. Учитывая, что значительным образом архитектура в ближайшее время меняться не будет, они будут пригодны к использованию ещё длительное время. К дополнительным приятным свойствам заводских программаторов стоит отнести:
- Значительные аппаратные ограничения по количеству программируемых микросхем, что позволит программировать не одну, а сразу несколько единиц электроники.
- Возможность программирования микроконтроллеров и схем, в основе которых лежат различные технологии (NVRAM, NAND Flash и другие).
- Относительно небольшое время программирования. В зависимости от модели программатора и сложности программируемого кода может понадобиться от 20 до 400 секунд.
Особенности практического использования
Отдельно стоит затронуть тему практического использования. Как правило, программаторы подключаются к портам USB, но есть и такие вариации, что работают с помощью тех же проводов, что и винчестер. И для их использования придется снимать крышку компьютера, перебирать провода, да и сам процесс подключения не очень-то и удобный. Но второй тип является более универсальным и мощным, благодаря ему скорость прошивки больше, нежели при подключении через USB. Использование второго варианта не всегда представляется таким удобным и комфортным решением, как с USB, ведь до его использования необходимо проделать ряд операций: достать корпус, открыть его, найти необходимый провод. Про возможные проблемы от перегревания или скачков напряжения при работе с заводскими моделями можно не волноваться, так как у них, как правило, есть специальная защита.
Работа с микроконтроллерами
Что же необходимо для работы всех программаторов с микроконтроллерами? Дело в том, что, хотя сами программаторы и являются самостоятельными схемами, они передают сигналы компьютера в определённой последовательности. И задача относительно того, как компьютеру объяснить, что именно необходимо послать, решается программным обеспечением для программатора.
В свободном доступе находится довольно много различных программ, которые нацелены на работу с программаторами, как самодельными, так и заводскими. Но если он изготавливается малоизвестным предприятием, был сделан по схеме другого любителя электроники или самим человеком, читающим эти строки, то программного обеспечения можно и не найти. В таком случае можно использовать перебор всех доступных утилит для программирования, и если ни одна не подошла (при уверенности, что программатор качественно работает), то необходимо или взять/сделать другой программатор PIC, или написать собственную программу, что является весьма высоким пилотажем.
Возможные проблемы
Увы, даже самая идеальная техника не лишена возможных проблем, которые нет-нет, да и возникнут. Для улучшенного понимания необходимо составить список. Часть из этих проблем можно исправить вручную при детальном осмотре программатора, часть – только проверить при наличии необходимой проверочной аппаратуры. В таком случае, если программатор PIC-микроконтроллеров заводской, то вряд ли починить представляется возможным. Хотя можно попробовать найти возможные причины сбоев:
- Некачественная пайка элементов программатора.
- Отсутствие драйверов для работы с устройством.
- Повреждения внутри программатора или проводов внутри компьютера/USB.
Эксперименты с микроконтроллерами
Итак, всё есть. Как же начать работу с техникой, как начать прошивать микроконтроллер программатором?
- Подключить внешнее питание, присоединить всю аппаратуру.
- Первоначально необходима среда, с помощью которой всё будет делаться.
- Создать необходимый проект, выбрать конфигурацию микроконтроллера.
- Подготовить файл, в котором находится весь необходимый код.
- Подключиться к программатору.
- Когда всё готово, можно уже прошивать микроконтроллер.
Выше была написана только общая схема, которая позволяет понять, как происходит процесс. Для отдельных сред разработки она может незначительно отличаться, а более детальную информацию о них можно найти в инструкции.
Хочется отдельно написать обращение к тем, кто только начинает пользоваться программаторами. Помните, что, какими бы элементарными ни казались некоторые шаги, всегда необходимо их придерживаться, чтобы техника нормально и адекватно могла работать и выполнять поставленные вами задачи. Успехов в электронике!
Однажды я решил собрать несложный 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 |
Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – “прошивка”, а также программатор.
И если с первым пунктом нет проблем – готовую “прошивку” обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.
Цена готовых 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, я рассказал в отдельной статье. Следующий шаг .
Необходимые файлы:
Как программировать / записывать микроконтроллер
Как программировать микроконтроллер PIC18 на C. Пошаговое руководство (графические изображения) Как программировать микроконтроллер?Программирование микроконтроллера – это кодирование микроконтроллера различного назначения в специальном программном обеспечении. Существует множество программ, в которых мы можем писать разные коды для микроконтроллера и микросхем. Ниже мы обсудим, как программировать микроконтроллер.
В этом руководстве мы запрограммируем или напишем простой код для микроконтроллера PIC18 на языке C, где «C» – широко используемый компьютерный язык, и это единственный поддерживаемый язык (помимо ассемблера) в настоящее время для 8- битовые и 16-битные микроконтроллеры PIC.
PIC10, PIC12, PIC16, PIC18 – это серии 8-битных микроконтроллеров.
PIC24, dsPIC30, dsPIC33 – это серия 16-битных микроконтроллеров
PIC32 – серия 32-битных микроконтроллеров.
Как записать закодированную программу в микроконтроллер?
Запись микроконтроллера означает передачу закодированной программы из компилятора (где компилятор – это программное обеспечение, в котором мы можем писать, анализировать, тестировать и отлаживать закодированную программу для микроконтроллера.) В память микроконтроллера.
Кодирование или программа, написанная для микроконтроллера, обычно выполняется на языке ассемблера / C, а компилятор генерирует шестнадцатеричный файл, понятный микроконтроллеру. Шестнадцатеричный файл содержит специальные инструкции, которые должны быть переданы в память микроконтроллера, и затем он работает согласно данной инструкции и программе.
Когда мы программировали микроконтроллер (мы обсудим пошаговое руководство по программированию специальной кодировки для микроконтроллера), нам нужно записать эту программу в память микроконтроллера.
Для этого нам необходимо оборудование, которое понимает и считывает содержимое и программные коды шестнадцатеричного файла, хранящегося на нашем ноутбуке или ПК, через программное обеспечение. Таким образом, мы подключаем это оборудование через USB-кабель или через последовательный порт к ПК / ноутбуку и переносим написанный программный код в память микроконтроллера, а затем микроконтроллер выполняет точную функцию, для которой разработчик и производитель разработали микросхему микроконтроллера.
Программирование микроконтроллера PIC18 на C.Microchip Technology – вторая по величине отрасль производства электроники и ИС. Microchip Technology продает микроконтроллеры в 6-контактных корпусах (серия PIC10F2xx), 100-контактных корпусах (dsPIC33EP512MU810) и даже 144-контактных корпусах (некоторые устройства PIC32). Также есть много предыдущих серий, таких как PIC12, PIC16, PIC18.
Введение в целевой контроллер:
Мы собираемся обсудить здесь серию PIC18. Распространенным микроконтроллером этой серии является PIC18f452.Этот контроллер представляет собой 8-битный микроконтроллер, имеющий 40 контактов, 32 Кбайт памяти программ и может работать с частотой кристалла до 40 МГц, поэтому этот контроллер подходит для многих приложений.
Этот контроллер может потреблять и обеспечивать ток до 25 мА, поэтому нет необходимости использовать транзистор для управления светодиодом и подключения их к другому оборудованию. Есть 3 внешних контакта прерывания и два 16-битных таймера, один 8-битный таймер. Этот контроллер оснащен модулем захвата и модулем компаратора. Этот контроллер имеет аналогово-цифровой преобразователь, поэтому нет необходимости подключать внешний АЦП к этому устройству.
Этот контроллер также может иметь модули для связи с другим оборудованием, таким как модуль RS232, модуль I2C, модуль 1wire и параллельный подчиненный порт. Этот микроконтроллер представляет собой эстетически спроектированное устройство, подходящее как для новичков, так и для любителей, а также профессионалов для небольших и сложных электронных проектов.
Введение в среду программирования:
Среда программирования, которую мы собираемся использовать, – это MikroC для PIC. Эта IDE полностью оснащена рядом встроенных библиотек и простым в использовании интерфейсом.Эта интегрированная среда разработки содержит множество калькуляторов, таких как преобразование шестнадцатеричного в двоичное и десятичное, что очень помогает в программировании.
Размер этого программного обеспечения также очень мал по сравнению с другим программным обеспечением, поэтому его легко использовать и устанавливать. Синтаксис этого программного обеспечения немного отличается от программного обеспечения MPLAB, но, будучи разработчиком, я предлагаю всем читателям использовать MikroC вместо MPLB, потому что он действительно легко читается и имеет множество встроенных библиотек для использования.
Это определенно сократит время программирования, и вам не придется создавать общие функции с нуля, такие как задержка, чтение и запись с ЖК-дисплея, протокол RS232 и многие другие.
Обратите внимание, что MikroC не является бесплатным программным обеспечением, в то время как MPLAB X IDE и компилятор XC8 от Microchip бесплатны и предлагают множество бесплатных библиотек.
Начнем с примера.
Примечание: считается, что вы загрузили и установили программное обеспечение для программирования MikroC, и мы собираемся запрограммировать его на C, и у вас также есть начальные знания программирования на C.
Создание нового проекта в MikroC:Шаг 1:
Дважды щелкните значок MikroC на рабочем столе или в том месте, где вы установили это программное обеспечение (как показано ниже).
После загрузки программного обеспечения вы увидите это окно.
Шаг 2:
Теперь перейдите к кнопке «Проект» в правом верхнем углу и нажмите «Проект».
Шаг 3:
Теперь нажмите «Сейчас проект», и появится новое окно, показанное ниже.
Шаг 4.
Теперь нажмите «Далее» и выберите нужную тактовую частоту MCU, а также имя проекта и каталог, в котором вы хотите его сохранить.
После этого не обращайте внимания на остальные окна и просто нажмите «Далее» на всех оставшихся окнах, которые появятся.
Теперь появится окно, показанное ниже. Это ваша среда программирования, в этом окне вы должны написать код и скомпилировать его.
Теперь вы настроили программное обеспечение. Следующий шаг – написание кода.
Запись кода для микроконтроллера PIC18:PIC18f452 имеет 5 портов. Четыре порта – 8-битные, а один порт – 4-битные. В этом уроке мы собираемся использовать 8-битный порт.При написании кода для PIC18 следует помнить о нескольких вещах. (Код приведен ниже )
Создание порта как ввода или вывода:
Каждый порт имеет регистр TRISX, который определяет, что вы используете этот порт для ввода или вывода. Где X может быть, A, B, C, D, E, F, например. TRISB.
Для вывода вы должны поместить 0x00 в TRISB, а для ввода вы должны поместить в него 0xFF. но это не всегда так, потому что каждый вывод может быть независимо выбран как вход или выход.вы можете записать 0x09 в TRISB, который выберет RB0 и RB3 для входов, а остальные контакты для выходов.
Функция задержки:
В mikroC я выбрал библиотеку задержки, поэтому мне не нужно создавать здесь функции задержки, я могу просто использовать функцию Delay_ms (). В этой функции вы должны указать желаемую задержку в миллисекундах, если вы хотите задержку в 1000 миллисекунд, вы можете записать ее как Delay_ms (1000).
Это первый простой переключатель ПОРТ битов Код.
void main () {
TRISB = 0x00; // Определить как выход
While (1) // Бесконечный цикл
{
PORTB = 0x00;
Delay_ms (500); // задержка 500 миллисекунд
PORTB = 0xFF;
Delay_ms (500);
}
}
После того, как вы напишете этот код, вам придется его скомпилировать.
Нажмите на эту кнопку «построить все». Код будет скомпилирован, и шестнадцатеричный код будет создан в папке, в которой вы сохранили файл проекта.
Как только шестигранник создан, вы можете записать его в свой PIC18f452, используя оборудование PICKIT, или вы можете протестировать его, используя Proteus.
Вот и все, что касается первого урока; следите за новостями по этой теме.
Похожие сообщения:
Микроконтроллер – Написание первой программы и передача
Микроконтроллер – Руководство для начинающих – Написание первой программы для включения светодиода и перенос программы в микроконтроллер
Я знаю, что вы готовы написать первую программу.Вы через многое прошли так далеко! Раз уж мы затронули эту тему, давайте подведем итоги событий. Вы вышли и купили микроконтроллер AVR Atmel на ваш выбор. Я выбрал ATMega32 для моего использования. Вас познакомили с представление о микроконтроллерах, как они работают; а также познакомились с программатор, устройство, которое помогает переносить программу в микроконтроллер. Ты построен удобный интерфейс, который используется для подключения контактов SPI к правильные выводы микроконтроллера.Вы подтвердили, что программатор (USBTinyISP) правильно установил драйверы для 32-битной и 64-битные версии Windows (XP, 7 и Vista). Вы также установили программу среда установлена “Среда программирования” под названием WinAVR, чтобы у вас была среда в котором можно написать свою программу, а затем передать ее в микроконтроллер. А также чтобы убедиться, что все работает правильно, вы использовали avrdude для протестировал программатор при подключении к компьютеру и микроконтроллеру.Напомним, что эта программа является утилитой передачи программ для перемещения нашей скомпилированной программы. в память микроконтроллера. Наконец, вы построили первую схему, так что что у нас есть для чего написать программу. Уф … это было много! Но так как вы преодолели все эти препятствия, тяжелая работа окончена и все гладко плавание отсюда. Надеюсь, вы смогли пройти предыдущие шаги без проблем – так что приступим к нашей первой программе.
Для упрощения разберем функции микроконтроллера по категориям. на три категории: контроль, зондирование и коммуникация. Подробности оставим о том, как разработать каждую из этих функций, и углубляться в эти детали, когда мы будем писать различные программы. Обратите внимание, что есть много способов запрограммировать эти функции. Для первой программы мы заставим микроконтроллер чем-то «управлять».И, как Вы знаете из предыдущего поста, что для этой цели мы будем использовать светодиод. По сути, мы включим светодиод. Да я знаю … скучно, правда? Что ж, мне нужно с чего-то начать! По мере того, как я знакомлю вас с опытом программирования, я добавляю больше сложности понемногу, чтобы вы могли легко осмыслить эти важные концепции.
Так что здесь вы, вероятно, спрашиваете…как сделать программу для управления ВЕЛ? Что ж, это действительно просто: мы просто скажем Pin0 на PORTB вывести 5 вольт. Помните, что это вывод, к которому подключен положительный вывод (анод). В первый ключ в этом сценарии – «выход», а следующий – «5 вольт». Есть выход мы можем указать, что конкретный вывод должен быть установлен как выход из MCU. Однажды булавка настроен для вывода, вы сможете управлять этим контактом и делать он либо высокий (5 вольт), либо низкий (нулевое напряжение).А поскольку есть только два состояния для этого вывода в режиме вывода (5 В или 0 В) и только два состояния для сам режим (ввод или вывод), вам нужно только установить значение либо логическое 1 или 0. Обратите внимание, что это должно быть выполнено для каждого вывода, который мы хотим использовать в нашем схема. Но прежде чем мы перейдем к подключению 1 или 0, давайте поговорим о вводе по сравнению с выход. Когда вывод находится в режиме ввода, он прослушивает напряжение.Когда булавка находится в режиме вывода, он может заряжаться при 5 В или не заряжаться при 0 В. Вот и все!
Есть много способов сделать это. Это не для того, чтобы вас запутать, а для того, чтобы проще. Я познакомлю вас с одним из многих способов выполнить эту задачу, а позже я объясню некоторые другие методы при написании других программ. Обратите внимание, однако что, хотя этот первый метод отлично подходит для ознакомления с концепцией, он, вероятно, не так хорошо на практике.Поэтому в будущих программах вы увидите другие методы. что оставит контекстные булавки (эти булавки по обе стороны от интересующей булавки) не затронуты, поскольку они вполне могут быть ранее установлены в программе. Но с тех пор мы пишем простую программу, сейчас мы не будем беспокоиться об этой сложности.
Чтобы выбрать режим вывода для вывода, вы будете использовать регистр направления данных (DDR). О чувак! Что такое реестр?!? Пусть это вас не беспокоит.Регистр – это просто память место, которое заставляет микроконтроллер каким-то образом реагировать. Мы используем регистр для установить состояние микроконтроллера или заставить микроконтроллер что-то делать. Это как рефлексы или щекотки. Когда человек щекочет другого человека, это вызывает смех. Мы можем заставить MCU что-то делать, установив определенное значение в регистре. Это все, что вам нужно знать на данный момент.
Поэтому, когда вы используете регистр DDR, вы можете установить вывод для вывода данных, или примите ввод данных.Но мы сказали ввод или вывод, теперь вы также говорите данные. Используемый здесь термин “данные” просто добавляет еще одно измерение к этой идее в форма “время”. Если сделать пин 5 вольт, потом ноль вольт, а потом снова 5 вольт … вы фактически отправляют единицы и нули. Для штифта это не что иное, как высокий (5 вольт), а затем состояние низкого (ноль вольт): MCU видит эту логику высокого / низкого уровня. Таким же образом можно получать данные.
Есть несколько способов установить pin0 для порта B на вывод. Один из способов сделать это – напишите:
DDRB = 0b00000001;
Позволь мне объяснить. «DDRB» относится к регистру направления данных для порта B; «0b» – это чтобы сообщить компилятору, что далее следует двоичное выражение числа; а также цифра «1» на конце обозначает положение вывода 0 (первый вывод в порту B).Отзывать что есть 8 контактов для порта B; пины от 0 до 7. В нашем тоже 8 цифр. строка кода. Таким образом, каждая цифра представляет собой контакт порта, и мы можем использовать индивидуальный цифры, которые конкретно относятся к любому из контактов в порту B. Таким образом, «1» на конец нашего оператора кода относится к первому контакту порта B, который в данном случае является выводом 0. (Напомним, что C и C ++ – это языки с нулевым отсчетом, поэтому первый индекс структура данных относится к нулевому элементу; второй индекс относится к первый элемент и т. д.) На этом этапе нам действительно не нужно усложнять, так как это будет более подробно рассмотрено в будущих руководствах. Однако если вы хотел бы узнать больше о двоичная система, проверьте здесь.
Теперь нам нужно подать на вывод 5В. Это работает так же, как оператор кода DDR. мы использовали выше. Мы будем использовать двоичное число, чтобы подать 5 В на этот вывод (вывод 0), используя этот выписка:
PORTB = 0b00000001;
Единственная разница между этим и предыдущим утверждением состоит в том, что теперь мы используем регистр ПОРТ.Этот регистр знает контакты этого конкретного порта и дает us, чтобы указать фактическое значение данных (логический 0 или 1) для этих контактов.
Теперь нам нужно немного поговорить об общей структуре нашей программы. Все программы нужно указанное место для начала исполнения. Это как дать кому-то набор инструкции о том, как приготовить торт, не говоря им, с какого шага начать. «Основная» функция – это место, где все программы на C / C ++ начинают выполнение.Итак, мы создаст основную функцию.
int main (пусто)
{
}
Чтобы программа понимала информацию о регистрах DDR и PORT и как они работают в микроконтроллере, необходимо добавить оператор include, содержит всю информацию о микроконтроллерах AVR. Это заявление о включении вероятно будет во всех ваших программах.
#include
int main (пусто)
{
}
Когда начинается процесс компиляции, препроцессорная часть компилятора выглядит в каталоге «avr» для файла «io.h». Расширение “.h” здесь означает, что это файл заголовка, и (как следует из его названия) код в этом файле будет быть вставленным в начало (заголовок) исходного файла, который вы создаете.Сейчас мы может вставлять операторы DDR и PORT в наш код, поскольку включение Заголовочный файл io.h сообщил о них компилятору.
#includeint main (пусто)
{
DDRB = 0b00000001; // Регистр направления данных устанавливает pin0 для вывода, а остальные выводы в качестве ввода
PORTB = 0b00000001; // Установите pin0 на 5 вольт
}Теперь направление pin0 установлено на выход со значением, установленным на 5 В.Но мы все еще не закончен. Нам нужно, чтобы микроконтроллер работал бесконечно, поэтому нам нужен распорядок, чтобы сделать это. Это называется бесконечным (или бесконечным) циклом. В бесконечный цикл гарантирует, что микроконтроллер не перестанет выполнять свои операции. Я объясню это более подробно, когда у нас будет что-то делать в этом цикле. Там есть несколько типов циклов, которые мы можем использовать для этой цели, но для этой демонстрации Я буду использовать цикл while.На английском это означает то же самое, что и в коде: For Например, «пока» я поднял руку, вы должны продолжать хлопать в ладоши.
#includeint main (пусто)
{
DDRB = 0b00000001; // Регистр направления данных устанавливает вывод 0 на вывод а остальные контакты как вход
PORTB = 0b00000001; // Установите pin0 на 5 вольт
, а (1)
{
// Код был бы здесь, если бы его нужно было выполнить повторно и снова и снова … бесконечно
} }Обратите внимание, что мы используем «1» в качестве аргумента цикла while, потому что все остальные чем «0» – логическая истина. Следовательно, условие цикла while никогда не будет ничем кроме логически истинного, и программа будет продолжать выполняться бесконечно (т.е. я держу руку поднятой).
Итак, вот плод нашего труда.До сих пор это была долгая поездка, но я обещаю, что с этого момента все будет в порядке. будет приятным и займет гораздо меньше времени. В следующем видео и инструкции, мы заставим светодиод мигать. Мы исследуем, как создать задержку, чтобы светодиод не мигает так быстро, как будто не мигает.
Введение в программирование микроконтроллеров для силовой электроники Cont
Содержание
1 Достижения в области разработки микропрограмм для платформ управления силовой электроникой
1.1 Встроенная система управления
1.2 Выбор платы разработки
1.3 MCU семейства C2000 ™ от Texas Instruments ™
1.4 Схема проблемы управления силовой электроникой
I Встроенная разработка: комплекты оборудования и кодирование
2 Автоматическая генерация кода с помощью MATLAB®
2.1 Модельно-ориентированное проектирование и быстрое прототипирование
2.2 Рабочий процесс для автоматической генерации кода
2.3 Генерация кода для микроконтроллеров C2000 ™
2.4 Процессоры TI C2000 ™ Блок-набор
3 Комплект разработчика Texas Instruments ™
3.1 TI C2000 ™ LaunchPad ™: F28069M Piccolo
3.2 TI BOOSTXL-DRV8301 BoosterPack
4 Установка программного обеспечения
4.1 Пакеты поддержки TI: Code Composer ™ Studio и ControlSUITE ™
4.2 Пакет поддержки MATLAB®: встроенный кодер для процессоров Texas Instruments C2000
4.3 Процедура установки
II Обзор теории управления: замыкание контура
5 Проектирование системы управления с замкнутым контуром
5.1 Динамические системы
5.2 Проектирование ПИ-регулятора в области непрерывного времени
5.3 Создание контроллера PI в области дискретного времени
6 Пример проектирования: ПИ-регулирование нагрузки RL-нагрузки
6.1 Simulink® Simulation
6.2 Создание схемы ПИ-контроллера защиты от закручивания
6.3 Сводка проекта
7 Управление форматом переменных: типы данных
7.1 Фиксированная точка и представление с плавающей точкой
7.2 Одинарная и двойная точность
7.3 Использование масштабирования в представлении с фиксированной точкой
7.4 Преобразование из десятичного представления в единый формат
7.5 Обработка данных: советы по внедрению
III Управление в реальном времени в силовой электронике: настройки периферийных устройств
8 Основные настройки: последовательная связь COM и аппаратная цель
8.1 Виртуальная последовательная связь через COM-порт
9 Конфигурация Simulink®
9.1 Среды Simulink®: микропрограммное обеспечение против тестирования
9.2 MCU и управление в реальном времени с Simulink®
10 Периферийное устройство интерфейса последовательной связи (SCI)
10.1 Подробные сведения об оборудовании
10.2 Среда микропрограммного обеспечения: отправка и получение данных через последовательную связь
10.3 Среда тестирования: отправка / получение данных через последовательную связь
10.4 Настройки переменных времени (частота дискретизации)
10.5 Примеры последовательной связи
11 Периферийное устройство GPIO – Цифровой ввод / вывод
11.1 Детали оборудования
11.2 Среда микропрограммного обеспечения: периферийные устройства GPIO
11.3 Примеры с блоками GPIO
12 Периферийный аналого-цифровой преобразователь
12.1 Принцип работы
12.2 Детали оборудования
12.3 Среда микропрограммного обеспечения: Периферийное устройство АЦП
12.4 Пример с блоком АЦП
12.5 Синхронизация между модулями АЦП
13 Периферийное устройство широтно-импульсного модулятора
13.1 Принцип работы
13.2 Детали оборудования
13.3 Генерация сигналов ШИМ
13.4 Среда микропрограммного обеспечения: периферийное устройство ePWM
13,5 Пример с блоком ePWM
13,6 Периферийное устройство ЦАП – ШИМ с фильтром
13,7 Примеры с периферийными устройствами ЦАП между
13,8 Синхронизация несколько модулей ePWM
13.9 Синхронизация между модулями ADC и ePWM: средние измерения
13.Выполнение 10 событий за время выборки
14 Периферийное устройство энкодера
14.1 Принцип работы инкрементальных энкодеров
14.2 Детали оборудования
14.3 Оптический поворотный энкодер LPD3806
14.4 Вычисление скорости
14.5 Среда микропрограммного обеспечения: Периферийное устройство eQEP
14.6 Пример с блоком eQEP
IV Управление в реальном времени в силовой электронике: приложения
15 Управление двигателем постоянного тока с постоянным магнитом в разомкнутом контуре
15.1 Необходимое оборудование
15.2 Линейная модель двигателя постоянного тока
15.3 Моделирование системы
15.4 Конфигурация полумоста
15.5 Конфигурация полного моста
16 Измерение тока шунта на нижней стороне
16.1 Характеристика сенсора: теоретический подход
16.2 Испытание заторможенного ротора
16.3 Характеристики сенсора: экспериментальный подход
17 Текущий контроль нагрузки RL
17.1 Необходимое оборудование
17.2 Линейно-усредненная модель и конструкция контроллера
17.3 Моделирование системы
17.3.1 Детальное моделирование переменных срабатывания
17.4 Конфигурация полумоста
17.5 Изменение параметров нагрузки
18 Управление напряжением нагрузки RLC
18.1 Необходимое оборудование
18.2 Рекомендации по проектированию оборудования для нагрузки RLC
18.3 Общий метод моделирования среднего в пространстве состояний
18.4 Моделирование системы
18.5 Конфигурация полумоста
18.6 Вариации параметров LC-фильтра
19 Каскадное регулирование скорости двигателя постоянного тока с постоянными магнитами
19.1 Необходимое оборудование
19.2 Линейная модель двигателя постоянного тока
19.3 Архитектура и дизайн каскадного управления
19.4 Моделирование системы
19.5 Полномостовая конфигурация
19.6 Конфигурация с одним двигателем
19.7 Двухдвигательная конфигурация (B2B)
V Управление в режиме реального времени в силовой электронике: эмуляция нагрузки
20 Инструменты отладки и профилирование микропрограмм
20.1 Циклический процессор с Simulink®
20.2 Выполнение внешнего режима с Simulink®
21 Примеры использования электродвигателей
21.1 Городской трамвай
21.2 Гоночный электромобиль
A Приложение A: Основы C
A.1 Операции между номерами
A.2 Структура программы C
B Приложение B: Пользовательские платы расширения и комплекты оборудования
Библиография
Программирование микроконтроллера – обзор
Плата для программиста / разработчика USB Matrix Multimedia
Я использовал Multiprogrammer от Matrix Multimedia (см. Рисунок 3.10).
Рисунок 3.10.
У меня лишь небольшой опыт работы с сборными платами приложений Matrix, называемыми «E-Blocks», и, с моей точки зрения, эти сборные платы идеально подходят для школьных и классных приложений, но не для индивидуального программирования микроконтроллеров, изучаемого любителями.
Причины моего мнения следующие; Во-первых, это за счет модулей E-Block. Если вы учитесь программированию, это однозначное предложение. Поэтому после того, как вы изучите и примените свой E-Block, ваши инвестиции, скорее всего, останутся в ящике и пылятся. Кроме того, для правильного использования E-Block вам необходимо приобрести программатор PIC компании Matrix, который представляет собой комбинацию программатора PIC и платы разработки с портами, подключенными к разъемам DB9, для использования с системой E-Block.
Хотя я не считаю, что система применима к индивидуальному обучению самостоятельно, ситуация в школах и классах кардинально меняется. Представьте себе класс программирования микроконтроллеров, который заполнен студентами, которые пытаются выполнить свое задание по программированию в течение отведенного времени в классе. Сборные платы E-Block помогают, устраняя большую часть, если не всю, фактическую проводку и схему сборки, а также любые ошибки, связанные с таким зданием. Например, один из наших первых проектов – это подключение восьми светодиодов и резисторов к микроконтроллеру.Готовый светодиодный E-Block со светодиодами подключается прямо к разъему DB9 на плате программирования (см. Рисунок 3.11).
Рисунок 3.11.
С E-Block вы знаете, что проводка от микроконтроллера к светодиодам подключена правильно. Поэтому, если программа не зажигает светодиоды, как ожидалось, вы немедленно смотрите на программу в поисках ошибки, а не на схему. Таким образом, в этом учебном сценарии студенты по-прежнему сосредоточены на изучении программирования с помощью Flowcode.
В этой книге мы используем дискретные компоненты и вручную встраиваем их в макетную плату без пайки.Представьте себе тот же класс, что и описанный выше, заполненный студентами, строящими свои микроконтроллерные схемы на беспаечных макетах. Теперь вам нужно, чтобы инструктор осмотрел проводку перед подачей питания на схему. Это утомительная работа, и инструктор может легко пропустить ошибку при проверке такого количества беспаечных макетных плат. Если что-то выходит из строя, необходимо проверить схему на наличие ошибок подключения, а также программу. В образовательных учреждениях E-Blocks можно использовать повторно от класса к классу, от семестра к семестру и из года в год.Первоначальные вложения в покупку E-Blocks окупаются в течение всего срока службы E-Block, что является выгодным вложением для обучения в классе.
Так как это на вас влияет? Как частное лицо, выиграете ли вы от использования сборных электронных блоков? На мой взгляд, нет, я так не думаю. Прежде всего, вы не находитесь в условиях ограничений по времени, которые существуют в классе. Чтобы лучше понять использование микроконтроллеров и их применение в схемах, это помогает на самом деле создавать оборудование. Даже если схема выходит из строя, это заставляет вас искать и устранять неисправности схемы (и / или программы), пока вы не найдете свою ошибку.Это дает бесценный опыт реального мира. Вы узнаете, как все сочетается и работает. Вы подключаете светодиод к контакту ввода / вывода порта на микроконтроллере и используете его в программе. Использование макетной платы без пайки также заставляет вас создавать вспомогательную схему для микроконтроллера, включая регулируемый источник питания +5 В. В реальном мире не всегда есть сборные, которые могут вам помочь, и когда это происходит, вам не хватает навыков для создания и построения своей схемы.
Поскольку я сосредотачиваюсь на создании схем с использованием дискретных компонентов на беспаечных макетных платах, я решил использовать другой программатор.USB-программатор Matrix Multimedia представляет собой комбинацию программатора и платы разработки. Поскольку в этой книге я не использую E-Blocks, мне не нужны коннекторы DB9 или раздел разработки этого программатора PIC. Это отличное вложение для приложений в школе и классе. Если вы решите использовать этот программатор, его программное обеспечение, PPPV3, будет установлено (или может быть переустановлено) при установке программного обеспечения Flowcode, как описано в главе 1. Кроме того, программное обеспечение и экраны мультипрограмматора аналогичны программному обеспечению программатора EPIC, которое мы обсудим позже.Большинство инструкций и информации по использованию программатора EPIC также применимы к использованию этого программатора.
Как лучше всего научиться программированию микроконтроллеров? : robotics
Хотя лично мне AVR больше нравится, для начала посоветовал бы узнать про ПОС. Некоторые ссылки:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=82
Обратите особое внимание на темы «Начало работы с PIC» и «Начало работы с MPLAB» здесь.(MPLAB – это бесплатная IDE для программирования микроконтроллеров, которую люди, которые делают PIC, раздают бесплатно.)
Вам нужно будет купить программный ключ для программирования микроконтроллеров. Парни, которые делают PIC, продают полные комплекты для разработки, но они, как правило, немного дороги. Если на вашем компьютере есть параллельный порт, и вы не боитесь паяльника, можете накатить собственный.
Книги Myke Predko , как правило, очень простые, для начинающих. Пролистайте несколько его книг и посмотрите, какая из них вам больше нравится.
Вам также следует ознакомиться с таблицей данных для любого PIC, с которого вы хотите начать. (Их можно бесплатно загрузить с веб-сайта производителя.) PIC 12C508 / 12C509 – хороший вариант для начинающих. Если их нет в местном магазине электроники, вы можете сделать заказ в Digikey или в любом другом интернет-магазине запчастей. Возможно, вам придется обратиться в местную радиорубку за резисторами, конденсаторами и т. Д.
Одна вещь, которую следует учитывать для начинающих, – это использовать проволочную обмотку вместо макета.Макетная плата менее интуитивно понятна, чем подключение провода между точками A и B. Эмм … вы знаете, если подумать, возьмите удар и узнайте о макетах. Это легко, и рано или поздно вам придется их выучить. (По общему признанию, готовый набор для разработки часто избавит вас от необходимости использовать …)
Поскольку вы занимаетесь робототехникой, вы захотите узнать о схемах привода шаговых двигателей, H-мостах и т. Д. I рекомендовал бы вам НЕ прыгать в эти вещи сразу. Силовая электроника тонкая, а ваши микроконтроллеры вкусны с кетчупом.
Для вашего первого проекта вы должны использовать микроконтроллер, чтобы мигать и светиться с определенной частотой, которую вы выберете. (Включено на 0,5 секунды, выключено на 0,5 секунды – хорошее место для начала). Когда у вас это будет холодно, в следующий раз я попробую, возможно, последовательный бит-бэнг (только передача). Третий проект: научитесь читать кнопки / переключатели (на самом деле только два соединенных провода или нет) и заставляйте светодиод загораться при нажатии кнопки и гаснуть при отпускании. Как только у вас все это остынет, ТОГДА приступайте к чтению схем двигателя и прочего.
Я оставлю это на ваше усмотрение, хотите ли вы изучить некоторую сборку PIC или полностью придерживаться C. Если вы поглощаете все остальное и готовы принять вызов, дерзайте. Если вы боретесь с другими вещами, я бы посоветовал пропустить это на потом.
Вот поиск Google Video по запросу “pic микроконтроллер учебник”.
Поставщики и ресурсы беспроводной связи RF
О компании RF Wireless World
Веб-сайт RF Wireless World является домом для поставщиков и ресурсов радиочастотной и беспроводной связи.На сайте представлены статьи, руководства, поставщики, терминология, исходный код (VHDL, Verilog, MATLAB, Labview), тестирование и измерения, калькуляторы, новости, книги, загрузки и многое другое.
Сайт RF Wireless World охватывает ресурсы по различным темам, таким как RF, беспроводная связь, vsat, спутник, радар, волоконная оптика, микроволновая печь, wimax, wlan, zigbee, LTE, 5G NR, GSM, GPRS, GPS, WCDMA, UMTS, TDSCDMA, Bluetooth, Lightwave RF, z-wave, Интернет вещей (IoT), M2M, Ethernet и т. Д. Эти ресурсы основаны на стандартах IEEE и 3GPP.Он также имеет академический раздел, который охватывает колледжи и университеты по инженерным дисциплинам и MBA.
Статьи о системах на основе Интернета вещей
Система обнаружения падений для пожилых людей на основе Интернета вещей : В статье рассматривается архитектура системы обнаружения падений, используемой для пожилых людей.
В нем упоминаются преимущества или преимущества системы обнаружения падений Интернета вещей.
Читать дальше➤
Также обратитесь к другим статьям о системах на основе Интернета вещей следующим образом:
• Система очистки туалетов самолета.
• Система измерения столкновений
• Система отслеживания скоропортящихся продуктов и овощей
• Система помощи водителю
• Система умной торговли
• Система мониторинга качества воды.
• Система Smart Grid
• Система умного освещения на базе Zigbee
• Интеллектуальная система парковки на базе Zigbee.
• Система умной парковки на основе LoRaWAN
RF Статьи о беспроводной связи
В этом разделе статей представлены статьи о физическом уровне (PHY), уровне MAC, стеке протоколов и сетевой архитектуре на основе WLAN, WiMAX, zigbee, GSM, GPRS, TD-SCDMA, LTE, 5G NR, VSAT, Gigabit Ethernet на основе IEEE / 3GPP и т. Д. .стандарты. Он также охватывает статьи, относящиеся к испытаниям и измерениям, по тестированию на соответствие, используемым для испытаний устройств на соответствие RF / PHY. УКАЗАТЕЛЬ СТАТЬИ ДЛЯ ССЫЛКИ >>.
Физический уровень 5G NR : Обработка физического уровня для канала 5G NR PDSCH и канала 5G NR PUSCH рассмотрена поэтапно. Это описание физического уровня 5G соответствует спецификациям физического уровня 3GPP. Читать дальше➤
Основы повторителей и типы повторителей : В нем объясняются функции различных типов ретрансляторов, используемых в беспроводных технологиях.Читать дальше➤
Основы и типы замирания : В этой статье описаны мелкомасштабные замирания, крупномасштабные замирания, медленные, быстрые замирания и т. Д., Используемые в беспроводной связи. Читать дальше➤
Архитектура сотового телефона 5G : В этой статье рассматривается блок-схема сотового телефона 5G с внутренними модулями 5G. Архитектура сотового телефона. Читать дальше➤
Основы помех и типы помех: В этой статье рассматриваются помехи в соседнем канале, помехи в совмещенном канале, Электромагнитные помехи, ICI, ISI, световые помехи, звуковые помехи и т. Д.Читать дальше➤
5G NR Раздел
В этом разделе рассматриваются функции 5G NR (New Radio), нумерология, диапазоны, архитектура, развертывание, стек протоколов (PHY, MAC, RLC, PDCP, RRC) и т. Д.
5G NR Краткий указатель ссылок >>
• Мини-слот 5G NR
• Часть полосы пропускания 5G NR
• 5G NR CORESET
• Форматы DCI 5G NR
• 5G NR UCI
• Форматы слотов 5G NR
• IE 5G NR RRC
• 5G NR SSB, SS, PBCH
• 5G NR PRACH
• 5G NR PDCCH
• 5G NR PUCCH
• Эталонные сигналы 5G NR
• 5G NR m-последовательность
• Золотая последовательность 5G NR
• 5G NR Zadoff Chu Sequence
• Физический уровень 5G NR
• Уровень MAC 5G NR
• Уровень 5G NR RLC
• Уровень 5G NR PDCP
Учебные пособия по беспроводным технологиям
В этом разделе рассматриваются учебные пособия по радиочастотам и беспроводной связи.Он охватывает учебные пособия по таким темам, как сотовая связь, WLAN (11ac, 11ad), wimax, bluetooth, zigbee, zwave, LTE, DSP, GSM, GPRS, GPS, UMTS, CDMA, UWB, RFID, радар, VSAT, спутник, WLAN, волновод, антенна, фемтосота, тестирование и измерения, IoT и т. Д. См. УКАЗАТЕЛЬ >>
Учебное пособие по 5G – В этом учебном пособии по 5G также рассматриваются следующие подтемы по технологии 5G:
Учебное пособие по основам 5G.
Частотные диапазоны
руководство по миллиметровым волнам
Волновая рама 5G мм
Зондирование волнового канала 5G мм
4G против 5G
Испытательное оборудование 5G
Сетевая архитектура 5G
Сетевые интерфейсы 5G NR
канальное зондирование
Типы каналов
5G FDD против TDD
Разделение сети 5G NR
Что такое 5G NR
Режимы развертывания 5G NR
Что такое 5G TF
Этот учебник GSM охватывает основы GSM, архитектуру сети, элементы сети, системные спецификации, приложения,
Типы пакетов GSM, структура или иерархия кадров GSM, логические каналы, физические каналы,
Физический уровень GSM или обработка речи, вход в сеть мобильного телефона GSM, установка вызова или процедура включения питания,
MO-вызов, MT-вызов, VAMOS, AMR, MSK, модуляция GMSK, физический уровень, стек протоколов, основы работы с мобильным телефоном,
Планирование RF, нисходящая линия связи PS-вызовов и восходящая линия связи PS-вызовов.
➤Подробнее.
LTE Tutorial , охватывающий архитектуру системы LTE, охватывающий основы LTE EUTRAN и LTE Evolved Packet Core (EPC). Он обеспечивает связь с обзором системы LTE, радиоинтерфейсом LTE, терминологией LTE, категориями LTE UE, структурой кадра LTE, физическим уровнем LTE, Стек протоколов LTE, каналы LTE (логические, транспортные, физические), пропускная способность LTE, агрегация несущих LTE, передача голоса по LTE, расширенный LTE, Поставщики LTE и LTE vs LTE продвинутые.➤Подробнее.
RF Technology Stuff
Эта страница мира беспроводной радиосвязи описывает пошаговое проектирование преобразователя частоты RF на примере преобразователя RF UP от 70 МГц до диапазона C.
для микрополосковой платы с использованием дискретных радиочастотных компонентов, а именно. Смесители, гетеродин, MMIC, синтезатор, опорный генератор OCXO,
колодки аттенюатора. ➤Подробнее.
➤Проектирование и разработка радиочастотного трансивера
➤Конструкция RF-фильтра
➤Система VSAT
➤Типы и основы микрополосковой печати
➤ОсновыWaveguide
Секция испытаний и измерений
В этом разделе рассматриваются контрольно-измерительные ресурсы, испытательное и измерительное оборудование для тестирования DUT на основе
Стандарты WLAN, WiMAX, Zigbee, Bluetooth, GSM, UMTS, LTE.УКАЗАТЕЛЬ испытаний и измерений >>
➤Система PXI для T&M.
➤ Генерация и анализ сигналов
➤Измерения слоя PHY
➤Тест на соответствие устройства WiMAX
➤ Тест на соответствие Zigbee
➤ Тест на соответствие LTE UE
➤Тест на соответствие TD-SCDMA
Волоконно-оптическая технология
Оптоволоконный компонент , основы, включая детектор, оптический соединитель, изолятор, циркулятор, переключатели, усилитель,
фильтр, эквалайзер, мультиплексор, разъемы, демультиплексор и т. д.Эти компоненты используются в оптоволоконной связи.
Оптические компоненты INDEX >>
➤Учебное пособие по оптоволоконной связи
➤APS в SDH
➤SONET основы
➤SDH Каркасная конструкция
➤SONET против SDH
Поставщики, производители радиочастотных беспроводных устройств
Сайт RF Wireless World охватывает производителей и поставщиков различных радиочастотных компонентов, систем и подсистем для ярких приложений, см. ИНДЕКС поставщиков >>.
Поставщики радиочастотных компонентов, включая радиочастотный изолятор, радиочастотный циркулятор, радиочастотный смеситель, радиочастотный усилитель, радиочастотный адаптер, радиочастотный разъем, радиочастотный модулятор, радиочастотный трансивер, PLL, VCO, синтезатор, антенну, генератор, делитель мощности, сумматор мощности, фильтр, аттенюатор, диплексор, дуплексер, микросхема резистора, микросхема конденсатора, индуктор микросхемы, ответвитель, оборудование ЭМС, программное обеспечение для проектирования радиочастот, диэлектрический материал, диод и т. д.Производители компонентов RF >>
➤Базовая станция LTE
➤RF Циркулятор
➤RF Изолятор
➤Кристаллический осциллятор
MATLAB, Labview, встроенные исходные коды
Раздел исходного кода RF Wireless World охватывает коды, связанные с языками программирования MATLAB, VHDL, VERILOG и LABVIEW.
Эти коды полезны для новичков в этих языках.
ИНДЕКС ИСХОДНОГО КОДА >>
➤3-8 декодер кода VHDL
➤Код MATLAB для дескремблера
➤32-битный код ALU Verilog
➤T, D, JK, SR триггеры labview коды
* Общая информация о здоровье населения *
Выполните эти пять простых действий, чтобы остановить коронавирус (COVID-19).
СДЕЛАЙТЕ ПЯТЬ
1. РУКИ: часто мойте их.
2. КОЛЕНО: Откашляйтесь.
3. ЛИЦО: Не трогайте его
4. НОГИ: держитесь на расстоянии более 3 футов (1 м) друг от друга.
5. ЧУВСТВОВАТЬ: Болен? Оставайся дома
Используйте технологию отслеживания контактов >>, соблюдайте >> рекомендации по социальному дистанцированию и установить систему видеонаблюдения >> чтобы спасти сотни жизней. Использование концепции телемедицины стало очень популярным в таким странам, как США и Китай, чтобы остановить распространение COVID-19, поскольку это заразное заболевание.
RF Беспроводные калькуляторы и преобразователи
Раздел «Калькуляторы и преобразователи» охватывает ВЧ-калькуляторы, беспроводные калькуляторы, а также преобразователи единиц измерения.
Сюда входят такие беспроводные технологии, как GSM, UMTS, LTE, 5G NR и т. Д.
СПРАВОЧНЫЕ КАЛЬКУЛЯТОРЫ Указатель >>.
➤ Калькулятор пропускной способности 5G NR
➤5G NR ARFCN против преобразования частоты
➤Калькулятор скорости передачи данных LoRa
➤LTE EARFCN для преобразования частоты
➤ Калькулятор антенн Яги
➤ Калькулятор времени выборки 5G NR
IoT-Интернет вещей Беспроводные технологии
Раздел IoT охватывает беспроводные технологии Интернета вещей, такие как WLAN, WiMAX, Zigbee, Z-wave, UMTS, LTE, GSM, GPRS, THREAD, EnOcean, LoRa, SIGFOX, WHDI, Ethernet,
6LoWPAN, RF4CE, Bluetooth, Bluetooth Low Power (BLE), NFC, RFID, INSTEON, X10, KNX, ANT +, Wavenis, Dash7, HomePlug и другие.Он также охватывает датчики Интернета вещей, компоненты Интернета вещей и компании Интернета вещей.
См. Главную страницу IoT >> и следующие ссылки.
➤ НИТЬ
➤EnOcean
➤Учебник по LoRa
➤Учебник по SIGFOX
➤WHDI
➤6LoWPAN
➤Zigbee RF4CE
➤NFC
➤Lonworks
➤CEBus
➤UPB
СВЯЗАННЫЕ ЗАПИСИ
Учебники по беспроводной связи RF
Различные типы датчиков
Поделиться страницей
Перевести страницу
ARM Программирование – учиться.sparkfun.com
Добавлено в избранное Любимый 10Введение
Внимание! Это руководство было написано для микроконтроллеров ARM с выводами SWD или JTAG. Для подключения к порту вам понадобится специальный программатор (например, J-Link EDU Mini или J-Link EDU Base). Если вы используете микроконтроллер AVR с загрузчиком Arduino с использованием контактов ICSP, вам нужно перейти к Учебное пособие по установке загрузчика Arduino.SparkFun давно является поклонником Arduino. Мы запрограммировали ATMega328 (а до этого – 168 и 8), написали учебные пособия и взломали всевозможные забавные проекты. Но сейчас рынок созревает, и мы смотрим на гораздо больше чипов ARM. Одним из преимуществ новых микросхем является то, что им обычно не требуется переходник с USB на последовательный порт; вместо этого у них есть встроенный USB (по крайней мере, те, которые мы используем). Вам все равно нужно добавить загрузчик, чтобы использовать их с Arduino, и, поскольку программисты ARM также немного сложнее, чем программисты AVR, вы захотите инвестировать в отдельного программиста вместо того, чтобы пытаться использовать Uno, который у вас есть.
Обратите внимание: Большинство плат SparkFun предварительно запрограммированы. Это руководство предназначено для предоставления информации, если вы хотите перепрограммировать свою плату или изменить загрузчик.
Несколько плат ARM:
Необходимые материалы
Чтобы следовать этому руководству, вам потребуются следующие материалы. Однако вам может понадобиться не все, в зависимости от того, что у вас есть. Добавьте его в корзину, прочтите руководство и при необходимости отрегулируйте корзину.
Рекомендуемая литература
Если вы не знакомы со следующими концепциями, мы рекомендуем ознакомиться с этими руководствами, прежде чем продолжить.
Основы печатной платы
Что такое печатная плата? В этом руководстве мы разберем, из чего состоит печатная плата, и разберем некоторые общие термины, используемые в мире печатных плат.
Установка загрузчика Arduino
Из этого туториала Вы узнаете, что такое загрузчик и зачем его нужно устанавливать или переустанавливать. Мы также рассмотрим процесс записи загрузчика, записав шестнадцатеричный файл в микроконтроллер Arduino.
Установка Arduino IDE
Пошаговое руководство по установке и тестированию программного обеспечения Arduino в Windows, Mac и Linux.
Интегральные схемы
Введение в интегральные схемы (ИС). Вездесущие черные фишки электроники. Включает внимание к разнообразию корпусов ИС.
Что такое ARM?
Начнем с того, что такое процессор ARM.Они используются во всем, от Redboard Turbo до Raspberry Pi и большинства мобильных телефонов, но это большой диапазон производительности. ARM – это действительно уникальная бизнес-модель. Arm Holdings выполняет проектные работы для ядер и владеет патентами / авторскими правами / другими юридическими вещами, а затем выдает лицензии на дизайн. Затем ядра вставляются в процессоры, микроконтроллеры, SOC (система на кристалле) и т. Д. Компания может решить, что она хочет создать камеру, которая использует ядро ARM. Они могут лицензировать ядро, максимально повысить энергоэффективность, добавить немного силикона для интерфейса датчика камеры и построить всю систему на чипе.
Если вы посмотрите вокруг, вы действительно увидите довольно много соглашений об именах. В архитектуре v7 перечислены 3 разных профиля:
- Cortex-A : профиль приложения
- Cortex-R : профиль в реальном времени
- Cortex-M : профиль микроконтроллера
Мы собираемся рассмотреть Cortex-Ms. Cortex M0 / M0 + и M1 на самом деле относятся к архитектуре v6 и могут считаться подмножеством профиля v7.Все это означает, что мы собираемся изучить программирование SamD21 на нашей Redboard Turbo (и других платах), а также SamD51 на Thing Plus. SAMD21 – это ARM Cortex-M0, где SAMD51 – это ARM Cortex-M4F.
Загрузчики
Загрузчик – это небольшой фрагмент кода, который смотрит на порт программирования (в данном случае USB), чтобы узнать, поступает ли новый код. Если есть, то он берет код и помещает его в заранее определенное место.Если нет, то он запускает код, находящийся в данный момент в этом месте.
Большинство плат Arduino имеют загрузчик, который позволяет загружать код через порт USB (или через последовательное соединение UART). Таким образом, после установки загрузчика мы сможем гораздо проще программировать плату. Но иногда мы хотим изменить функцию загрузчика, установить загрузчик на новую плату или просто пропустить загрузчик и установить наш код напрямую (что усложняет другим людям изменение кода, скажем, на коммерческом продукте) .
В качестве загрузчика мы рекомендуем использовать загрузчик UF2. Вы можете перейти сюда для получения дополнительной информации о загрузчиках UF2 или нажать кнопку ниже, чтобы перейти к загрузочным загрузчикам SAMD от SparkFun на GitHub Repo:
Загрузчики SparkFun SamD UF2UF2 – это формат файла, разработанный Microsoft, который расшифровывается как USB Flashing Format. Этот формат был разработан для PXT (также известного как Microsoft MakeCode) и позволяет программировать платы через Mass Storage Class (съемный диск). Загрузчик также совместим с BOSSA, который используется в Arduino IDE.Другими словами, UF2 позволяет вам писать MakeCode, использовать Circuit Python и использовать Arduino IDE – все в одном загрузчике.
Используете ли вы загрузчик UF2 или другой загрузчик, вам придется загрузить файл. Убедитесь, что загружаемый файл совместим с используемой платой / конфигурацией. Посетите наш репозиторий GitHub для загрузчиков SAMD; с этими платами должен работать загрузчик Turbo (вам нужен файл * .bin ).
JTAG и SWD
Группа совместных испытаний
JTAG обозначает Joint Test Action Group (группа, которая определила стандарт JTAG) и была разработана как способ тестирования плат.JTAG позволяет пользователю общаться с частями микроконтроллера. Во многих случаях это включает в себя предоставление им набора инструкций или программирование платы. Стандарт JTAG определяет 5 контактов:
- TCK : Тестовые часы
- TMS : выбор тестового режима
- TDI : вход тестовых данных
- TDO : тестовые данные
- TRST : тестовый сброс (дополнительно)
Определение JTAG с уменьшенным количеством выводов на самом деле состоит только из 2 выводов:
- TMSC : тестовые серийные данные
- TCKS : Тестовые часы
20-контактный разъем, который вы видите на некоторых программаторах, был разработан для JTAG, и все эти дополнительные контакты можно использовать для питания, заземления и других вещей.Хотя JTAG не определяет физическое расположение выводов, существует несколько общих вариантов. 20-контактный разъем, который вы видите на программаторе Segger J-Link EDU Base и Base Compact, является хорошим примером.
Отладка последовательного кабеля
Serial Wire Debug (SWD) – это просто модификация / реализация JTAG специально для процессоров ARM. SWD помещает 2 контакта (SWDIO и SWCLK) поверх контактов JTAG, позволяя пользователю использовать либо JTAG, либо SWD без необходимости подключать дополнительные контакты.
Программисты и программное обеспечение J-Link
SparkFun теперь содержит 3 разных ARM-программатора от Segger. Если вы только начинаете и не планируете зарабатывать деньги на своем проекте, EDU Mini – отличное место для начала. Если вам нужно что-то более мощное, J-Link Base EDU – хороший вариант. Если вы планируете зарабатывать деньги, вы не можете использовать версии EDU, и в этом случае я рекомендую Base Compact, который мы носим. Это самый дешевый программатор Segger ARM без лицензии EDU.Есть также много высококлассных программистов, но, судя по их цене, вы собираетесь взять их только в том случае, если точно знаете, какие функции вам от них нужны. Но не волнуйтесь, все они более чем способны программировать наши платы.
Первый шаг – загрузить программное обеспечение J-Link. Эта программа хороша для обновления прошивки на программаторах. Идите вперед, откройте конфигуратор Jlink и посмотрите, нужно ли вашему программисту обновление. Пакеты программного обеспечения J-Link имеют множество функций, в которых вы можете углубиться, но мы не собираемся их использовать.Не стесняйтесь экспериментировать и исследовать программное обеспечение и все возможности отладки.
Страница загрузки программного обеспечения J-LinkAVR Студия
Теперь, когда мы все подключили, пора программировать. Есть несколько разных вариантов программирования. Atmel studio – отличный вариант (при условии, что вы используете процессор ATMEL ARM, такой как линейка SAMD). Atmel Studio также позволяет писать программы на C и компилировать код. IDE Arduino также позволяет скомпилировать и загрузить файл *.шестнадцатеричный файл вашего кода. Убедитесь, что вы загрузили и установили Atmel Studio (только для Windows 7 или новее)
Инструкции по установке Atmel Studio 7Давайте продолжим и откроем Atmel Studio. Затем мы перейдем в Инструменты, а затем в Программирование устройств. В раскрывающемся списке вам нужно будет выбрать своего программатора, а также свое устройство (возможно, сначала вам придется согласиться с Условиями использования). Затем нажмите Применить, и он должен подтвердить вашего программиста. Затем прочтите подпись устройства и целевое напряжение, чтобы убедиться, что все читается правильно.Не стесняйтесь осматриваться, вы можете получить довольно много информации об инструментах, а также информации об устройстве.
Затем мы перейдем на вкладку Memories , вы, вероятно, захотите выбрать «Стереть флэш-память перед программированием», а затем выберите расположение загрузчика или другого кода. Hit Program, и вы должны быть готовы к работе через секунду или 2.
Трудно видеть? Щелкните изображение, чтобы рассмотреть его поближе.
Поиск и устранение неисправностей
Биты предохранителей для защиты загрузчика
Если вы получаете сообщение об ошибке при попытке программирования, проверьте вкладку «Предохранители».На многих наших платах мы устанавливаем защиту загрузчика от случайной перезаписи. В основном это определяет размер загрузчика. Установка этого значения на 0x07 установит размер загрузчика на 0 и позволит вам писать в это пространство.
Ошибка чтения подписи устройства и мигание
Если вы получаете сообщение об ошибке ниже:
язык: bash
Ошибка: устройство не обнаружено. Ошибка 4109.
Невозможно войти в режим программирования. Проверьте выбор устройства, настройки интерфейса, целевую мощность, бит безопасности и подключения к целевому устройству.
Это может быть связано с несколькими причинами:
- тактовая частота слишком высока
- попробуйте установить программатор на 1/4 частоты целевого устройства
- разводка заголовка 2×5 может отличаться в зависимости от вашего программатора
- проверьте руководство пользователя на программаторе и убедитесь, что распиновка совпадает с выводами заголовка цели
- проверьте исправность паяных соединений
- целевое устройство не запитано
- , поскольку программатор не подает питание, убедитесь, что вы подаете питание на целевое устройство
В данном конкретном случае это произошло из-за подключения заголовка 2×5 к порту Atmel JTAGICE3.Он отличался от заголовка 2×5 на целевом устройстве. Последняя версия Atmel JTAGICE имеет два порта и адаптер для правильного подключения к разъему 2×5.
Ресурсы и дальнейшее развитие
Нужна дополнительная информация? Ознакомьтесь с некоторыми ссылками ниже:
Ознакомьтесь с другими замечательными руководствами для плат на базе ARM от SparkFun:
SAMD21 Mini / Dev Breakout Руководство по подключению
Знакомство с микропроцессором Atmel ATSAMD21G18 и коммутационными платами Mini и Pro R3.Повысьте свои навыки Arduino с помощью мощного процессора ARM Cortex M0 +.
9DoF Razor IMU M0 Руководство по подключению
Как использовать и перепрограммировать 9DoF Razor IMU M0, комбинацию микропроцессора ATSAMD21 ARM Cortex-M0 и MPU-9250 9DoF-in-a-chip.
RedBoard Turbo Руководство по подключению
Знакомство с RedBoard Turbo.