Последние полгода я участвую в разработке первого в своей жизни USB-устройства и прикладного ПО к нему, и сейчас хочу поделиться своим пониманием того, как там всё работает: микроконтроллер, драйвер, прикладное ПО. Также затрону вопрос о выборе идентификаторов VID/PID. Список полезных ссылок для желающих более подробно разобраться в теме прилагается.

140.33
Рейтинг
Программирование микроконтроллеров *
Учимся программировать микроконтроллеры
Сначала показывать
Порог рейтинга
Уровень сложности
Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья третья. Немного о железе
2 мин
29KВсе то оно хорошо, когда мигает в симуляторе светодиод, но неплохо бы посмотреть на это действо вживую.
Расскажу коротко об аппаратной части сего процесса.
Расскажу коротко об аппаратной части сего процесса.
+23
Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вторая. Базовые сведения о платформе. Первая программа
4 мин
131KЕсли в первой статье все получилось хорошо — мы получили базовую программную обстановку для продолжения обучения.
Едем дальше.
Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.
Открываем ДШ.
Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.
Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.
Вкратце расскажу о том, что обязательно нужно понимать.
Едем дальше.
Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.
Открываем ДШ.
Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.
Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.
Вкратце расскажу о том, что обязательно нужно понимать.
+42
Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вводная
3 мин
84KДоброго тебе времени суток, хороший человек.
Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.
Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.
MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.
Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;
Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.
Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.
MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.
Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;
+54
Программирование для AVR в Ubuntu
1 мин
23KДля интересующихся программированием микроконтроллеров подсказываю про существование замечательного плагина для Eclipse, упрощающего разработку софта: AVR Eclipse plug-in. Он позволяет выбрать из списка процессор, создать hex и с помощью avrdude загрузить прошивку, плюс различные бантики с просмотром и редактированием отдельных битов в регистрах и фьюзах.
Про IDE Eclipse я здесь рассказывать не буду — большинство присутствующих его знают и используют, а для тех, кто с ним пока не знаком, найдется немало мануалов по установке.
Вначале установим все необходимое для разработки под AVR:
Теперь запускаем Эклипс, заходим в Help->Software updates->Add site… и вписываем туда адрес сайта плагина avr-eclipse.sourceforge.net/updatesite
Жмем Ok, перезапускаем Эклипс и видим в мастере проектов новый пункт «AVR Cross Target Application». Выбираете процессор, тактовую частоту — и вперед!
Успешной работы и правильных фьюзов ;)
Про IDE Eclipse я здесь рассказывать не буду — большинство присутствующих его знают и используют, а для тех, кто с ним пока не знаком, найдется немало мануалов по установке.
Вначале установим все необходимое для разработки под AVR:
apt-get install avr-gcc avr-binutils avr-libc avrdude
Теперь запускаем Эклипс, заходим в Help->Software updates->Add site… и вписываем туда адрес сайта плагина avr-eclipse.sourceforge.net/updatesite
Жмем Ok, перезапускаем Эклипс и видим в мастере проектов новый пункт «AVR Cross Target Application». Выбираете процессор, тактовую частоту — и вперед!
Успешной работы и правильных фьюзов ;)
+12
Почти ОС реального времени — 2
2 мин
9.3KТеперь, когда инструмент готов, его уже можно и нужно использовать.
Предварительно пара слов про Главный Таймер.
Предварительно пара слов про Главный Таймер.
+16
Почти ОС реального времени: event-driven
7 мин
13KПару слов введения:
Делаю систему контроля на базе AtMega32. Цель — отслеживать значение датчиков температуры и давления, управление нагрузкой и сброс отладочных логов в компьютер.
Плюс экранчик 2х16 символов и клавиатура на 7 клавиш. Аппаратную часть использовал готовую — набор NM8036 от МастерКита. А вот с программной частью засада: стандартный алгоритм, уже прошитый в наборе, примитивен и универсален, исходных кодов прошивки нет, обновления выходят в зашифрованном виде. Пришлось писать самому.
Первоначально рисовал «быстро и грязно» — только чтобы работало. Затем система эволюционировала — усложнялись алгоритмы работы, разрастался интерфейс, увеличилось количество параметров, появилась необходимость обучить другого человека работе с системой. Вносить изменение не порушив старый код становилось все сложнее и сложнее. Плюс некоторые архитектурные недоработки, заложенные с самого начала, очень осложняли жизнь.
На форумах, посвященных программированию микроконтроллеров, наткнулся на упоминание об rtos — операционных системах реального времени. Почитал, скачал пару бесплатных, попробовал и принял решение: написать свое.
Делаю систему контроля на базе AtMega32. Цель — отслеживать значение датчиков температуры и давления, управление нагрузкой и сброс отладочных логов в компьютер.
Плюс экранчик 2х16 символов и клавиатура на 7 клавиш. Аппаратную часть использовал готовую — набор NM8036 от МастерКита. А вот с программной частью засада: стандартный алгоритм, уже прошитый в наборе, примитивен и универсален, исходных кодов прошивки нет, обновления выходят в зашифрованном виде. Пришлось писать самому.
Первоначально рисовал «быстро и грязно» — только чтобы работало. Затем система эволюционировала — усложнялись алгоритмы работы, разрастался интерфейс, увеличилось количество параметров, появилась необходимость обучить другого человека работе с системой. Вносить изменение не порушив старый код становилось все сложнее и сложнее. Плюс некоторые архитектурные недоработки, заложенные с самого начала, очень осложняли жизнь.
На форумах, посвященных программированию микроконтроллеров, наткнулся на упоминание об rtos — операционных системах реального времени. Почитал, скачал пару бесплатных, попробовал и принял решение: написать свое.
+69
Внутрисхемный программатор отладчик ICD2 + Ubuntu
3 мин
4.6KРазработка в Linux — это просто!
Этот топик будет посвящен подключению программатора отладчика фирмы Olimex — ICD2 на Linux.
Так как в интернете я почти не нашел информации по этому поводу, позволю рассказать себе как я это сделал.
Не хитро догадаться, что нужно знать на какой дистрибутив будем ставить. Мой выбор пал на Ubuntu 8.10. Ядро на данный момент было установлено версии 2.6.27-11-generic ( анстейбл вобщем ).
Однако, это очень дружественный и простой в использовании дистрибутив, но граблей при подключении избежать не удалось.
+5
Модернизация телефона старого образца(телефон рулетка).
4 мин
15KСуть(цель?) проекта
— На тот момент это был проект для областных соревнований по радиоэлектронике и радиоконструированию.
Далее по списку:
— Выбрать идею — модернизация телефона.
— Создать устройство на базе микроконтроллера семейства PIC16.
— Более лучшее изучение языка ASM а так же Си.
— Создать юзабельный аппарат через который можно будет звонить.
— что нибуть еще =)
+88
Простая реализация схемы шагового двигателя на мк
3 мин
43KИ так, данный пост нацелен на новичков в электронике а так же на новичков в программировании и освоении мк и разработке радиоэлектронных устройств.
Данная разработка представляет простейшее включение МК такого как PIC16F84A для управления шаговым двигателем.
Данная разработка представляет простейшее включение МК такого как PIC16F84A для управления шаговым двигателем.
+53
Вклад авторов
YuriPanchul 2412.9MaFrance351 2021.0smart_alex 1538.4aabzel 1456.2EasyLy 1342.6Indemsys 1282.0iliasam 1090.6vladkorotnev 750.0dlinyj 741.0VBDUnit 696.0