Отладчик программ микроконтроллера avr на андроид: Клон AVR JTAG ICE

Микроконтроллеры STM32 и AVR. Андроид и управление голосом. Беспилотные летательные аппараты

      Для первоначального ознакомления с микроконтроллерами STM32 неплохим вариантом может служить плата STM32F4Discovery(см. рис.1).

Рис.1. Фото платы STM32F4Discovery с обозначением основных ее элементов

 

      На плате установлены:

1. 32-битный ARM-микроконтроллер STM32F407VGT6 семейства Cortex-M4 (Частота — до 168 МГц, память программ (Flash) — 1 Мбайт,  ОЗУ (RAM) — 196 Кбайт).

2. Отладчик и программатор ST-Link/V2 для отладки и прошивки микроконтроллера STM32F407VGT6 размещен на самой плате STM32F4Discovery. Есть возможность переключать его на программирование и отладку других плат и микроконтроллеров через выведенный разъём SWD и перемычки.

3. Выводы для подачи внешнего питания +5V и  возможность запитки других устройств от +5V и +3V.

4.

Кнопка сброса (RESET) микроконтроллера STM32F407VGT6.

5. Четыре светодиода и одна кнопка, доступные для программирования. Все выводы микроконтроллера выведены по бокам платы штырьками по два ряда.

6. 3-х осевой цифровой акселерометр на MEMS-датчике движения LIS302DL (LIS3DSH с 2013г.).

7. Цифровой микрофон MP45DT02 на основе микроэлектромеханического датчика(MEMS-датчик).

8. Аудио-ЦАП со встроенным драйвером динамиков класса D на CS43L22.

9. Разъём micro-USB.

Для подачи напряжения питания на плату STM32F4Discovery используется разъём mini-USB от программатора/отладчика ST-Link.  

      К STM32F4Discovery можно подключить Ethernet, ЖК-дисплей и другие устройства. В частности в настоящее время доступна плата расширения STM32F4DIS-BB(рис.2),  которая разработана специально для высокопроизводительной отладочной платы STM32F4Discovery.

Она имеет  интерфейсы с Ethernet10/100 Mbps, дисплейным модулем с сенсорной панелью, 1.3 мегапиксельной цифровой камерой, на ней установлен последовательный порт RS-232, слот для SD памяти и др.

Рис.2. Фото платы расширения.

 

      Таким образом, семейство STM32 также поддерживает слоты расширения, библиотеки программ, как и проект Ардуино. Однако для STM32 все сложнее и шире.  Здесь будут последовательно размещаться некоторые практические работы, полезные, прежде всего для студентов.  

AVR Пишем код на СИ. Зажигаем светодиод

&nbsp

&nbsp

&nbsp

Урок 3

 

 

Сегодня мы научимся писать код на C в среде Atmel Studio, для примера мы возьмём тот же проект, который мы создали на прошлом занятии.

Прежде чем мы начнём непосредственно заниматься написанием кода, мы изучим те строки кода, которые нам уже сгенерировала студия в нашем файле Test01. c.

В самом начале кода мы видим строку в виде следующей директивы

#include <avr/io.h>

Посмотрим определение данной директивы

Директива #include просит препроцессор (компилятор) включить файл, объявленный после нее в исходный код. Имя файла может заключаться либо в треугольные скобки <> либо в кавычки ””. Треугольные скобки используются в случае включения в код файла из самой среды разработки, а кавычки – пользовательского файла.

#include <имя файла>

В нашем случае в текст кода включается файл io.h. Если мы откроем данный файл, то мы увидим, что в зависимости от каких-то условий в наш код включаются ещё определённые заголовочные файлы. В нашем частном случае условием является использование нами определённого микроконтроллера. Так как мы используем Atmega8a, то соответственно включится следующий файл:

#elif defined (__AVR_ATmega8A__)
# include <avr/iom8a. h>

В данном файле находятся макросы для векторов прерываний, для определённых шин. Что такое макросы и как их использовать, мы разберём немного позднее. Движемся дальше по файлу io.h и видим, что в него также включены ещё 3 файла, но нам будет интересен следующий файл:

#include <avr/portpins.h>

В данном файле находятся также макроподстановки для наших лапок портов и прочей периферии, чтобы нам было удобнее писать и читать наш код. Откроем данный файл и изучим в нём данные строки

/* Port Data Register (generic) */
#define PORT7  7


#define PORT6  6
#define PORT5  5
#define PORT4  4
#define PORT3  3
#define PORT2  2
#define PORT1  1
#define PORT0  0

Данные строки нам говорят о том, что, например, если при компиляции проекта препроцессор (интерпретатор команд) встретит в коде слово PORT4, то он его сразу заменит на цифру 4.

Тем самым мы постепенно с вами подошли к изучению ещё одной директивы

Директива #define

Просит препроцессор (компилятор) в случае появления в тексте кода буквосочетания 1 заменить его на буквосочетание 2.

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

#define <буквосочетание 1> <буквосочетание 2>

Вернёмся в наш код. Далее мы видим следующее

int main(void)
{

}

То, что мы с вами наблюдаем в языке C и C++ называется функция. Функциями мы будем пользоваться постоянно. Функция – это такая подпрограмма, которая вызывается из какого-нибудь участка кода. Самое важное у функции – это её имя (в нашем случае main). По имени мы будем вызывать функцию из другого участка кода. Также у функции существуют входные аргументы, возвращаемые аргументы, а также тело. Входные аргументы находятся сразу после имени в скобках и перечисляются один за другим, а разделяются запятыми. В нашем случае стоит один тип «void», обозначающий, что у нашей функции вообще нет входных аргументов. Поэтому если мы подобную функцию будем вызывать в другом участке кода, то мы в скобках вообще ничего не ставим. Возвращаемый аргумент у функции один. Если нам потребуется больше чем один тип переменных, то мы будем пользоваться глобальными переменными, о которых мы узнаем позже. Изучение переменных вообще не входит в рамки наших уроков, как правило это объясняется непосредственно в уроках и литературе по языкам программирования. Тип возвращаемого аргумента указывается перед именем функции. В нашем случае – это int (целочисленная знаковая переменная). Также у функции существует тело – это участок кода, находящийся между открывающей и закрывающей фигурными скобками. Вот этот участок кода и будет выполняться в случае вызова функции.

Функцию main мы явно нигде не вызываем. Это главная функция нашего приложения, недаром она и называется main, что по английски значит главный. Встретив данное имя, компилятор и начинает выполнение программы с данного места. То есть это своего рода входная точка нашей программы. Отсюда всё и начинается. Сюда мы и начинаем писать свой код.

Давайте же что-нибудь сюда и напишем. Мы пока не будем обращать внимание на строки, уже содержащиеся в теле данной функции.

У программистов, которые пишут программы под ПК, начинать занятия принято с вывода строки «Hello World!», а у тех программистов, которые пишут под мелкие чипы, принято начинать работу с подключения и управления свечением светодиодами. Затем они учат их мигать просто, мигать по очереди, а уже после этого приступать к программированию каких-то более серьёзных вещей. Мы также не будем отступать от данного правила.

Давайте сначала подключим светодиод к какой-нибудь ножке контроллера, например к ножке 0 порта D

 

У порта D, как мы видим из данной распиновки, существует как раз 8 ножек, что соответствует байту (8 бит). Также как биты в байты, ножки портов отсчитываются от 0.

Напишем мы сначала следующую строку

int main(void)
{

DDRD = 0xFF;

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

DDRD – это команда, которая устанавливает состояние лапок порта D. Состояние лапки порта – это то, в каком направлении данная лапка будет работать – на выход или на вход, что соответствует установке определённого бита в 0 или в 1. Но так как мы будем зажигать светодиод, мы должны на определённой ножке порта выставить высокий логический уровень (в нашем случае 5 вольт). А чтобы управлять уровнями ножки, она должна быть определена, как работающая на выход или на вывод.

То есть состоянием лапки мы будем управлять из контроллера, а не из внешнего источника уровня. Так как у нас лапка нулевая, то и бит мы и должны выставить в ноль нулевой бит нашего байта, соответствующего нашему порту D. Так как мы не пользуемся сегодня остальными лапками порта, то нам их состояние будет не важно и мы выставляем все лапки портов на вывод. Поэтому мы присваиваем переменной DDRD значение 0xFF. Данное значение мы написали в шестнадцатиричном виде. Этот вид очень удобен для программистов, так как визуально о многом говорит. FF – это в десятичной системе 255, а в двоичной – 11111111, что говорит о том, что все биты в данном числе выставлены в единицу. Также мы видим, что наша строка заканчивается точкой с запятой (;). Данный оператор – это разделитель команд, так как в одной строке мы можем писать не обязательно одну только команду, а можем и несколько, если они небольшие. Также в данной строке мы видим оператор «=» (знак равенства).
Данный оператор заставляет наш препроцессор присвоить значение, находящееся справа возле него переменной, находящейся слева.

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

DDRD = 0xFF;

PORTD = 0b00000001;

 

 

Данная команда или переменная PORTD управляет записью или считыванием значений в порт или из порта в зависимости от состояния. То есть данной командой мы включили нулевую лапку в высокое логическое состояние (в единицу). Здесь мы с вами уже попробуем использовать написание значения в двоичном виде. Чтобы писать значения в данном виде, мы используем префикс 0b. Данный вид удобен тем, что мы здесь видим полностью, как выглядит наш байт побитно. Лапки портов в байте, также как и биты считаются справа налево. То есть данной командой мы выставили в высокое состояние нулевую лапку порта D, а остальные мы выставили в низкое. Вообщем, арифметическо-логическое устройство микроконтроллера сначала включит все ножки порта на выход, а затем установит на нулевой ножке высокое логическое состояние, и после этого у нас должен будет зажечься светодиод, так как через токоограничивающий резистор мы его анодом подключим к данной ножке, а катодом к общему проводу. Тем самым на контактах светодиода появится разность потенциалов, которая заставит его светиться. Кроме написанных нами двух строк далее в коде присутствует команда while. Данная команда является командой условного цикла.

PORTD = 0b00000001;
while(1)
{

}

В скобочках указывается условие, которое должно либо выполняться либо не выполняться. Также как у функции есть тело, то у условия также есть тело, также заключенное в фигурные скобки. И код, находящийся в теле цикла, будет выполняться бесконечно, пока условие, находящееся в скобках будет выполняться, то есть будет истинным. Как только условие перестанет выполняться, а проверяется это тогда, когда код выполнится до конца (до закрывающей фигурной скобки), то мы выходим из цикла и код продолжает выполняться уже дальше тот, который находится уже не в теле цикла, а после закрывающей фигурной скобки. А истина в информатике – это TRUE или 1. Поэтому в данном случае цикл будет бесконечным, так как там стоит единице, а единица всегда равна единице. Бесконечный цикл организован для того, чтобы код, написанный для контроллера, выполнялся постоянно, то есть чтобы наш контроллер постоянно работал и не останавливался. В нашем случае тело пустое, и наш контроллер, вернее его АЛУ, будет всё время висеть в данном цикле и ничего не делать до тех пор, пока мы не отключим питание, либо нам его не отключат в розетке, либо, не дай Бог, сгорит контроллер. То есть светодиод наш будет светиться постоянно.

Сегодня мы не будем пробовать нашу программу прошивать в микроконтроллер, и даже не будем пробовать ещё в виртуальном контроллере, то есть в программе симуляции, а попробуем симуляцию запустить в самой студии, так как на прошлом занятии мы в качестве отладчика и выбрали симулятор. Двойным щелчком мыши либо клавишей F9 мы установим точку останова на команде PORTD = 0b00000001; и, когда мы запустим отладку, то отладчик, как только увидит данную точку, должен будет в этом месте остановить выполнение программы, и мы сможем посмотреть, какие уровни и где у нас установились.

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

Здесь мы наблюдаем, что ещё у нас открылась карта нашей памяти, в которой нам пока ещё ничего не понятно. Если бы мы писали на ассемблере либо на машинном коде, то нам бы это было понятнее. Поэтому нас интересует другая. Карта. Для этого мы нажмём вот эту кнопочку

Данная кнопочка (I/O View) откроет нам окно с данными наших портов ввода-вывода и прочей периферии

 

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

А дальше уже проблема. Чтобы нам посмотреть, как сработает следующая команда, которая включит нам нулевую ножку, отладчику необходимо остановиться на следующей строке кода, а у нас её нет, у нас только бесконечный цикл, который для отладчика – не строка. Поэтому мы пока остановим отладчик следующей кнопкой

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

PORTD = 0b00000001;

PORTD = 0b00000010;

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

Теперь отладчик остановится на следующей строке

И теперь в окне ввода-вывода мы видим уже следующую картину

Мы видим, что самый левый бит, соответствующий нулевой ножке порта переключился в высокое логическое состояние, причём мы это видим не только в регистре PORTD, но и в регистре PIND, который отвечает за считывание состояния ножек порта D при его работе на ввод. Вот таким вот образом мы и отлаживаем наши программы.

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

После этого текст кода у нас должен будет остаться вот таким

 

Предыдущий урок Программирование МК AVR Следующий урок

 

Исходный код

 

 

Купить программатор можно здесь (продавец надёжный) USBASP USBISP 3.3

 

Смотреть ВИДЕОУРОК

 

 

Post Views: 39 031

программирование, прошивка и отладка из под Windows

STM8 + IAR + ST-LINK2: программирование, прошивка и отладка из под Windows

разделы: STM8 , среда разработки , дата: 14 марта 2016г.


STM8S103F3P6 и ST-Link2

Если в прошлый раз я писал о работе с STM8 из под Linux, то сейчас мне бы хотелось раскрыть этот вопрос с позиций Windows.

В качестве ОС я выбрал «старушку» Windows XP SP3, а в качестве «подопытного» чипа, так же как и в прошлый раз, у меня STM8S103F3P6 распаяный на плате как на картинке слева. Используемый мною программатор, это китайский клон ST-Link2.

Этот пост можно назвать «быстрым стартом» STM8в Windows.

1. Драйвера

Первым делом нужно будет поставить драйвера для программатора ST-Link2. Для этого заходим на домашний адрес компании ST в раздел данного программатора:

http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168

Проматываем страницу книзу, в раздел ПО:

после чего следует щелкнуть по STSW-LINK009. В результате попадем на страницу драйвера:

Как видно, драйвер предлагается для OC: Windows XP, Windows7, Windows8. Десятка похоже, что в пролете 😉

Кликнув по кнопке Download, получаем zip архив. Но т.к. как я уже говорил, что фирма ST сурова, то и никаких инсталятов со слайд-щоу и словами благодарности «за то что выбрали наше предложение», в архиве вы не найдете. Поэтому ставятся они по-другому.

Нужно вставить ST-Link2 в USB порт и дождаться когда запуститься мастер установки драйверов. В появившемся диалоговом меню следует отказаться от соединения с Window Update и в качестве источника драйверов указать распакованную папку скачанного архива.

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

Т.о. программатор начнет отображаться в диспетчере устройств:

2. Флэшер

После того, как драйвер программатора установлен, можно попытаться что-то запрограммировать. Но с софтом ситуация в STM8 я бы сказал, что не простая. Позволю себе процитировать компанию «Компэл».
На данный момент для разработки и отладки программного обеспечения для STM8 существует четыре среды: ST Toolset от STMicroelectronics, Ride7 от Raisonance (www.raisonance.com), CXSTM8 от Cosmic software, IAR Embedded Workbench от IAR Systems. Сравнительный анализ средств разработки программного обеспечения представлен в таблице1 Таблица 1. Сравнительный анализ бесплатных средств разработки программного обеспечения
Инструментарий Среда разработки Си-инструментарий Си-инструментарий других производителей Ограничение Си-иструментария, Кбайт Программатор-отладчик
STMicroelectronics ST Visual DevelopНетCosmic software, RaisonanceНетST-Link R-Link STICE
Raisonance Ride 7ЕстьНет16R-Link
Cosmic software CXSTM8ЕстьНет32Нет
IAR Systems IAR WorkbenchЕстьНет8 или полная версия на 30 днейST-Link STICE
Пакет ST Toolset включает в себя среду разработки ST Visual Develop и отдельную программу для более функционального внутрисхемного программирования flash-памяти микроконтроллеров ST Visual Programmer. Среда разработки ST Visual Develop имеет встроенный инструментарий для разработки программного обеспечения на языке assembler, но у нее также имеется возможность подключения и использования Си-инструментария от Raisonance и Cosmic software. Стоит заметить, что все четыре среды с Си-инструментарием предоставляют возможность использования с некоторыми ограничениями, а именно– по загружаемому коду во flash-память. УRaisonance оно составляет 16Кбайт, у Cosmic software– 32Кбайт, а у IAR– 8Кбайт или полную версию с 30-дневным ограничением.

Сейчас нужно будет скачать ST Toolset в состав которого входит флешер ST Visual Programmer. Его домашняястраница:www.st.com/web/en/catalog/tools/PF210568

Промотав cтраницу книзу и кликнув на Download получите zip-архив ST Toolset. После распаковки и установки у вас появятся ST Visual Developer и ST Visual Programmer. Первый нас не интересует, а второй следует запустить, это флешер. При запуске появиться окно конфигурации:

Выбрав тип микроконтроллера и программатор, попадаете в главное окно программы.

Важный момент: микроконтроллеры STM8 имеют единую шину памяти(адресная шина). Т.е. нет разделения на flash память и оперативную. Т.е. разделение есть на внутреннем уровне т.к. архитектура микроконтроллера все-таки гарвардская, но внешне, архитектура выглядит как фон Неймовская. Чтобы вспомнить, чем отличается одно от другого, приведу цитату из википедии:

В чистой архитектуре фон Неймана процессор в каждый момент времени может либо читать инструкцию, либо читать/записывать единицу данных из/в памяти. Оба действия одновременно происходить не могут, поскольку инструкции и данные используют один и тот же поток (шину). В компьютере с использованием гарвардской архитектуры процессор может читать инструкции и выполнять доступ к памяти данных одновременно, без использования кэш-памяти. Таким образом, компьютер с гарвардской архитектурой при определенной сложности схемы быстрее, чем компьютер с архитектурой фон Неймана, поскольку шины инструкций и данных расположены на разных, не связанных между собой физически, каналах. Исходя из физического разделения шин команд и данных, разрядности этих шин (следовательно, и адресные пространства) могут иметь различные значения и физически не могут пересекаться друг с другом.

Т.е. благодаря гарвардской архитектуре в AVR одна команда выполнялась за один такт.

Скриншот ST Visual Programmer:

Оперативка нас пока не интересует, на скриншоте красными стрелками помечены кнопки чтения и заливки прошивки.

Попытка прочитать что-то без программатора приведет к ошибке:

С программатором, но без микроконтроллера, тоже приведет к ошибке:

Пример успешного чтения прошивки:

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

Запись:

3. Среда разработки IAR

После того, как с прошивками разобрались, осталось узнать в чем эти STM8 программировать. Своего инструментария для разработки на Си у ST нет, а имеющиеся компиляторы или платны или доступны с ограничениями. Часто как наиболее оптимальное решение предлагается COSMIC, но без лицензионного ключа вы ничего в нем не сделаете, а он выдается спустя несколько дней с момента запроса (я ждал три дня). IAR имеет ограничение 8Кбайт, но лицензионный ключ выдается сразу. Причем ключ может выдаться на полностью функциональную версию, с ограничением в 30дней использования. Т.к. STM8S103F3P6 имеет как раз всего 8Кбайт, то большего как бы и не надо. В любом случае пока идет ключ для COSMIC, можно воспользоваться IAR. Скачать его можно с сайта IAR: https://www.iar.com/iar-embedded-workbench/#!?architecture=STM8

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

    Хорошие обзоры по интерфейсу IAR можно прочитать здесь:
  1. Микроконтроллеры STM8. Первая программа.
  2. ARM. Учебный курс. IAR EWARM. Создание проекта.

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

Сейчас наша задача составить простой Blink, скомпилировать его и загрузить в микроконтроллер. Для этого сначала нужно создать новый проект:

затем, задать параметры проекта:

имя проекта:

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

Но прежде, чем что-то компилировать, следует сначала настроить проект. Поэтому в браузере проекта следует щелкнуть правой кнопкой по названию проекта, и открыть Options

где первым делом, во вкладке target следует выбрать целевой микроконтроллер:

а в качестве отладчика ST-LINK

Так же полезно будет зайти в опции IAR в настроить окно вывода сообшений:

После чего можно уже будет нажать на кнопку компиляции:

В нижнем окне логов появится отладочная информация.


STM8S103F3P6

Плата STM8S103S103F3P имеет два светодиода Один выполняет роль индикатора питания, другой подтянут к пину PB5(да, как в Arduino pin13).

Попробуем написать программу для мигания этим светодиодом:

Закомментируем сначала функцию delay, скомпилируем проект, подключим ST-Link с микроконтроллером и нажмем зеленый треугольник «Debug and Download» …

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

Раскомментиров delay, скомпилировав и загрузив прошивку еще раз в микроконтроллер, на панели отладки можно будет нажать на красный крестик. Тогда программа запустится на выполнение и светодиод начнет периодически мигать с интервалом примерно 1/5 сек.

Резюмируя можно сказать, за небольшую сумму (170 руб за ST-Link2 + 68 руб за плату STM8S103F3P6) получили в свои руки достаточно профессиональную связку железа и софта, с которыми можно сделать многое.

Топ-10 лучших программаторов и дебаггеров с Алиэкспресс

В жизни любого радиолюбителя наступает момент, когда собранный своими руками программатор хочется заменить на что-то купленное и с бОльшими возможностями. Или расширить номенклатуру совместимых кристаллов. На Алиэкспресс можно найти огромный ассортимент универсальных программаторов и готовые адаптеры для установки микросхем памяти и контроллеров. В подборке будут интересные модели для AVR (ATMega/ATTiny), для PIC, STM8/STM32, для EEPROM, для Zigbee контроллеров и адаптеры.

 С другими полезными обзорами и списками выгодных покупок вы можете ознакомиться по ссылке.

Внутрисхемный отладчик CC Debugger за $7.65

 Все больше становится доступного программного обеспечения, с помощью которого можно настраивать по себя различные модули и устройства. А конкретно, CC-Debugger может использоваться для программирования и отладки систем на базе 8051, например, модулей CC2531, на базе которых производятся гаджеты для умного дома и «интернета вещей». Работает с программным обеспечением IAR и SmartRF Studio.

 

Недорогой USB Zigbee трансмитер-снифер СС2531

Хороший пример использования предыдущего отладчика CC-Debugger — это заливка адаптированной прошивки в компактный USB донгл для сети Zigbee. С помощью модифицированного Zigbee трансмиттера можно привязывать устройства в свою сеть, создавать собственные Zigbee-мосты, анализировать протоколы датчиков и так далее.

 Универсальный программатор AVR USBASP

 Один из лучших программаторов для AVR — это классический  USBASP, компактный и универсальный программатор, для загрузки программного обеспечения через интерфейс ISP. В комплекте есть кабель для загрузки через ISP на 10 контактов. Подходит не только для семейства ATMEGA8, но и для новых ATMEGA128. Работает в Win7.

 Дешевый ПРОГРАММАТОР AVR USBASP

А это еще один вариант USB ISP программатора для AVR (семейства ATMega и ATTiny). В отличие от предыдущего имеет выбор питания кристалла (5V или 3.3V джампером), а также в два раза меньшую стоимость. Интерфейс для программирования ISP, но есть смысл воспользоваться отдельным адаптером с ISP10 на ISP6 для удобства работы с компактными отладочными платами Arduino.

 

 Универсальный программатор Ch441A

Устройство представляет собой полноценный uart-мост и эмулятор последовательного порта. Предназначен для прошивки микросхем памяти (24 EEPROM и 25 SPI flash 8pin/16pin) и микроконтроллеров по spi (AVR, PIC, Singlechip STC). Подходит для восстановления флэш-памяти BIOS USB. Для работы с контроллерами Атмел используется программное обеспечение AVR Ch441A или AVRDUDE

Программатор-отладчик ST-LINK

Для работы с устройствами от STMicroelectronics рекомендую использовать программатор ST LINK. По ссылке версия ST-Link V2, который подходит для чипов семейств STM8 и STM32. Удобен для загрузки встроенного программного обеспечения на контроллер прямо в составе схемы, а также для отладки работы и поиска ошибок. В комплекте есть 4-pin кабель. Цена смешная — полтора бакса.

 

 

Программатор и SWD адаптер J-Link

А вот если нужен адаптер посерьезнее, то есть смысл посмотреть недорогой программатор SWD, который совместим со всеми функциями J-Link. В данной модели интерфейс упрощен до четырех линий: VCC, SWDIO, SWCLK, GND. Но, по сравнению с обычными, этот вариант быстрый и эффективный. Подключается через MicroUSB, корпуса, увы, не предусмотрено. Цена всего 2 бакса. 

 

Программаторы  PICKIT версий 2/3/3.5

Один из лучших  USB программаторов для PICmicro контроллеров и ключей KeeLOQ производства компании Microchip Technology. В лоте на выбор есть модели: PICKIT3, PICKIT2 или PICKIT 3,5. Лучше брать последние версии устройства. В комплекте идет плата расширения с ZIF-сокетом (PIC ICD2). Полный схемотехнический аналог фирменного программатора PICKIT 3 компании Microchip.

 

 Универсальный USB SPI программатор EZP2019

Новейшая версия универсального USB программатора EZP2019 с высокоскоростным интерфейсом SPI с большим набором адаптеров для EEPROM, клипсами и диском с программным обеспечением. Этот вариант несколько лучше дешевого программатора Ch441A. Является усовершенствованной версией программаторов EZPO2010/EZP2013. В комплекте есть все необходимое для работы.

 

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

 

 

Подключение микроконтроллеров AVR ISP с загруженной булавки



Извините, что задал здесь непрограммный вопрос. Я делаю свой первый круг с avrTiny . Все мои GPIO контактов загружены (резистор + светодиод). Как подключить мой заголовок isp с нагрузкой все еще на контактах

avr
Поделиться Источник vpillai     22 марта 2014 в 13:49

2 ответа


  • Драйвер для устройства USB AVR JTAG-ISP

    У меня есть программирующее устройство под названием USB AVR JTAG-ISP V. 1.2. Где я могу найти драйверы и хороший IDE для него?

  • Конфигурации микроконтроллеров AVR ШИМ

    Я знаю, что это глупо, но я действительно запуталась. | г—*—->AVR PIN | R | LED | GND

    Поделиться Vadzim     22 марта 2014 в 16:45



    1

    Я подключаю контакты ISP прямо к контактам microcontroller,а затем все общие устройства на одной шине / контактах проходят через резисторы серии 1k ом. Таким образом, если одно из подключенных устройств управляет сетью на другом уровне, чем ISP, существует нагрузка, предотвращающая прямое короткое замыкание.

    Вот сообщение AVR Freaks form об этом более подробно:
    http:/ / www.avrfreaks.net / index. php? name=PNphpBB2&file=viewtopic&t=58470

    Поделиться bobasaurus     25 марта 2014 в 21:08


    Похожие вопросы:


    Сообщение об ошибке в AVR studio4

    Недавно я купил программатор AVR USB от robokits.co.in, пытался программировать atmeg8 с помощью AVR studio4 и получаю следующее, когда нажимаю на параметры программы: при выполнении команды…


    AVR для Xcode 4?

    Кто-нибудь имел успех, используя xcode 4 в качестве IDE для AVR микроконтроллеров? Возможно ли иметь такой же объем интеграции, как и плагин для eclipse?


    Дизассемблер Atmel AVR

    Может ли кто-нибудь предложить мне какой-нибудь дизассемблер для 8-битных микроконтроллеров Atmel AVR? Для этого есть проекты с открытым исходным кодом? Спасибо.


    Драйвер для устройства USB AVR JTAG-ISP

    У меня есть программирующее устройство под названием USB AVR JTAG-ISP V. 1.2. Где я могу найти драйверы и хороший IDE для него?


    Конфигурации микроконтроллеров AVR ШИМ

    Я знаю, что это глупо, но я действительно запуталась. Я хочу сделать PWM импульс с 3 режимами на Atmega16: 1-1 кГц с рабочим циклом 100% 2-4 кГц с рабочим циклом 100% 3-1 кГц с рабочим циклом 50% Я…


    Ошибка при попытке отладки ATmega88 с помощью AVR Dragon

    Я пытаюсь отладить ATmega88 с помощью AVR Dragon и AVR Studio 6. Программа написана на языке C++. Каждый раз, когда я пытаюсь отладить программу, появляется окно сообщений со словами Начать отладку:…


    Использование функции автозаполнения в AVR Studio для кодирования C с помощью avr-gcc

    Как я могу включить или отключить функцию автозаполнения для IDE микроконтроллеров AVR-Studio 5 или АВР-студии 4 ? Нужно ли для этого редактировать некоторые установочные файлы? В видео AVR Studio…


    avr-gcc против Arduino в platform.io

    Я использую platform.io как IDE для программирования AVR микроконтроллеров по. Я начинаю программировать AVR (у меня есть опыт работы с C/C++ и программированием на OS, а не встроенным, хотя в…


    Проблема последовательного программирования после использования ISP

    Я использую программатор avr-mkII для программирования arduino — ISP в течение последнего месяца. Недавно я заметил, что с тех пор, как сделал это, я потерял возможность программировать arduino…


    АРМ состоялось прямое подключение подключение через ISP

    Мне нужно иметь прямое подключение 5 Гбит / с К моему Amazon VPC с моих серверов, расположенных в дата-центре ISP. Я не могу ждать больше 1 недели, чтобы настроить его. Возможно ли через размещенное…

    Схемы и материалы. Миниатюрный USB программатор для AVR микроконтроллеров

    Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL , то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP , мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

    Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

    Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
    Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
    Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:


    На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.


    Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно


    Прошивка управляющего микроконтроллера

    Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом:) Простейший программатор на пяти проводках для AVR
    Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:


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

    Установка драйвера

    Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:


    Выбираем папку где лежат дрова и жмем Далее


    Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:


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


    Все, теперь программатор готов к работе.

    Khazama AVR Programmer

    Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.


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


    Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
    В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

    Скачать файл печатной платы в SprintLayout можно по этой ссылке

    USBasp — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.

    Особенности программатора:
    — работа под любой платформой: Windows, Linux и Mac OS X
    — какие-либо специальные компоненты или smd не нужны
    — скорость программирования до 5 кБ/сек
    — SCK-джампер позволяет программировать низкоскоростные контроллеры ( — в планах: последовательный интерфейс (например для отладки)

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

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

    Заливка прошивки

    Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
    Прошейте программатор при помощи прошивки: «bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex» или «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
    Необходимо будет установить фьюзы для подключения внешнего кварца
    # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
    # TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
    # TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

    Установки джамперов

    J1 — источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
    J2 — обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
    J3 — если программируемый МК низкоскоростной

    Установка драйверов под Windows

    Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver». Windows установит драйвер.
    Теперь можно запустить avrdude, к примеру:
    1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
    2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex

    Сборка их исходников (под Linux)

    Компиляция прошивки:
    1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
    2. Войдите в директорию firmware/
    3. Выполните команду «make main.hex»
    4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
    Makefile с опцией «make flash»). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
    Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
    с опцией «make fuses»).

    Компиляция avrdude:
    ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
    1. Установите пакет libusb: http://libusb.sourceforge.net/
    2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
    3. cd avrdude-X.X.X
    4. Сконфигурируйте:
    ./bootstrap
    ./configure
    5. Компиляция:
    make
    make install

    Фото программатора USBasp

    Программы для работы с программатором

    AVRDUDE — поддерживается USBasp начиная с версии 5.2
    BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6
    Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude

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

    В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

    Описание USB программатора

    USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

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

    • SUT1 = 0
    • BOOTSZ1 = 0
    • BOOTSZ0 = 0
    • CKOPT = 0
    • SPIEN = 0

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

    Программирование Atmega8 через LPT-порт компьютера

    Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

    Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

    При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

    В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

    Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

    Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

    Настройка USB программатора

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

    Настройка порта:

    Настройка терминала:

    Настройка ASCII:

    Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

    Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

    Если это не так проверяем еще раз монтаж, особенно линию TxD.

    Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

    USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

    • «0», «Enter» — режим выключен.
    • «1», «Enter» — режим включён.

    Изменение скорости программирования (1МГц):

    • «0», «Enter» – максимальная скорость.
    • «1», «Enter» – сниженная скорость.

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

    (скачено: 1 203)

    Когда-то давно пару лет назад, в очередной раз пересмотрел подшивку како-го радиотехнического журнала и задумался: а не пора ли осваивать микроконтроллеры? С этим проблем не было, литературы много, примеров достаточно. Изучил матчасть, написал свою первую ПРОГРАММУ. Потом начались поиски того, чем эту программу запихнуть в контроллер, тоесть программатора. Нужна была схема простая, чтоб собрать из того, что под рукой и надежная, без глюков так сказать. После долгих поисков выбор пал на схему программатора из журнала «РАДИО» №10 2007г. ст. 31. Описывать эту схему не стану, для желающих в архиве есть оригинал статьи. Скажу лишь, что схема отлично работала, шила все подряд без проблем, только почему-то иногда вилетал МАХ232 (заменил 3 шт., может бракованые попались). Тот программатор подарил коллеге и решил собрать себе такой-же, но у меня не оказалось еще одного управляемого стабилизатора K78R12C, опять начались поиски замены… В результате родилась вот такая схема, это результат «скрещивания» журнальной схемы и фирменного программатора SI-PROG:

    MAX232 заменил на более быстродействующий ST232, управляемый стабилизатор заменил обычным 7812 и транзисторным ключем после него, транзисторы — ВС547, все остальные детали — по рекомендациям из оригинальной статьи. Также добавил отдельную подключаемую плату с панельками для разных типов контроллеров (так как в основном юзаю РІС-и, то плата пока только под них, а если нужно прошить AVR — то проводочками:-)). Монтируется все это на вот такой плате:

    А это сменная плата для ПИК-ов и микросхем памяти:

    Из панелек все неиспользуемые контакты удалить, чтобы не сверлить много лишних отверстий. Вот фото собраной платы:

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

    На фото видно в корпусе трансформатор питания, я его потом выкинул, так как он оказался слабоват (сделал светодиодную подсветку передней панели из сверхярких светодиодов, и трансформатор не осилил:-). Сейчас используется внешний блок питания 15В, и током до 1А. Программатор работает с программами PonyProg, Si-prog, WinPic800. Используя для управления программу PonyProg следует выбрать в соответствующем ее окне программатор SI Prog I/O и задать инверсию сигналов в соответствии с таблицей 1, для программ Si-Prog и WinPic 800 следует выбрать программатор JDM Programmer, а инверсию сигналов задать в соответствии с таблицами 2 и 3.

    «ЧИП и ДИП» — официальный дистрибьютор MikroElektronika

    Сербская компания MikroElektronika, основанная в 1997 году, специализируется на производстве и поставке законченных систем для разработки и отладки, а также обеспечивает высокопрофессиональную поддержку пользователей по всему миру. Большой ассортимент плат для микроконтроллеров PIC, dsPIC, PSoC, AVR, 8051 и ARM привлекают своей невысокой ценой и многофункциональностью. MikroElektronika предлагает разработчикам также компиляторы mikroC PRO, mikroBasic PRO и mikroPascal PRO для популярных семейств микроконтроллеров, что обеспечивает комплексный подход к удовлетворению потребностей разработчиков электроники. Огромное количество примеров и подробная документация помогают начать работу с компиляторами и отладочными платами практически сразу.

    Компания MikroElektronika является официальным партнером компании Microchip и консультантом по микроконтроллерам семейства PIC, а также официальным консультантом и партнером компаний Atmel, Cypress Semiconductor, NXP и Telit. MikroElektronika сотрудничает с многими крупными мировыми компаниями более чем в 30 странах по всему миру. Среди них: Toshiba, Hitachi, Sony, NASA, Ferrari, Ford, General Motors, Atmel, Siemens, Microchip, Suzuki, Kawasaki, CERN, Toyota и др. Помимо крупных компаний, продукция компания MikroElektronika широко используется для проектных разработок в области радиоэлектроники университетов и исследовательских центров по всему миру.

    MikroElektronika прилагает все усилия для того, чтобы предоставить клиентам полную документацию для всех типов продукции – так, компанией был выпущен ряд книг : «Basic для PIC-микроконтроллеров», «PIC-микроконтроллеры», «Введение в промышленные PLC контроллеры», «Радиоприемники», «Компоненты для электронных устройств» и др. Все книги изданы на английском языке и доступны для бесплатного скачивания на сайте производителя.

    В ассортименте «ЧИП и ДИП» широко представлен ассортимент отладочных средств. В первую очередь – это лабораторные стенды с богатым набором периферии для разработки и отладки приложений на базе соответствующих микроконтроллеров:

    ME-EASYAVR v7 – отладочная плата компании MikroElektronika для микроконтроллеров с ядром AVR.
    На плате есть все необходимое для разработки прототипа будущего устройства – 2х16 LCD-дисплей (COG) с последовательным интерфейсом, интегрированный на плату программатор AVRprog, светодиоды для отображения логического состояния выводов микроконтроллера, клавиатура 4х4, клавиатура с функционалом джойстика и расширитель портов.
    Интегрированный на плату программатор AVRprog, позволяет без покупки дополнительных устройств начать разработку приложений для микроконтроллера. ME-BIGAVR6 — отладочная плата, версия 6, с контроллером сенсорного экрана и богатым набором периферии для разработки и отладки приложений на базе микроконтроллеров семейства AVR от Atmel.
    Плата универсальна и поддерживает микроконтроллеры в корпусах (установлены на дочерние платы со слотами DIMM168P) TQFP64 и TQFP100. Наличие встроенного внутрисхемного USB программатора превращает плату в многофункциональную отладочную систему. Вы просто пишите программу для одного из AVR компиляторов, генерируете hex-файл и программируете свой микроконтроллер, используя встроенный программатор AVRprog.
    Многочисленные модули на плате, такие как LCD дисплей 128×64, буквенно-цифровой LCD дисплей 2×16, часы реального времени, последовательная EEPROM и т.д., позволяют симулировать операции конечного устройства. Оптимально для организации учебных классов и лабораторий по изучению работы микроконтроллеров Atmel. ME-EASYPIC V7 – лабораторный стенд 7-го поколения популярного отладочного семейства плат ME-EASYPIC с богатым набором периферии для разработки и отладки приложений на базе микроконтроллеров семейства PICmicro от Microchip, использующегося в работе как радиолюбителями, так и профессионалами.
    Наличие встроенного быстрого программатора mikroProg ™ и внутрисхемного отладчика позволяет осуществлять поддержку более чем 250 PIC-микроконтроллеров. В составе платы идет PIC18F45K22. ME-BIGPIC6 – отладочная плата для PIC-микроконтроллеров в корпусе TQFP с 64 и 80 выводами. Хорошо методически проработанная плата стенда включает сменный модуль 8-разрядного микроконтроллера PIC18F8520.
    На плату интегрирован программатор, что позволяет сэкономить средства на покупке отдельного программатора. На ME-BIGPIC6 имеется 16-разрядный расширитель портов ввода/вывода с SPI-интерфейсом (MCP23S17), интерфейс RS-232, 67 светодиодов для отображения логического состояния выводов микроконтроллера, последовательная память EEPROM 24AA01 емкостью 1 кБ данных и интерфейсом I2C.
    Для заказа доступны микроконтроллерные модули ME-BIGPIC6 80-pin TQFP PIC18F8520 и ME-BIGPIC6 80-pin TQFP PIC18F8722.
    ME-EASYARM V6 – отладочная плата с богатым набором периферии для разработки и отладки на базе модуля ME-mikroBoard for ARM с установленным микроконтроллером LPC2148. На модуле имеется serial Flash, слот для карт памяти microSD и разъем miniUSB. Все выводы микроконтроллера доступны на разъеме IDC10. На плате разработчику доступна serial EEPROM и CAN. Оптимально для организации учебных классов и лабораторий по изучению работы микроконтроллеров NXP. ME-UNI DS6 – универсальная отладочная плата (лабораторный стенд) компании mikroElektronika для изучения микроконтроллеров PIC, AVR, 8051, ARM, PSoC и dsPIC. Хорошо методически проработанная плата включает универсальное посадочное место, в которое может быть установлена одна из плат специализации (mikroBoard).
    Плата оснащена большим количеством разнообразных устройств, ввода и вывода информации и гибкой системой их коммутации с платой специализации. В качестве устройств ввода предусмотрены кнопки, подключаемые ко всем линиям портов микроконтроллеров, 12-разрядный АЦП, температурный датчик, накопитель MMC/SD. Представлен широкий спектр дочерних и оценочных плат для подключения к лабораторным стендам, среди них: оценочная плата датчика движения ME-MOTION SENSOR Board, плата часов реального времени ME-RTC2 Board, плата акселерометра ME-ACCELEROMETR Board, оценочная плата АЦП ME-ADC PROTO Board дочерняя плата с MMC/SD интерфейсом ME-MMC/SD Board, дочерняя плата для подключения карт памяти Compact Flash ME-CF Board, платы дисплеев ME-GLCD 128×64, ME-COG2x16 , ME-LCD2x16, сенсорный экран ME-TOUCH SCREEN и многие другие.

    Линия внутрисхемных программаторов для соответствующих типов микроконтроллеров: ME-8051PROG2, ME-AVRPOG2, ME-ARM FLASH, ME-PICFLASh3.

    Макетные платы – лучшее решение для простой и быстрой разработки приложений на базе соответствующих микроконтроллеров: ME-AVR READY board, ME-8051 READY board, ME-PIC READY board.

    Для разработки мультимедийных устройств отличным решением являются платы серии: ME-mikromedia for XMEGA, плата на базе мк ATxmega128A1 с TFT 320х240 дисплеем для разработки мультимедийных устройств и ME-mikroMEDIA for ARM, плата на базе мк ARM LPC2148 с TFT 320х240 дисплеем для разработки мультимедийных устройств.

    См. продукцию MikroElektronika в каталоге «ЧИП и ДИП»:

    Android-приложение для портативного программатора AVR

    Kanda выпустила бесплатное приложение для Android для смартфонов и планшетов, которое позволяет обновлять содержимое AVR или портативного программатора PIC с телефона. Просто загрузите программатор, скопируйте его в файл программатора (.PRG), отправьте его своему клиенту, дистрибьютору или инженеру, и они используют свой телефон или планшет для обновления программатора.

    Что такое портативные программаторы Kanda?

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

    Портативный AVR

    поддерживает все микроконтроллеры AVR, включая новейшие устройства с программным интерфейсом UPDI, такие как ATmega3208. Они также поддерживают программирование AVR JTAG и устройства ATtiny с интерфейсом TPI. Версия X также поддерживает микроконтроллеры ATxmega с PDI и JTAG.

    Портативные программаторы

    PIC поддерживают все микроконтроллеры PIC12, PIC16 и PIC18.

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

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

    Итак, ваш инженер выбирает все необходимые файлы и настройки, а затем загружает программатор. Затем они могут сохранить содержимое программатора в виде файла с расширением PRG. Этот файл может быть зашифрован , чтобы обеспечить дополнительную безопасность вашего кода.

    Распространение файла программиста
    После того, как вы создали файл программатора, вы можете загрузить его в облако, например на Google Диск, или отправить его по электронной почте на телефон своего представителя. Если вы зашифровали его, вам также нужно будет отправить пароль в отдельном электронном письме или по телефону!

    Получение и использование приложения
    Приложение доступно для загрузки в Google Play.См. Эту страницу для получения информации о загрузке

    Ссылка для скачивания и полная информация о приложении

    Вот макет приложения

    Найдите файл Programmer из списка в облачном хранилище или телефоне и выберите файл с правильным описанием. Теперь нажмите Load Programmer , чтобы поместить новое содержимое в программатор, все готово.

    Ваш смартфон должен поддерживать режим USB-хоста, и вам понадобится кабель USB On The Go (OTG) , который недорого на Ebay или аналогичный.Вашему клиенту также понадобится USB-ключ Kanda, входящий в стартовый комплект программатора.

    Может работать с Kanda
    Это приложение Andriod бесплатное, и мы разработали его, чтобы сделать наши портативные программаторы AVR еще более гибкими, чтобы максимально упростить обновление прошивки.

    Ссылка для скачивания и полная информация о приложении

    Подробные сведения о портативном программаторе AVR

    AVRDroid — проект IEEE Maker

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

    УСЛОВИЯ

    ДЛЯ УЧАСТИЯ ИЛИ ВЫИГРЫША НЕ ТРЕБУЕТСЯ ПОКУПКА. ПОКУПКА НЕ УВЕЛИЧИТ ВАШИ ШАНСЫ НА ВЫИГРЫШ.

    Contest: 2017 IEEE Maker Project («Конкурс»)

    Спонсор : Спонсором конкурса является IEEE, 445 Hoes Lane, Piscataway, NJ 08854-4141 USA («Спонсор»).

    Право на участие : В конкурсе могут участвовать жители Соединенных Штатов Америки и других стран, если это разрешено местным законодательством, в возрасте от восемнадцати (18) лет и старше. Сотрудники Спонсора, его агентов, аффилированных лиц и их ближайшие родственники не имеют права участвовать в Конкурсе. Конкурс регулируется всеми применимыми государственными, местными, федеральными и национальными законами и постановлениями. Не действует в странах и регионах, где это запрещено законом.

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

    Соглашение с Официальными правилами : Участвуя в этом Конкурсе, Участники соглашаются соблюдать настоящие Официальные правила, установленные Спонсором и / или которые могут быть исправлены или изменены Спонсором после начала Конкурса по собственному усмотрению Спонсора. и без предварительного уведомления. Спонсор оставляет за собой право просмотреть и квалифицировать все Заявки и отклонить любые Заявки, которые не соответствуют требованиям для участия, установленным Спонсором, или отменить Конкурс полностью по собственному усмотрению Спонсора.Решения Спонсора являются окончательными и обязательными во всех отношениях.

    Период подачи заявок : этот конкурс открывается 16 мая 2017 года в 10:00 утра по восточному времени, и все заявки должны быть отправлены до 23:59 по восточному времени 17 октября 2017 года («Период проведения акций»).

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

    1. Разработка проекта была оплачена организацией или работодателем или должна быть построена для использования в организации.
    2. Вы не являетесь физическим лицом или членом команды, создавшей проект.
    3. Вы еще не начали работу над проектом ( Примечание: проекты не должны быть завершены при отправке, но они должны быть запущены ).
    4. Проект представлен без изображения или видео, его изображающего.
    5. Проект представлен без названия или описания, содержит менее 50 или более 300 слов.

    У участников будет два способа принять участие в этом конкурсе. Участники могут принять участие в конкурсе в период проведения акции по следующим каналам:

    • Микросайт проекта IEEE Maker : Участники могут участвовать, отправив проекты через микросайт (передатчик.ieee.org/makerproject/). Чтобы быть засчитанным как действительная заявка, участник должен предоставить свой адрес электронной почты до подачи заявки.Все записи также должны соответствовать правилам Facebook.
    • Facebook: участники, которым «нравится» страница IEEE Facebook или любая из участвующих страниц Facebook, управляемых персоналом IEEE, могут подавать голоса через приложение IEEE Maker Project. Чтобы быть засчитанным как действительная заявка, участник должен предоставить свой адрес электронной почты до подачи своих голосов. Как только участник предоставит свою информацию, он сможет взаимодействовать со всеми разделами сайта. Все записи также должны соответствовать правилам Facebook.

    Нет ограничений на количество раз, когда человек может входить в систему. Работы должны быть оригинальными. Заявки, которые копируют другие записи или интеллектуальную собственность кого-либо, кроме Участника, могут быть удалены Спонсором, а Участник может быть дисквалифицирован. Спонсор оставляет за собой право удалить любую заявку и дисквалифицировать любого Участника, если заявка будет сочтена, по собственному усмотрению Спонсора, неуместной. Facebook в дальнейшем именуется «Конкурсная организация». Facebook, Google Plus, Instagram, LinkedIn, Случайный выбор.org и Twitter в данном документе именуются «Состязания».

    Гарантия участника

    и разрешение спонсору: Принимая участие в конкурсе, участники гарантируют и подтверждают, что заявка на участие в конкурсе была создана и отправлена ​​участником. Участники также заявляют и гарантируют, если они проживают за пределами Соединенных Штатов Америки, что их участие в этом конкурсе и принятие приза не будут нарушать их местные законы. Принимая участие в Конкурсе, Участники также предоставляют Спонсору право повторно использовать и / или размещать свои работы в социальных сетях Спонсора.Записи также могут использоваться в рекламных, рекламных и других целях в любых средствах массовой информации, известных сейчас и в будущем. Имена, изображения и адрес электронной почты участников не будут использоваться в рекламных материалах.

    Приз: Количество доступных призов, призов, приблизительная розничная стоимость и шансы на выигрыш призов: Все проекты победителей в категориях будут представлены на IEEE Transmitter, The Institute, Potentials Magazine и получат цифровой сертификат. Каждый из шести (6) победителей (доступность, образование, развлечения, здоровье и безопасность, устойчивость, транспорт и прочее) получит приз в виде одной (1) подарочной карты Amazon на 50 долларов США (или эквивалентной суммы в местной валюте).Будет вручен один (1) второй приз — подарочная карта Amazon на сумму 250 долларов США (или эквивалентную сумму в местной валюте). Также будет вручен один (1) главный приз в виде подарочной карты Amazon на сумму 500 долларов США (или эквивалентную сумму в местной валюте). Призы будут вручены победителю после завершения периода проведения акции. Шансы на выигрыш приза зависят от количества подходящих работ, полученных в период проведения акции. Спонсор оставляет за собой право не присуждать призы во всех категориях, если заявки не соответствуют требованиям.

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

      1. Оригинальность
      2. Инновации
      3. На пользу человечеству

    Уведомление о потенциальных победителях призов : После объявления победителя спонсор уведомит их по электронной почте.Все потенциальные победители будут уведомлены спонсору по электронной почте. У потенциальных победителей будет пять (5) рабочих дней для ответа после получения первоначального уведомления о призах, в противном случае приз может быть конфискован и передан другому победителю. От потенциальных победителей может потребоваться подписание аффидевита о праве на участие (в котором подтверждается, что они соблюдают эти правила), а также освобождение от ответственности и освобождение от гласности (если это разрешено законом), которые, если они выдаются, должны быть заполнены, подписаны и возвращен в течение 10 (десяти) рабочих дней с даты выдачи, в противном случае приз будет аннулирован и может быть передан другому победителю.Если уведомление о призах или призах возвращается как недоставленное или в случае несоблюдения настоящих Официальных правил, приз будет аннулирован и может быть передан другому победителю.

    Разглашение, гласность и конфиденциальность : Получив приз и / или, по запросу, подписав письменное заявление о праве на участие и об ответственности / освобождении от гласности, Победитель приза дает согласие на использование своего имени, изображения и бизнеса. имя и адрес Спонсора в рекламных и рекламных целях, в том числе, помимо прочего, на страницах Спонсора в социальных сетях, без какой-либо дополнительной компенсации, за исключением случаев, когда это запрещено.Никакие записи не возвращаются. Все работы становятся собственностью Спонсора. Обладатель приза соглашается освободить и оградить Спонсора и его должностных лиц, директоров, сотрудников, аффилированные компании, агентов, правопреемников и правопреемников от любых претензий или оснований для иска, возникающих в связи с участием в конкурсе. Победившая заявка будет объявлена ​​27 ноября 2017 года и опубликована на IEEE Transmitter.

    Спонсор

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

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

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

    Общие ограничения призов : Замена призов или передача призов не разрешены, кроме как Спонсором в связи с недоступностью приза. Налоги на импорт / экспорт, НДС и национальные налоги на призы являются исключительной ответственностью победителей. Принятие приза означает разрешение Спонсору и его назначенным лицам использовать имя и изображение победителя в рекламных, рекламных и других целях в любых средствах массовой информации, известных сейчас и в дальнейшем, без дополнительной компенсации, если это не запрещено законом.Победитель признает, что ни Спонсор, ни организации конкурса, ни их директора, сотрудники или агенты не давали и не несут никакой ответственности за какие-либо гарантии, заявления или гарантии, явные или подразумеваемые, фактически или по закону, в отношении любого приза. , включая, помимо прочего, его качество, механическое состояние или пригодность для определенной цели. Любые и / или все гарантии на приз (если таковые имеются) регулируются условиями соответствующих производителей, поэтому победители соглашаются обращаться исключительно к таким производителям за любой такой гарантией и / или гарантией.

    Заявления и гарантии в отношении заявок: Отправляя Заявку, вы заявляете и гарантируете, что ваша Заявка не содержит и не будет содержать, содержать или описывать, как определено по исключительному усмотрению Спонсора: (A) ложные утверждения или любые искажения ваших принадлежность к физическому или юридическому лицу; (B) личная информация о вас или любом другом человеке; (C) заявления или другой контент, который является ложным, вводящим в заблуждение, вводящим в заблуждение, скандальным, непристойным, непристойным, незаконным, дискредитирующим, клеветническим, мошенническим, вредоносным, угрожающим, оскорбляющим, ненавистным, унижающим достоинство, запугивающим или оскорбительным по расовому или этническому признаку; (D) поведение, которое может рассматриваться как уголовное преступление, может повлечь за собой уголовную или гражданскую ответственность или может нарушить какой-либо закон; (E) любую рекламу, продвижение или другое навязывание, либо торговую марку или торговую марку третьих лиц; или (F) любой вирус, червь, троянский конь или другой вредоносный код или компонент.Отправляя Заявку, вы заявляете и гарантируете, что обладаете полными правами на Заявку и получили все необходимые согласия, разрешения, утверждения и лицензии для подачи Заявки и соблюдения всех настоящих Официальных правил, а также что поданная Заявка является вашей единственной оригинальной работой, ранее не публиковалась, не выпускалась или не распространялась и не нарушает никаких прав третьих лиц и не нарушает какие-либо законы или постановления.

    Ограничение ответственности : Спонсор, Конкурсные организации и их соответствующие родители, аффилированные лица, подразделения, лицензиаты, дочерние компании, рекламные агентства и агентства по продвижению, а также соответствующие сотрудники, должностные лица, директора каждой из вышеупомянутых организаций, акционеры и агенты («Освободившиеся стороны») не несут ответственности за неправильную или неточную передачу введенной информации, человеческий фактор, техническую неисправность, потерю / задержку передачи данных, пропуск, прерывание, удаление, дефект, сбои линии любой телефонной сети, компьютера. оборудование, программное обеспечение или любое их сочетание, невозможность доступа к веб-сайтам, повреждение компьютерной системы пользователя (аппаратного и / или программного обеспечения) из-за участия в этом конкурсе или любые другие проблемы или ошибки, которые могут возникнуть.Принимая участие, участники соглашаются освободить и обезопасить Освободившиеся стороны от любых претензий, исков и / или ответственности за травмы, убытки или ущерб любого рода, возникающие в результате или в связи с участием в и / или ответственности за травмы, убытки или ущерб любого рода, причиненные физическому лицу или имуществу, возникшие в результате или в связи с участием и / или участием в этом конкурсе, участие — это любая деятельность, связанная с конкурсом, или использование любого выигранного приза. Материалы для входа, которые были подделаны или изменены, являются недействительными.Если по какой-либо причине этот конкурс не может быть проведен, как планировалось, или если этот конкурс или любой связанный с ним веб-сайт (или любая его часть) поврежден или не позволяет надлежащим образом играть в этом конкурсе и обрабатывать заявки в соответствии с этими правилами, или если заражение компьютерным вирусом, ошибки, подделка, несанкционированное вмешательство влияют на администрирование, безопасность, справедливость, целостность или надлежащее проведение этого конкурса, Спонсор оставляет за собой право по своему усмотрению дисквалифицировать любое лицо, причастное к такому действию, и / или отменить, прекратить, изменить или приостановить этот конкурс или любую его часть, или изменить эти правила без предварительного уведомления.В случае разногласий относительно того, кто подал онлайн-заявку, заявка будет считаться отправленной авторизованным владельцем учетной записи по адресу электронной почты, указанному во время подачи заявки. «Уполномоченный владелец счета» определяется как лицо, назначенное для адреса электронной почты поставщиком доступа в Интернет, поставщиком онлайн-услуг или другой организацией, ответственной за назначение адресов электронной почты для домена, связанного с данным адресом электронной почты. Любая попытка участника или любого другого лица умышленно повредить какой-либо веб-сайт или подорвать законную работу конкурса является нарушением уголовного и гражданского законодательства, и в случае такой попытки Спонсор оставляет за собой право требовать возмещения убытков и других средств правовой защиты от любое такое лицо в максимальной степени, разрешенной законом.Этот конкурс регулируется законами штата Нью-Джерси, и все участники настоящим подчиняются исключительной юрисдикции федеральных судов или судов штата, расположенных в штате Нью-Джерси, для разрешения всех претензий и споров. Facebook, Google Plus, Instagram, LinkedIn, Random.org и Twitter не являются спонсорами и не участвуют в этом конкурсе.

    Споры : КАЖДЫЙ УЧАСТНИК СОГЛАШАЕТСЯ, ЧТО: (1) ЛЮБЫЕ И ВСЕ СПОРЫ, ПРЕТЕНЗИИ И ПРИЧИНЫ ДЕЙСТВИЙ, ВОЗНИКАЮЩИЕ ИЛИ В СВЯЗИ С ДАННЫМ КОНКУРСОМ ИЛИ ЛЮБЫМИ ПРИЗЫМИ, ПРИСУТСТВУЮЩИМИ, БУДУТ РАЗРЕШЕНЫ ИНДИВИДУАЛЬНО, БЕЗ ПЕРЕРАБОТКИ АССОЦИАЦИЯ АМЕРИКАНСКОГО АРБИТРАЖА, ПОСЛЕДУЮЩАЯ АССОЦИАЦИИ АМЕРИКАНСКОГО АРБИТРАЖА, ДЕЙСТВИТЕЛЬНО, (2) ЛЮБЫЕ И ВСЕ ПРЕТЕНЗИИ, СУДЕБНЫЕ РЕШЕНИЯ И ПРИЗЫ, ВКЛЮЧАЮЩИЕ ФАКТИЧЕСКИЕ ПРЕТЕНЗИИ, ВКЛЮЧАЮЩИЕ БЕЗ ПРЕДВАРИТЕЛЬНЫХ ЗАЯВОК ЭТОТ КОНКУРС, НО НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ гонорары адвокатам; И (3) НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ЛЮБОЙ УЧАСТНИК НЕ БУДЕТ РАЗРЕШЕН НА ПОЛУЧЕНИЕ НАГРАД ЗА, И НАСТОЯЩИЙ ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ПРАВ НА ПРЕТЕНЗИЮ, КАРАТЕЛЬНЫЕ, СЛУЧАЙНЫЕ И КОСВЕННЫЕ УБЫТКИ И ЛЮБЫЕ ДРУГИЕ УБЫТКИ, ЗА ИСКЛЮЧЕНИЕМ И ЛЮБЫЕ И ВСЕ ПРАВА НА УБЫТКУ МНОЖЕСТВЕННЫМ ИЛИ Иным образом УВЕЛИЧИВАЮТСЯ.ВСЕ ВОПРОСЫ И ВОПРОСЫ, КАСАЮЩИЕСЯ СТРОИТЕЛЬСТВА, ДЕЙСТВИЯ, ТОЛКОВАНИЯ И ДЕЙСТВИЯ НАСТОЯЩИХ ОФИЦИАЛЬНЫХ ПРАВИЛ ИЛИ ПРАВ И ОБЯЗАННОСТЕЙ УЧАСТНИКА И СПОНСОРА В СВЯЗИ С КОНКУРСОМ, РЕГУЛИРУЮТСЯ И СОЗДАВАЮТСЯ ЗАКОНОМ. НЬЮ-ДЖЕРСИ, БЕЗ ПРИМЕНЕНИЯ ЛЮБОГО ВЫБОРА ЗАКОНА ИЛИ КОНФЛИКТА ЗАКОНОДАТЕЛЬСТВА, ПРАВИЛ ИЛИ ПОЛОЖЕНИЙ (ШТАТА НЬЮ-ДЖЕРСИ ИЛИ ЛЮБОЙ ДРУГОЙ ЮРИСДИКЦИИ), КОТОРЫЕ ВЫЗЫВАЛИ ПРИМЕНЕНИЕ ЗАКОНОВ ЛЮБОЙ ЮРИСДИКЦИИ, ДРУГОЙ ЮРИСДИКЦИИ .СПОНСОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ТИПОГРАФИЧЕСКИЕ ИЛИ ДРУГИЕ ОШИБКИ ПРИ ПЕЧАТИ ПРЕДЛОЖЕНИЯ ИЛИ АДМИНИСТРАЦИИ КОНКУРСА ИЛИ В ОБЪЯВЛЕНИИ ПРИЗОВ.

    Результаты конкурса и официальные правила : Чтобы узнать личность победителя и / или копию настоящих Официальных правил, отправьте конверт с маркой и обратным адресом по адресу Fran Tardo, IEEE, 445 Hoes Lane, Piscataway, NJ 08854-4141 США.

    4 простых шага для отладки вашего проекта Arduino

    Как отладить ваш проект Arduino

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

    Запустите схему >>

    Большинство программ используют отладчик, чтобы помочь программисту находить ошибки и устранять их. Но в Arduino такой системы отладки нет. Отладка Arduino — одна из наиболее сложных задач управления проектом Arduino.В отличие от большинства других IDE, в Arduino IDE нет официальной функции отладки Arduino. Многие пользователи удивлены отсутствием специального инструмента для отладки Arduino.

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

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

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

    Дизайн

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

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

    Build

    С точки зрения построения вашего проекта, именно здесь вы фактически даете жизнь своей схеме. «Процесс сборки» — это когда Arduino IDE компилирует ваш скетч на C ++ в машинный код, который затем загружается прямо на вашу плату Arduino.

    Circuito.io

    Код

    Код, который вы получаете от circuito.io, на самом деле является тестовым кодом без какой-либо логики.Этот тестовый код используется для проверки того, что все ваши компоненты подключены правильно и работают правильно. Это помогает проверить, нет ли сбоев в настройке вашего оборудования. circuito.io также предоставляет библиотеки кода для всех выбранных вами компонентов. Если ваш тестовый код не работает, вы знаете, что вам нужно начать процесс отладки.

    Шаг 1. Проверьте ваше оборудование

    Как упоминалось выше, если ваш код circuito.io не работает, скорее всего, у вас проблема с вашим оборудованием.Это означает, что вам нужно начать отладку оборудования.

    Вот несколько основных шагов по устранению неполадок оборудования:

    1. Проверьте проводку — Одно из первых действий, которое вы должны сделать при подключении вашей цепи, — это проверить, что вы все подключили правильно. Если вы вставили перемычки не в тот контакт Arduino или неправильно разместили на макетной плате, ваша программа не сможет взаимодействовать с компонентом. Еще раз проверьте все компоненты и провода, чтобы убедиться, что все надежно на месте.Если у вас сложная схема, иногда лучше начать с нуля, тестируя каждый компонент за раз, чтобы устранить проблему.
    2. Проверить пайку — Если некоторые из ваших частей потребовали пайки во время настройки, убедитесь, что вы припаяли их правильно. Плохо припаянные детали — одна из самых частых причин технических неисправностей. Если не можете сказать, перепаяйте.
    3. Проверить источник питания — Если проблема с вашей схемой все еще не устранена, вам необходимо проверить источник питания.Используя мультиметр, вы можете проверить 2 вещи:

    Шаг 2: Отладка кода

    Если ваш тестовый код работает, пора написать собственный код. При написании собственного кода Arduino вы должны следовать ряду основных правил и рекомендаций. Следуя приведенным ниже инструкциям, вам будет намного проще, если вам понадобится отлаживать его позже:

    • Напишите код небольшими порциями и протестируйте каждый из них.
    • Обеспечьте осмысленные имена для переменных и функций
    • Используйте функции
    • Используйте константы, а не числа
    • Напишите комментарии, объясняющие варианты кодирования для дальнейшего использования
    • Убедитесь, что ваш код имеет правильный отступ и всегда остается читаемым.вы можете использовать Alt-t для автоматического отступа всего эскиза.

    Компиляция

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

    Если вы понимаете, что означает сообщение об ошибке, попробуйте исправить указанную проблему и снова скомпилировать. Это удобная форма устранения неполадок Arduino.

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

    Распространенные синтаксические ошибки:

    • отсутствует; в конце каждой строки
    • неправильная или отсутствующая скобка {}
    • опечатка
    • неопределенные переменные и функции

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

    Выполнить код

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

    Serial Monitor

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

    • Переменные
    • Входы — показания датчиков
    • Распечатки, которые указывают на выполнение программы, например, внутри оператора «если», чтобы увидеть, было ли выполнено условие
    • Выходы — например, Значения ШИМ перед записью их на вывод
    • Все, что вам кажется важным для вывода на экран

    Проверить код вручную

    Один хороший способ оценить качество вашего кода и проверить наличие ошибок — это просмотреть ваш код вручную.Вы можете сделать это:

    1. Написав свой код с нуля и разбив его, чтобы увидеть, не допустили ли вы ошибок в процессе (чаще всего это будут синтаксические ошибки).
    2. Пересматривая ваш дизайн и спрашивая, в чем ваша основная логика. Запишите это словами, а затем посмотрите, отвечают ли ваши операторы кода на этот вопрос. Иногда, когда мы углубляемся в программирование, мы делаем ошибку, сосредотачиваясь на мелких деталях и упуская из виду общее направление проекта. В этом состоянии легко потерять связь с первоначальной идеей.
    3. Просмотрите свой код и добавьте комментарии (сколько угодно), чтобы объяснить себе, что вы пытаетесь сделать.

    Шаг 3. Использование внешних программных средств отладки

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

    Visual Micro

    Visual micro — это подключаемый модуль, доступный через Microsoft Visual Studio, который используется для создания кроссплатформенных программ на Arduino. Будет принят любой код, созданный в Visual Micro, который соответствует Arduino. Visual Micro отлично подходит для совместных команд, занимающихся отладкой Arduino, поскольку он позволяет редактировать общий код и библиотеки. Код можно создавать на разных платформах и комбинировать с программным кодом на протяжении всего процесса сборки.Visual Micro также предлагает отладку GDB и отладку через последовательный порт, Bluetooth и Wi-Fi.

    Atmel studio

    Atmel Studio IDE — это бесплатное программное обеспечение, предлагающее конкурентоспособные средства отладки для устранения ошибок кода. С помощью Atmel Studio проект можно разработать, скомпилировать и загрузить в соответствующий микропроцессор. Как и Arduino IDE, IDE Atmel Studio использует тот же код, а это означает, что вам не нужно изучать новый язык программирования, чтобы использовать его. Atmel очень универсален для сообщества разработчиков ПО с открытым исходным кодом и поддерживает.ino скетчи и исходные коды C ++. Atmel Studio также предоставляет очень хорошие возможности отладки с помощью DebugWire или JTAG.

    DebugWIRE

    DebugWire — это протокол Atmel для отладки многих ATTiny (например, ATTiny 13, 85) и ATmegas (например, ATmega48 / 88/168/328) без JTAG, только через контакт сброса. Протокол DebugWire не задокументирован Atmel, но некоторые ребята реконструировали большие части протокола и смогли создать несколько простых отладчиков. Используя debugWIRE, можно получить полный доступ для чтения и записи ко всей памяти и полный контроль над потоком выполнения.Он поддерживает пошаговые инструкции, инструкции перехода к курсору, перехода и прерывания программного обеспечения.

    Шаг 4. Использование симуляторов и эмуляторов Arduino

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

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

    Отладка

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

    Вы можете увидеть, что делает программа

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

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

    Построение графиков и протоколирование

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

    Эксперименты

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

    Тестирование новых компонентов

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

    Создание чертежей электронных схем

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

    Popular Simulator

    1. Лаборатория электроники на Tinkercad (ранее схемы.io)

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

    2. Virtual Breadboard

    Virtual Breadboard зарекомендовал себя как один из самых мощных и продвинутых симуляторов Arduino, доступных сегодня.Virtual Breadboard выросла в индустрии электронных схем и сегодня может имитировать устройства Arduino, Netduino и микроконтроллеры PIC. При запуске пользователь получает доступ к полной виртуальной среде разработки, в которой он может программировать непосредственно на плате Arduino. Также стоит отметить, что он также может действовать как эмулятор AVR.

    Отладка Arduino не должна быть сложной

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

    Как вы видели в этом руководстве, существует множество внешних инструментов, которые помогут вам, но лучший способ отладки — это метод проб и ошибок, выявляя неисправности и исправляя их по ходу дела.

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

    По сравнению с IDE со встроенным отладчиком отладка Arduino может быть довольно неудобной.Если вы протестируете, скомпилируете и запустите свой код перед тем, как пропустить его через сторонний отладчик, вы будете на правильном пути к созданию качественного кода. Точно так же, если вы заблудитесь по пути, к вашим услугам активное сообщество разработчиков ПО с открытым исходным кодом.

    Аппаратный взлом: извлечение прошивки из микроконтроллеров Atmel

    Недавно мы обсуждали взлом оборудования для специалистов по безопасности и исследователей. При проведении исследования безопасности оборудования нам часто требуется извлечь прошивку из встроенной флэш-памяти микроконтроллеров.В качестве основы для этого мы решили начать серию статей, в которых мы обсудим процесс извлечения прошивки из различных микроконтроллеров (MCU). Цель этой серии статей — охватить ряд микроконтроллеров, которые могут встретиться, и познакомить вас с инструментами, программным обеспечением и методами, используемыми для извлечения микропрограмм или для проверки того, что разработчик системы правильно защитил области памяти микроконтроллера.

    В этой первой части мы рассмотрим микроконтроллер Atmel Atmega2561. Чтобы получить доступ к прошивке микроконтроллеров Atmel, мы будем читать данные напрямую с контроллера через последовательный интерфейс программирования (SPI).Для этого требуются следующие инструменты и программное обеспечение:

    Используя Bus Pirate в сочетании с программным обеспечением с открытым исходным кодом avrdude , микропрограмму микроконтроллера Atmel AVR можно извлечь из флэш-памяти микроконтроллера через SPI. Приложение avrdude можно скачать здесь.

    Стандартная прошивка Bus Pirate должна работать нормально, если вы не извлекаете флеш-память из определенных микроконтроллеров Atmel, таких как ATmega 2560 и 2561. Прошивка Bus Pirate может иметь проблемы с извлечением памяти выше 128 КБ на ATmega 2560-2561.Чтобы решить эту проблему, вам необходимо установить прошивку STK500v2 на Bus Pirate. Прошивка STK500v2 превратит Bus Pirate в клон отладчика AVR. Прошивку для этого можно скачать здесь, а инструкции по обновлению прошивки Bus Pirate можно найти на этом веб-сайте.

    После того, как Bus Pirate будет обновлен прошивкой STK500v2, вы можете подключить его к порту SPI. Если вам повезет, у производителя устройства есть разъемы на плате, к которым вы можете подключиться, но в любом случае вам нужно будет найти и проверить подключения заголовка перед подключением Bus Pirate — и, если необходимо, припаять некоторые провода или разъемы к плате.Другой вариант — напрямую подключиться к микропроцессору.

    На этом этапе таблица данных пригодится для определения распиновки микроконтроллера. Используя таблицу данных Atmega2561, вам нужно будет определить и найти контакты SPI «Power» и «Ground».

    • MOSI = серийный вход Master Out
    • MISO = ведущий последовательный выход
    • SCLM = последовательные часы
    • RESET = Сброс микроконтроллера
    • GND = Земля
    • Vcc = стандартное напряжение 3.3 В постоянного тока

    Для этого вы можете использовать мультиметр, настроенный для проверки целостности цепи, чтобы отследить эти контакты до разъема на плате или более легкого места на печатной плате для пайки проводов, которые могут быть присоединены к Bus Pirate.


    Источник изображения

    Как только это будет выполнено, вы можете подключить Bus Pirate к портам SPI чипа:

    Atmega2561 Автобус Пиратский
    Штифт SCK 11 SCLK
    Вывод MOSI 12 MOSI
    MISO контакт 13 MISO
    Пин сброса 20 CS
    Контакт 21 Vcc Vcc 3.3vdc
    GND контакт 22 GCC

    После подключения вы можете использовать приложение avrdude для извлечения флэш-памяти из микроконтроллера ATmega 2561, используя следующую команду:

    avrdude -p m2561 -c stk500v2 e -P / dev / ttyUSB0 -u flash: r: flash.bin: r

    Для микроконтроллера Atmel AVR используется переключатель -p . Переключатель -c идентифицирует устройство интерфейса SPI, -P указывает на местоположение устройства Bus Pirate — в этом случае он подключен к системе как ttyUSB0 — и, наконец, -u указывает avrdude извлечь во флеш-память и запишите его во флеш-память.мусорное ведро.

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

    Итак, как видите, этот процесс достаточно прост, если у вас есть правильные инструменты, программное обеспечение и таблицы данных для MCU, из которого вы хотите извлечь прошивку. Обязательно ознакомьтесь с другими блогами из этой серии здесь:

    Нужна помощь в защите вашего IoT? Узнайте больше о наших услугах по тестированию безопасности Интернета вещей.
    Начать

    Базовый проект BLE, часть 1 — Среда разработки

    Готовы приступить к созданию собственного творения BLE? Сделайте первые шаги в своем дизайне, следуя этому руководству по настройке базового проекта BLE.

    В этом руководстве вы настроите среду разработки и откроете файлы для базового проекта BLE. Затем вы скомпилируете проект и запрограммируете свою плату разработки PIC-BLE (или AVR-BLE).

    Платы для разработки PIC-BLE и AVR-BLE имеют встроенный программатор / отладчик PICkit On Board (PKoB), что означает, что вы можете программировать и отлаживать микроконтроллер PIC прямо из среды IDE.

    Перед началом работы

    Запустите 30-секундную демонстрацию и познакомьтесь со своей платой.

    Настройте среду разработки.

    • Загрузите и установите последнюю версию MPLAB X IDE
    • Загрузите и установите последнюю версию XC8 Compiler
    • Установите плагин MPLAB Code Configurator (MCC)

    Загрузите и откройте исходный код в MPLAB X

    Подключите свой PIC -BLE (или AVR-BLE) к компьютеру с помощью кабеля Micro-USB. Откройте MPLAB X.Когда откроется MPLAB X, найдите вкладку MPLAB X Kit Window .

    1/2 • Окно PIC-BLE Kit с выделенной ссылкой на исходный код демонстрации LightBlue.

    ВАЖНОЕ ПРИМЕЧАНИЕ: Если окно PIC-BLE Kit неактивно (см. Второй рисунок выше), закройте MPLABX и отсоедините PIC-BLE от вашего компьютера. Перезагрузите MPLABX и как только он полностью загрузится, снова подключите PIC-BLE, и вы должны правильно увидеть окно Kit Window.

    В MPLAB X Kit Window, найдите раздел, помеченный External Links. Перейдите в репозиторий GitHub, содержащий исходный код, щелкнув ссылку PIC-BLE LightBlue Explorer demo application (или AVR-BLE LightBlue Explorer demo application ) .

    Также обратите внимание в разделе External Links , что есть ссылки на таблицы данных, схемы плат, демонстрацию LightBlue, техническое описание RN4870 и многое другое …

    После того, как вы найдете репозиторий GitHub, вам нужно будет загрузить исходный код.Легкий способ сделать это — нажать зеленую кнопку Clone или Download , а затем нажать Download Zip .

    Затем разархивируйте файлы и переместите проект в желаемый каталог.

    Скачать исходный код из репозитория GitHub

    В MPLAB X щелкните File-> OpenProject. Перейдите в извлеченную папку и щелкните файл с расширением .X . Щелкните OpenProject.

    На вкладке Projects в верхней левой панели щелкните правой кнопкой мыши проект и выберите Set As Main Project. (Это не требуется, если у вас нет других открытых проектов, однако рекомендуется убедиться, что вы строите правильный проект.)

    Прежде чем продолжить, нажмите кнопку Clean and Build на панели инструментов. Это необходимо для того, чтобы убедиться в отсутствии проблем с загруженными файлами.

    Через несколько секунд вы должны увидеть в нижней панели сообщение BUILD SUCCESSFUL, как показано ниже.

    Программирование устройства

    Теперь вы готовы программировать PIC-BLE (или AVR-BLE).Нажмите кнопку Make and Program Device на панели инструментов, как показано ниже.

    Если появляется всплывающее окно Tool not Found , выберите PIC-BLE (или AVR-BLE) из списка и нажмите OK , как показано ниже.

    На нижней панели вы увидите серию сообщений. Внизу вы должны увидеть Programming Complete , как показано ниже.

    Подключитесь к телефону

    Загрузите приложение LightBlue с помощью PunchThrough на свое устройство Android или iOS, если вы еще этого не сделали.

    Откройте приложение, и вы попадете на экран со всеми ближайшими устройствами BLE. Прокрутите список и найдите устройство PIC-BLE (или AVR-BLE).

    Pro Совет: нажмите кнопку sort , чтобы сначала просмотреть ближайшие устройства.

    Ваше устройство будет помечено как PIC-BLE_XXXX (или AVR-BLE_XXXX), , где XXXX — последние 4 символа серийного номера модуля BLE. Рядом с ним также будет логотип Microchip.

    Выберите PIC-BLE в LightBlue

    Если вы видите в списке несколько устройств PIC-BLE или AVR-BLE, вы можете идентифицировать свое устройство по последним 4 символам серийного номера модуля RN4870 BLE.

    Найдите микросхему RN4870 BLE на своем PIC-BLE (или AVR-BLE). На нем вы найдете серийный номер этого модуля BLE. Обратите внимание на последние 4 символа, как показано ниже.

    В приложении LightBlue прокрутите список до тех пор, пока не увидите устройство с именем PIC-BLE_XXXX (или AVR-BLE_XXXX ), где XXXX — последние 4 символа серийного номера RN4870.

    Ваша плата BLE идентифицируется в приложении LightBlue по последним четырем цифрам серийного номера модуля BLE.

    После того, как вы нашли свое устройство BLE в приложении LightBlue, нажмите

    После этого вы попадете на следующий экран.

    Что дальше?

    Попробуйте следующее:

    • Включение и выключение светодиодов
    • Нажмите и удерживайте кнопку на плате и посмотрите изменение статуса в приложении.
    • Считайте температуру платы PIC-BLE в градусах Цельсия и Фаренгейта.
    • . изменение акселерометра при перемещении макетной платы.

    Существует также окно последовательных данных, в которое вы можете отправлять строки, которое будет рассмотрено в следующем руководстве [Часть 2].

    Беспроводное программирование для роботов FTC — Джереми Коул

    Последнее обновление: 11 сентября 2017 г.

    [Сокращенная версия этой концепции была представлена ​​на открытии сезона FTC 2017-2018 в Рино, штат Невада, 9 сентября 2017 года. Слайды доступны.]

    Для программирования робота FTC обычно требуется, чтобы пользователь подключил устройство Android (телефон) робота к компьютеру через USB и нажал кнопку «Выполнить» [▶] в Android Studio. Это означает встать с удобного кресла, снять устройство с робота, подключить его к компьютеру, а затем снова подключить к роботу.Это медленно и неэффективно. Это также означает неоднократное отключение и подключение USB-разъемов Micro-B, которые хрупкие и легко ломаются. Что, если в этом не было необходимости?

    Чтобы сразу перейти к практическим рекомендациям и пропустить объяснение того, как и почему это работает (и если это нормально, потерять доступ к Интернету на ПК во время программирования или отладки робота), см. Следующие три наиболее важных раздела:

    1. Просто: подключитесь к сети WiFi Direct с ПК
    2. Добавьте несколько полезных «Внешних инструментов» для ADB в Android Studio
    3. Беспроводное подключение для программирования и отладки робота FTC

    Чтобы избежать потери доступа к Wi-Fi на ПК во время программирования или отладки робота, см. Следующие дополнительные разделы:

    1. Приложение: USB-модели WiFi — приобретите небольшой WiFi-адаптер.
    2. Более элегантно: добавьте второй адаптер WiFi к ПК

    В противном случае, к объяснению!

    Протокол Android Debug Bridge (ADB) позволяет Android Studio обмениваться данными через программу adb с устройством, обычно подключенным через USB. ADB позволяет останавливать и запускать программы, копировать файлы на устройство или с него, устанавливать новые APK, отслеживать ЦП и память запущенных процессов, а также получать доступ к журналам (среди многих других действий). При нажатии кнопки «Выполнить» [▶] в Android Studio, adb используется для копирования полученного файла APK на устройство и его установки.

    Протокол ADB может использоваться в сети , если он включен на устройстве через USB, после каждой перезагрузки устройства. Это можно сделать, запустив команду adb tcpip, чтобы разрешить TCP / IP (сетевой) доступ к ADB на устройстве. Обычно это выполняется с помощью команды adb tcpip (с указанием порта TCP / IP для прослушивания) из командной строки 1 , когда устройство подключено через USB:

    adb tcpip 5555
     

    После того, как ADB через TCP / IP был включен (в данном случае на TCP-порт 5555), любой компьютер можно подключить к нему по сети, выполнив команду adb connect (и получив доступ на устройстве при появлении запроса):

    adb connect 1.2.3.4: 5555
     

    IP-адрес «1.2.3.4» необходимо заменить на IP-адрес 2 подключаемого устройства Android. После подключения устройства через TCP / IP Android Studio можно использовать точно так же, как если бы оно было подключено через USB.

    Здесь все становится несколько интересным и характерным для роботов FTC. Приложения FTC Driver Station и Robot Controller используют Wi-Fi Direct для связи друг с другом. (И обычно отключаются от всех других сетей Wi-Fi.Это устанавливает частную сеть Wi-Fi между двумя устройствами — так что, как правило, два устройства не находятся в той же беспроводной сети, что и компьютер, на котором работает Android Studio. Для этого есть два решения, но оба предполагают подключение ПК к одной сети с устройствами Android.

    Можно подключиться к сети Wi-Fi Direct, созданной приложением FTC Robot Controller, с ПК. Название сети WiFi Direct обычно известно команде, потому что оно основано на имени устройства, которое отображается в приложениях FTC: что-то вроде «DIRECT-xy-1234-RC» 3 .Однако если попытаться подключиться к сети с ПК, для этого потребуется пароль. Этот пароль можно узнать на экране «Программа и управление» в главном меню приложения Robot Controller.

    После получения парольной фразы любой ПК (или другое устройство) может присоединиться к своей сети, выбрав сетевое имя контроллера робота из списка сетей WiFi на ПК и используя эту парольную фразу для пароля WiFi при появлении соответствующего запроса. После того, как ПК успешно подключился к сети WiFi Direct, ADB можно подключить с помощью IP-адреса WiFi Direct контроллера робота (вместо адреса, полученного из меню настроек Android), который всегда равен 192.168.49.1.

    Однако здесь возникает другая проблема: теперь ПК больше не подключен к Интернету. Если во время программирования необходимо общаться с членами команды, использовать Google для поиска документации или использовать GitHub для управления кодом, это становится очень неудобным и потребует частого переключения сетей, что во многом лишает смысла этого упражнения.

    На самом деле ПК вполне может сосуществовать одновременно в нескольких сетях WiFi (или других), если каждая сеть имеет свою схему IP-адресов.Сеть WiFi Direct, созданная контроллером робота, использует IP-адреса 192.168.49.x, так что если локальная домашняя / рабочая / школьная WiFi-сеть использует другую схему (типичными являются 10.xyz или 192.168.0.x), тогда конфликтов не будет.

    Для подключения ко второй сети ПК потребуется дополнительный адаптер Wi-Fi, но, к счастью, на сегодняшний день он довольно дешев и очень мал: несколько доступных моделей см. В Приложении: Модели USB WiFi.

    После установки драйверов для нового адаптера WiFi и его подключения просто подключитесь к сети WiFi Direct контроллера робота, следуя приведенным выше инструкциям, но используя новый адаптер WiFi вместо основного адаптера WiFi компьютера.После подключения таким образом ПК должен оставаться подключенным к основной сети Wi-Fi и по-прежнему иметь доступ к Интернету через эту сеть, а также иметь возможность связываться с устройством Android через Wi-Fi Direct.

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

    Это тоже поправимо:

    • В Mac OS X откройте «Системные настройки», а затем панель «Сеть». Щелкните значок «шестеренка» и выберите «Установить порядок обслуживания…» и перетащите записи, чтобы поместить «Wi-Fi» над вторым адаптером Wi-Fi (в случае адаптера TP-Link с именем «802.11n NIC») .
    • В Windows такой проблемы не наблюдалось.

    Еще одна проблема с вышеуказанным решением — необходимость использовать команду adb из командной строки для включения TCP / IP и подключения к устройству.Однако это не совсем необходимо. Его можно сделать чрезвычайно простым в использовании в Android Studio!

    Добавьте несколько полезных «Внешних инструментов» для ADB в Android Studio

    Android Studio позволяет создавать «Внешние инструменты», которые будут отображаться в меню «Инструменты» главного окна. Эти инструменты могут делать что угодно, но их можно легко использовать для запуска команд adb, так что использование командной строки больше не требуется.

    В Android Studio откройте главную панель настроек:

    • В Mac OS нажмите «Android Studio», затем «Настройки…» (или просто нажмите горячую клавишу «⌘,»).
    • В Windows нажмите «Файл», затем «Настройки…».

    В панели настроек:

    1. Разверните пункт «Инструменты»
    2. Щелкните «Внешние инструменты», чтобы открыть список «Внешние инструменты». Список обычно пуст.
    3. Для каждого из следующих ниже инструментов нажмите кнопку [+] и заполните предоставленные поля (оставив все остальные без изменений). После заполнения экрана каждого инструмента нажмите «ОК» для сохранения. (Примечание: поле «Программа» то же самое, поэтому значение можно вырезать и вставить, чтобы избежать повторного ввода.)
    4. После добавления всех инструментов нажмите кнопку «ОК» на главной панели настроек, чтобы сохранить изменения.

    «Включить ADB через TCP / IP»

    Поле Значение
    Имя: Включить ADB через TCP / IP
    Программа: $ ModuleSdkPath $ / платформенные инструменты / adb
    Параметры: TCPIP 5555

    «Подключение к ADB через WiFi Direct»

    Поле Значение
    Имя: Подключение к ADB через Wi-Fi Direct
    Программа: $ ModuleSdkPath $ / платформенные инструменты / adb
    Параметры: подключение 192.168.49.1: 5555

    Бонус: для программирования устройства в сети без Wi-Fi Direct

    Следующий внешний инструмент не требуется для программирования роботов FTC через WiFi Direct, но может быть добавлен для программирования любого устройства Android через любую другую сеть WiFi. Он запросит IP-адрес для подключения.

    «Подключиться к ADB через TCP / IP»

    Поле Значение
    Имя: Подключиться к ADB через TCP / IP
    Программа: $ ModuleSdkPath $ / платформенные инструменты / adb
    Параметры: Подключить $ Подсказка $: 5555

    После добавления вышеуказанных внешних инструментов подключение к роботу FTC по беспроводной сети для его программирования и отладки является тривиальным (после использования USB для программирования устройства хотя бы один раз 4 ).После каждой перезагрузки Android-устройства (а в другое время это не повредит) выполняйте следующие действия:

    1. Подключите Android-устройство робота к ПК через USB.
    2. Убедитесь, что файл (например, OpMode) открыт и курсор находится в этом окне 5 .
    3. Щелкните Инструменты → Внешние инструменты → «Включить ADB через TCP / IP», чтобы включить ADB.
    4. Отсоедините USB-кабель от устройства Android и убедитесь, что компьютер подключен к сети WiFi Direct с помощью адаптера WiFi.
    5. Убедитесь, что приложение «FTC Robot Controller» запущено на устройстве Android.
    6. Щелкните Инструменты → Внешние инструменты → «Подключиться к ADB через WiFi Direct», чтобы подключиться к ADB.

    После вышеуказанных шагов может оказаться полезным открыть Android Monitor и убедиться, что подключенное устройство выбрано в раскрывающемся списке устройств (также может быть запись «[ОТКЛЮЧЕНО]» из предыдущего USB-подключения; это не тот).

    Android Studio должна работать точно так же, как и при подключении через USB: кнопка «Выполнить» [▶] должна передавать новые APK-файлы на устройство Android, и Android Monitor будет работать даже во время работы робота.

    Поскольку устройство теперь может оставаться подключенным через ADB во время работы робота … это также означает, что Android Monitor можно использовать во время работы робота. Если API журналирования Android (android.util.log) используется для записи сообщений в программе, они будут отображаться в logcat монитора Android в реальном времени!

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

    Nano USB WiFi-адаптеры

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

    Беспроводной нано-USB-адаптер TP-Link N150 (TL-WN725N)

    Цена: ≈ 10 долларов (март 2017, Amazon.com).
    Работает в Mac OS X и Windows. Было много проблем с приемом сигнала на MacBook Pro, возможно, из-за того, что антенна не выступала достаточно далеко из металлического корпуса. Перешел на D-Link DWA-131.

    Mini USB WiFi-адаптеры

    Эти адаптеры небольшие (по размеру примерно такие же, как у USB-накопителя), но перед использованием футляра или футляра для ноутбука их необходимо удалить.

    Сетевой адаптер D-Link Wireless N USB Wi-Fi (DWA-131)

    Цена: ≈ 25 долларов (март 2017, Amazon.com).
    Работает в Mac OS X и Windows. Отличный прием сигнала и отсутствие проблем с драйверами в Mac OS X. Представляет собой адаптер проводного Ethernet со специальным приложением (в строке состояния) для настройки сети Wi-Fi.Точно такой же чипсет, что и TP-Link N150 (клон драйверов и приложения).

    Двухдиапазонный мини-адаптер Wi-Fi USB NETGEAR AC600 (A6100)

    Цена: ≈ 31 доллар (март 2017, Amazon.com).
    Только для Windows.

    Linksys Беспроводной мини-USB-адаптер AC 580, двухдиапазонный (AE6000)

    Цена: ≈ 28 долларов (март 2017, Amazon.com).
    Только для Windows.

    1 «Командная строка» / «CMD» в Windows или «Терминал» в Mac OS.

    2 IP-адрес Wi-Fi устройства Android можно найти, перейдя в Глобальные настройки → «О телефоне» → «Статус» и проверив поле «IP-адрес».

    3 Сеть всегда начинается со слова «ПРЯМОЙ», за которым следуют две случайные буквы / цифры, за которыми следует имя устройства. Имя устройства требуется правилом руководства к игре FTC , чтобы соответствовать этому шаблону.

    4 Приложение FTC Robot Controller отвечает за создание сети WiFi Direct, поэтому, если приложение не существует на устройстве, его невозможно будет запустить для подключения через WiFi Direct. Подключите устройство через USB и запрограммируйте его таким образом в первый раз, запустите приложение в соответствии с инструкциями, и тогда беспроводное программирование должно работать.

    5 Если курсор не находится в файле, относящемся к Android, запуск внешних инструментов из этого руководства может завершиться ошибкой о том, что не удается найти «/ platform-tools / adb» — потому что макрос $ ModuleSdkPath $ используется во внешнем В определении инструмента не будет указан соответствующий путь к Android SDK. Чтобы внешний инструмент работал с любым положением курсора, просто замените макрос $ ModuleSdkPath $ его фактическим значением, которое можно найти, щелкнув «Вставить макрос…» и выбрав $ ModuleSdkPath $.Обратной стороной этого решения является то, что при изменении пути (например, из-за обновления) запись External Tool может перестать работать.

    Удаленная отладка встроенных систем

    Содержание

    • 1 Установка
    • 2 Подключение удаленных устройств
      • 2.1 На удаленном ПК
      • 2.2 На локальном ПК
    • 3 Удаленная отладка
      • 3.1 Отладка в IAR с использованием STM32 STLink
      • 3.2 Подключение к удаленному последовательному порту
    • 4 Заключение

    Большинство из нас работают из дома во время пандемии COVID-19.Я лично изо всех сил пытался удаленно отлаживать некоторые из моих аппаратных средств. Сегодня я собираюсь представить совершенно новый метод удаленной отладки встроенных систем. Используя этот метод, вы можете отлаживать удаленную систему, как если бы она была подключена к вашему локальному компьютеру.

    Здесь мы используем программное обеспечение под названием USB Network Gate, разработанное Electronic Team Inc.

    Установка

    • Загрузить USB Network Gate.
    • Запустите программу
    • Выберите язык и нажмите ОК.
    Выбор языка — Установка USB Network Gate
    • Нажмите Далее
    USB Network Gate — Добро пожаловать в мастер установки
    • Прочтите и примите лицензионное соглашение. Нажмите «Далее.
    USB Network Gate — Лицензионное соглашение
    • Выберите место установки и нажмите Далее.
    USB Network Gate — установочная папка
    • Выберите компоненты и нажмите Далее
    USB Network Gate — Выберите компоненты
    • Примечание: Нам необходимо установить «Эта установка будет совместно использовать и подключаться к устройствам» на удаленном компьютере, к которому подключено оборудование.И вы можете установить «Эта установка будет совместно использовать и подключаться к устройствам» или «Эта установка будет подключаться только к устройствам» на компьютере, с которым вы будете работать.
    • Выберите папку в меню «Пуск» и нажмите «Далее»
    USB Network Gate — Выберите папку в меню «Пуск»
    • Нажмите Далее
    USB Network Gate — Выберите дополнительные компоненты
    • Готово к установке, нажмите Далее
    USB Network Gate — Готово к установке
    • Выполняется установка
    USB Network Gate — Установка
    • Установка завершена, нажмите Готово.
    USB Network Gate — установка завершена

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

    Подключение удаленных устройств

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

    На удаленном ПК

    • Откройте программное обеспечение на удаленном компьютере (к которому подключено оборудование).
    • Нажмите кнопку «Поделиться» рядом с каждым устройством.
    USB Network Gate — Совместное использование устройств

    На локальном ПК

    • Откройте программное обеспечение на локальном компьютере (на котором вы планируете работать или отлаживать)
    • Нажмите кнопку «Добавить сервер» в нижнем левом углу вкладки «Удаленные USB-устройства».
    USB Network Gate — добавляемый сервер
    • Введите IP-адрес вашего удаленного компьютера и нажмите «Добавить».
    • Теперь отобразится список всех USB-устройств, совместно используемых с удаленного компьютера.
    • Нажмите «Подключить», чтобы подключить каждое устройство.
    USB Network Gate — подключены удаленные устройства

    Удаленная отладка

    Теперь у нас есть подключенные удаленные устройства, виртуально подключенные к нашему локальному компьютеру, как если бы он действительно был подключен. Нет, мы можем продолжить и отладить как обычно. Здесь я подключил преобразователь FT232R USB в UART и STM32 STLink.

    Отладка в IAR с использованием STM32 STLink

    Отладка в IAR Embedded Workbench

    Подключение к удаленному последовательному порту

    Теперь мы можем просто подключиться к удаленному последовательному порту, как если бы он был подключен к нашему локальному ПК.Здесь я использую программу Tera Term для подключения к последовательному порту.

    Подключение к удаленному последовательному порту — Tera Term USB Network Gate — связь по UART

    Заключение

    Мне лично нравится «USB Network Gate», и он настоятельно рекомендуется инженерам-разработчикам встраиваемых систем или электронике, которые работают удаленно. И это программное обеспечение тоже выглядит очень стабильным и удобным для пользователя.

    .

0 comments on “Отладчик программ микроконтроллера avr на андроид: Клон AVR JTAG ICE

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *