Как стать автором
Поиск
Написать публикацию
Обновить
160.41

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

MSP430, учимся программировать и отлаживать железо (часть 2)

Время на прочтение4 мин
Количество просмотров49K

Здравствуй, уважаемый хабрапользователь.
В предыдущей статье мы начали рассматривать программирование под MSP430.
Материал, описанный в данной статье, позволит в общих чертах ознакомиться с прерываниями и понять некоторые тонкости MSP430.
Читать дальше →

MSP430, учимся программировать и отлаживать железо

Время на прочтение6 мин
Количество просмотров120K

Сегодня, уважаемый хабрапользователь, я постараюсь заполнить некоторый пробел, образовавшийся в статьях об MSP430, а именно азы и подход к программированию устройств на данном микроконтроллере.
Эта статья прежде всего направлена на новичков, поскольку я буду рассматривать ряд достаточно простых задач, таких как работа с SPI, мигание лампочкой и отладка в proteus.
Читать дальше →

Взаимодействие схемы в Proteus'е с внешним миром

Время на прочтение3 мин
Количество просмотров22K

Введение


Думаю многие из тех, кто как-то связан с разработкой электронных устройств, хотя бы раз слышали о программном комплексе Proteus от Labcenter Electronics. Какая бы не была обширная библиотека компонентов, доступных для моделирования, «жизнь» схемы ограничена пределами окна эмулятора, за редким исключением. Уже существует несколько моделей, которые могу, например, записывать какие-то данные в файл или даже представляться системе как USB устройства, но пока они могут решить небольшой класс задач.

Задача


При работе над курсовым проектом, в рамках которого необходимо разработать систему радиоуправления самолётом, возникла необходимость связи модели с ПК. Так как одним из самых простых интерфейсов для связи с ПК является RS-232, он и был выбран(использовался переходник usb-uart).

Так как же отлаживать эту систему на самом начальном этапе, когда ещё не найдены довольно грубые ошибки, которые могут привести к выходу из строя электронных компонентов, и не возиться с частой прошивкой микроконтроллер(ов)?
Читать дальше →

Raspberry Pi, сигнализация и умный дом

Время на прочтение7 мин
Количество просмотров117K

Началось все года 4 назад когда во время рабочего дня у меня обчистили квартиру. Попасть домой через дверь после этого уже не удалось из-за поврежденного замка. Неприятное событие заставило задуматься о безопасности жилища. И это лишь одна из причин для мониторинга и автоматизации квартиры. Как часто прийдя на работу (а то и уезжая или улетая куда-либо) вы сомневались выключили ли перед уходом утюг, закрыли ли газ, воду ;-) Подбавим масла в огонь админам — спокойны ли вы что ваш старый БП в работающем системнике дома не чадит и не пылает!?) И что удаленно делать с девайсом, который «наглухо завис».

В этом посте я рассмотрю некоторые существующие на рынке решения, розничную стоимость доступного аппаратного обеспечения и способ как создать сигнализацию квартиры и некоторые из функций «умного дома» используя одноплатный компьютер Raspberry Pi
Читать дальше →

Digital Metawatch WDS112 оригинальный отладочный комплект от Texas Instruments

Время на прочтение4 мин
Количество просмотров15K
Где-то года полтора назад я увидел такую интересную вещь как часы с bluetooth, умеющие работать с телефоном. Мне понравилась сама концепция, но реализация откровенно говоря хромала. Часы или умели работать только с определенной моделью телефона или же имели довольно бедный функционал и не слишком большие дисплеи. Я продолжал следить за тем, какие модели появляются и что они умеют. Мне понравились часы от iVirt от Citizen, но их ориентированность на японский рынок и стоимость меня не слишком устраивала. Но 2011 год выдался урожайным на подобные устройства, но практически все они или имели закрытое ПО как к примеру Live View on Sony Ericsson (да у меня телефон не на android) или же обладали довольно странным функционалом как InPulse (не ребят одна кнопка для управления это не прикольно), и малым временем жизни. Но у InPulse присутствовал такой полезный функционал как открытая прошивка и возможность писать свое ПО под эти часы. Про остальные часы с полноценным Android я пожалуй промолчу и почту время их работы вставанием. И тут в конце года появляется Metawatch. Что же такое этот самый metawatch?

Читать дальше →

Комплект разработчика на базе MSP430 от Texas Instruments

Время на прочтение2 мин
Количество просмотров60K

Texas Instruments продолжает приятно удивлять


У меня хорошая новость для тех, кто чувствует в себе инженерные наклонности но до сих пор не знал с чего начать. И пусть для кого-то это уже не в новинку, но для всех остальных умов я хотел бы донести. Компания Texas Instruments продолжает «подсаживать» на свои продукты, и на этот раз в фокусе нашего внимания будет MSP430 Value Line LaunchPad Development Tool. Не так уж и давно вышла версия 1.5 этого комплекта разработчика на базе микроконтроллеров серии MSP430. Приглашаю под кат за подробностями и сюрпризами
Читать дальше →

Verilog. Цифровой фильтр на RAM

Время на прочтение5 мин
Количество просмотров24K
Что делать, если нужно разместить большой цифровой фильтр на FPGA? А если плата уже разведена? Железо старое? В проекте осталось мало места? В этом топике будет рассмотрена одна из возможных реализаций цифрового КИХ фильтра на FPGA Altera Cyclone II EP2C15. По сути это продолжение вот этой темы из песочницы.
Будет рассказано, как сделать сдвиговый регистр на RAM, уменьшив при этом затраты LE, и как из этого получить цифровой фильтр.
Читать дальше →

Программирование ПЛИС. Изучение явления «дребезг контактов» и метод избавления от него

Время на прочтение5 мин
Количество просмотров49K
Мы продолжаем изучение ПЛИС и языка VHDL. В данной статье, ориентированной на новичков, мы изучим явление «дребезг контактов» и рассмотрим способ избавления от него.

Итак, цель работы: Изучить явление «дребезг контактов», создать проект в Xilinx ISE Project Navigator: При нажатии на кнопку значение регистра увеличивается на 1.

Читать дальше →

Продолжение истории про «Сердце» электронного устройства или простейшее программирование Silicon Labs C8051F320

Время на прочтение6 мин
Количество просмотров19K
Не так давно я написал статью про мою поделку на основе микроконтроллера Silicon Labs C8051F320. Пришло время рассказать и про программирование данного мк под простейшие задачи.
image

Подробности под катом.
Читать дальше →

Программирование ПЛИС. Плавное изменение яркости светодиодов на Spartan-3E Starter Kit с использованием ШИМ (PWM)

Время на прочтение9 мин
Количество просмотров63K
Эта статья ориентирована на новичков в программировании ПЛИС на языке VHDL и тех, кто хочет научиться это делать. Ранее на хабре уже была рассмотрена статья с аналогичной задачей, реализованной на PIC-контроллере. А в этой статье речь пойдет об изменении яркости свечения светодиода с помощью ПЛИС.
Итак, цель работы: Освоить понятие ШИМ и применить его в изменении яркости светодиода. Для реализации воспользоваться языком программирования VHDL в среде разработки Xilinx ISE Project Navigator v12.3.

Перейдем к реализации цели

Свой task switch logging за один день

Время на прочтение3 мин
Количество просмотров2K
Еще на заре своей карьеры мне довелось поработать с RTOS VxWorks и средой разработки Tornado. Впечатления остались крайне положительные (тем более что сейчас есть с чем сравнивать), но пост не об этом. Составной частью системы тогда была система сбора и визуализации информации о переключении задач в реальном времени. Сразу скажу, что вещь крайне полезная, не зря ведь говорят, что лучше один раз увидеть. Скажем, если у вас в системе есть хотя бы два десятка задач, то с уверенностью в 99% можно сказать, что вы сильно удивитесь, когда увидите визуализацию переключения задач — она будет совсем не такой, какой вы ее себе представляли.

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

Но что же делать, если приходится работать с RTOS и окружением, где такого удобного механизма нет? Конечно же, сделать его самому!

Читать дальше →

Внешние прерывания у 8-bit avr, использование кнопок

Время на прочтение3 мин
Количество просмотров106K
Здравствуйте, на днях решил поэкспериментировать с внешними прерываниями на attiny2313A. Думаю тем кто занимался программированием микроконтроллеров известно, что МК не всегда быстро может реагировать на нажатие кнопки, т.к. проверка PINа стандартно осуществляется в бесконечном цикле и если программа достаточно большая — это может затормозить опрос ножки.
Код ниже написан для WinAVR.

image

Стандартный опрос:


  • DDRxy&=~(1<<y); PORTxy&=~(1<<y);
    с одной стороны кнопка подключена к плюсу (VCC), а с другой стороны к ножке.
    В таком случае провод который подключен к ножке выступает в роли антенны и любое возмущение электромагнитного поля вокруг проводка вызывает срабатывание кнопки, что неприемлемо.

  • DDRxy&=~(1<<y); PORTxy|=(1<<y);
    С одной стороны кнопка подключена к минусу (GND), а с другой стороны к ножке.
    Это наиболее приемлемый вариант, наводок не возникает и кнопка срабатывает стабильно.

Читать дальше →

Ошибка в компиляторе? Маловероятно, но…

Время на прочтение2 мин
Количество просмотров5.8K
Однажды мне понравилось высказывание «Думаете, что ошибка в компиляторе? Проверьте получше свой код!». Действительно, в моей практике такое случалось – когда, казалось бы, все разумные причины ошибки были отброшены и мысль о том, что вот на этот раз уж точно глюк где-то в системе, вдруг находилась какая-нибудь до смешного банальная ошибка в своем коде, сразу объясняющая все предыдущие странности.

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

Так что же там было?

Ближайшие события

Microtouch

Время на прочтение7 мин
Количество просмотров8.5K
Да, iTouch офигителен. Но кому нужно такое «закрытое» устройство? Может, лучше сделать свой гаджет с сенсорным экраном, написать свои программы — всё с использованием свободных железа и программ? Ну да, пусть этот гаджет не умеет воспроизводить MP3, но в нём есть цветной сенсорный (резистивный) TFT экран 320x240 точек, 8-битный микроконтроллер Atmega32u4, зарядное устройство для литий-полимерных аккумуляторов, управление подсветкой, разъем для microSD и трехосевой акселерометр. Любопытная штучка, особенно для тех, кто любит что-нибудь делать своими руками, как думаете?

Читать дальше →

Текстовый VGA модуль на VHDL

Время на прочтение11 мин
Количество просмотров17K
В этой статье я представлю текстовый VGA модуль, написанный на VHDL. Этот модуль может быть полезен при отладке платы, и занимает относительно немного места.

Общие характеристики


Модуль работает на тактовой частоте 50 МГц.
Выдает картинку с разрешением 640х480 с частотой 60Гц.
Размер символа 8х16 точек. На экране 80х25 символов.
Палитра на 32 цвета.

Занимаемые ресурсы в ПЛИС:


Читать дальше →

консоль в микроконтроллере с micro readline

Время на прочтение9 мин
Количество просмотров34K
Представляю вашему вниманию библиотеку microrl (on github), предназначенную для организации консольного интерфейса в разного рода встраиваемых железках на микроконтроллерах.

Зачем нам консоль в МК?


Текстовый консольный интерфейс обладает рядом преимуществ для встраиваемых систем, при всей своей мощи и простоте (ведь текст, в отличие от светодиода, говорит сам за себя!):
  • Требует относительно мало ресурсов МК, и минимум аппаратных затрат — последовательный интерфейс типа UART или любой другой имеющийся в МК, это может быть встроенный USB или внешний USB-Com адаптер или даже TCP если ваше микроконтроллер достаточно серьезный.
  • Удобно подключаться — достаточно терминала поддерживающего Com-port (putty для Windows или minicom для linux).
  • Удобно использовать — цветной вывод в терминал, поддержка авто-дополнений, горячих клавиш и истории ввода.
Читать дальше →

FreeRTOS: мьютексы и критические секции

Время на прочтение3 мин
Количество просмотров74K

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

Читать дальше →

FreeRTOS: межпроцессное взаимодействие

Время на прочтение8 мин
Количество просмотров84K

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

FreeRTOS: введение

Время на прочтение5 мин
Количество просмотров209K

Здравствуйте. В короткой серии постов я постараюсь описать возможности, и подходы работы с одной из наиболее популярной и развивающейся РТОС для микроконтроллеров – FreeRTOS. Я предпологаю базовое знакомство читателя с теорией многозадачности, о которой можно почитать в одном из соседних постов на Хабре или ещё где-то.
Ссылки на остальные части:
FreeRTOS: межпроцессное взаимодействие.
FreeRTOS: мьютексы и критические секции.
Читать дальше →

Вклад авторов