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

331.23
Рейтинг
Программирование микроконтроллеров *
Учимся программировать микроконтроллеры
Сначала показывать
Порог рейтинга
Уровень сложности
ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery
5 мин
396KПри изучении
любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Ведутся поиски статей по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Чтобы помочь вам определиться с ответами на возникшие вопросы, я поделюсь своим опытом в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics.
Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.

Выбор контроллера
Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
+48
Реанимация старых лабораторных стендов при помощи микроконтроллеров
3 мин
7.1K
+76
Работа с трехфазным синхронным двигателем
5 мин
65KДовелось мне, по роду своей деятельности, писать программу для разгона раскрутки и управления трехфазным синхронным двигателем. Далее я постараюсь подробно описать как я это реализовал.
+18
Истории
Программируем SSRAM на ПЛИС
3 мин
19KНаконец решил и я вбросить свои 5 копеек в развитие столь интересной, но узко представленной здесь темы – программирование ПЛИС и периферии. В частности в этой статье я кратко опишу работу, довольно простого, но столь важного типа памяти как SSRAM и продемонстрирую свой простерший пример её контроля выполненного с среде Quartus II с использованием языка Verilog HDL.
+8
Элемент задержки на VHDL. Другой взгляд
3 мин
12KДоброго дня.
Ответ на топик "Элемент задержки на VHDL" подготовлен для того чтобы дать представление о возможных реализациях задержек сигналов в ПЛИС.
Схемы с асинхронным сбросом нисколько не хуже синхронных схем. Но только в том случае, когда у Вас есть твердые знания в временных задержках между сигналами, приходящими на вход и рассчитанные временные задержи для вашей реализации в вашей ПЛИС. Но тут же теряется главное преимущество ПЛИС — возможность добавить новую функциональность в схему или поменять используемые контакты для ввода-вывода сигналов, так как для каждой новой реализации придется учитывать ее новые временные задержки и не факт что они Вам подойдут.
Ответ на топик "Элемент задержки на VHDL" подготовлен для того чтобы дать представление о возможных реализациях задержек сигналов в ПЛИС.
Схемы с асинхронным сбросом нисколько не хуже синхронных схем. Но только в том случае, когда у Вас есть твердые знания в временных задержках между сигналами, приходящими на вход и рассчитанные временные задержи для вашей реализации в вашей ПЛИС. Но тут же теряется главное преимущество ПЛИС — возможность добавить новую функциональность в схему или поменять используемые контакты для ввода-вывода сигналов, так как для каждой новой реализации придется учитывать ее новые временные задержки и не факт что они Вам подойдут.
+10
Элемент задержки на VHDL
2 мин
29KПри проектировании различных цифровых устройств, в частности, контроллеров, требуется организовать задержку подачи одного и того же сигнала на различные выводы ПЛИС или на другие элементы внутри ПЛИС.
Для начала рассмотрим подобную ситуацию с дискретной логикой. Обычно, если у разработчика имеется микросхема с шестью вентилями НЕ (например ,155ЛН1), в качестве элемента задержки (величиной 10…20 наносекунд) он использует последовательное соединение двух элементов. Иногда между ними он вставляет RC-цепь, с помощью которой можно сделать время задержки от 10 до 150 нс.
В микросхеме ПЛИС задержку таким способом организовать НЕЛЬЗЯ. Всё дело в
Для начала рассмотрим подобную ситуацию с дискретной логикой. Обычно, если у разработчика имеется микросхема с шестью вентилями НЕ (например ,155ЛН1), в качестве элемента задержки (величиной 10…20 наносекунд) он использует последовательное соединение двух элементов. Иногда между ними он вставляет RC-цепь, с помощью которой можно сделать время задержки от 10 до 150 нс.
В микросхеме ПЛИС задержку таким способом организовать НЕЛЬЗЯ. Всё дело в
+2
ARM — это сложно…?
3 мин
105K
Я решил попробовать доказать, что это далеко от истины, и сделал платку, проще которой трудно: 1 сторонняя, 1 обязательный конденсатор (до стабилизатора не обязательно), 1 резистор, один стабилизатор 3.3V, и наконец младший STM32: STM32F100C4T6B — 16кб флеш, 4кб SRAM, 48 ног, Cortex-M3(!!!) с DMA, дебагом на лету, 32*32+32->32 за 1 такт и всеми прочими радостями за 28 рублей.
+97
+27
USB для AVR. Введение
4 мин
89KРечь пойдет об популярном интерфейсе USB, а именно как заюзать этот самый USB на простых микроконтроллерах AVR. Планирую написать несколько топиков с примерами кода и разъяснениями как со стороны микроконтроллера, так и со стороны компьютера. Конечно на просторах интернета полно всяческих примеров на данную тематику, но в лучшем случае это исходник в котором сам черт ногу сломит, да краткое, на страничку, его описание.
Начну с того, что ранее широко распространенные интерфейсы как COM, LPT, MIDI в настоящее время морально устарели, но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециализированном оборудовании. Так что для связи какой нибудь собственной железки с компьютером давно уже пора осваивать что-то другое. Как вариант ещё можно использовать всякие конверторы/переходники/эмуляторы, но они не всегда работают как оригинальный интерфейс, порождая массу проблем.
Всё хватит пустой болтовни, приступим к делу. Как использовать USB в собственных устройствах?
+23
STM32F1xx — лечимся от ардуинозависимости вместе
14 мин
268KДобрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
+155
Мини-обзор Arduino-совместимых плат различных архитектур
5 мин
97KВ тематическом блоге «Программинг микроконтроллеров» уже было несколько статей по поводу выбора первого микроконтроллера и начала работы с ним. Не менее интересны были и комментарии к таким статьям. Одна из мыслей, которая несколько раз поднималась там — это что не все, кто имеют интерес к МК, приходят к ним от транзисторов. Некоторые (дай бог, чтобы побольше), приходят к ним со стороны (прикладного) программирования. Рекомендовать таким людям брать в руки паяльник — не разумно, у них и так есть вещи, которые они могут «попаять». Так мы приходим к слову «Arduino», которое уже многие слышали. Среди бывалых с паяльниками существует стереотип — Arduino это платка на AVR для ленивых. Так ли это? Эта статья — попытка наглядно показать, что Arduino — это не про AVR и не про лень, Arduino — это архитектурно-независимая электронно-механическая платформа совместимых компонентов, по (относительной) значимости не менее важная, чем (в свое время) IBM S/360, IBM PC или USB.


+40
Выбираем микроконтроллер вместе
3 мин
116KПрочитав эту статью я заметил большой интерес к выбору микроконтроллера у читателей и решил взглянуть на эту проблему с другой стороны.
Могу предположить, что всех интересует выбор их первого, либо первого 32-х битного МК.

Тем, кто знает, что на фотографии нет ни одного микроконтроллера — прошу в комментарии, дополнить мой рассказ и тем самым поделиться своим опытом с начинающими. Остальным, непременно под кат!
Могу предположить, что всех интересует выбор их первого, либо первого 32-х битного МК.

Тем, кто знает, что на фотографии нет ни одного микроконтроллера — прошу в комментарии, дополнить мой рассказ и тем самым поделиться своим опытом с начинающими. Остальным, непременно под кат!
+44
Ближайшие события

19 марта – 28 апреля
Нижний Новгород • Екатеринбург • Новосибирск • Владивосток • Ижевск • Казань • Тюмень • Уфа • Иркутск • Челябинск • Самара • Хабаровск • Красноярск • Омск
Больше событий в календаре
Разработка
Другое

Больше событий в календаре
Разработка
Менеджмент
Другое

Больше событий в календаре
Маркетинг

Больше событий в календаре
Аналитика
Тестирование
Другое

Больше событий в календаре
Разработка

Больше событий в календаре
Разработка
Менеджмент

Больше событий в календаре
Маркетинг
Другое

Больше событий в календаре
Разработка
Администрирование
Тестирование

Больше событий в календаре
Администрирование
Другое

Больше событий в календаре
Администрирование
Менеджмент
Аналитика

Больше событий в календаре
Разработка
Маркетинг
Другое

25 апреля
Москва • Онлайн
Больше событий в календаре
Менеджмент
Другое

Больше событий в календаре
Разработка
Другое

Больше событий в календаре
Разработка
Другое

Больше событий в календаре
Администрирование
Менеджмент
Другое
Генерация случайных чисел на микроконтроллерах
9 мин
49K
Про генераторы случайных чисел написано очень много, но почти всегда, когда дело доходит до реализации, подразумевается (или явно говорится), что речь идет об x86/x64 и других «взрослых» архитектурах. В то же время, форумы, посвященные разработке устройств на микроконтроллерах, пестрят вопросами «как мне сгенерировать случайное число на %controllername%?». Причем диапазон ответов простирается от «смотри гугл/википедию» до «используй стандартную функцию». Далеко не всегда эта «стандартная функция» есть и устраивает разработчика по всем параметрам, чаще наоборот: то числа получаются далеки от случайных, то скорость работы слишком мала, а то полученный код вообще не помещается в свободную память.
Попробуем разобраться, какие бывают алгоритмы генерации случайных чисел, как выбрать подходящий, а главное, в чем особенности реализации этих алгоритмов на контроллерах.
+79
Сравниваем микроконтроллеры до 50 рублей: ARM жаждет крови
3 мин
127K
Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
+100
Пишем программы для микроконтроллеров AVR в среде Code::Blocks 10.5
2 мин
52KПривет, Хабр!
В этом небольшом топике будет показано как использовать популярную IDE Code::Blocks 10.5 для написания программ для микроконтроллеров семейства AVR фирмы ATMEL.

В этом небольшом топике будет показано как использовать популярную IDE Code::Blocks 10.5 для написания программ для микроконтроллеров семейства AVR фирмы ATMEL.

+28
Самое простое и захватывающее падение в мир микроконтроллеров или Meggy Jr RGB
3 мин
29KИтак, всем любителям ретро игр, пиксель арта, железа типа arduino и тех, у кого закрадывалась мысль написать свою простенькую игру, при этом не сильно вдаваясь в дебри даташитов!
Хочу представить вам 8-битный игровой хендхелд, на микроконтроллере Atmega-328, с большим, ярким экраном с пикселями, которые невозможно не заметить.
На борту есть: 32КБ памяти для вашего кода, 6 кнопок, простенький динамик, 8 дополнительных диодов и разъем для программирования и обмена данными.

Что можно сделать с такими малыми ресурсами?
Но ведь в любом деле основной ресурс — это ваше воображение и опыт!
Хочу представить вам 8-битный игровой хендхелд, на микроконтроллере Atmega-328, с большим, ярким экраном с пикселями, которые невозможно не заметить.
На борту есть: 32КБ памяти для вашего кода, 6 кнопок, простенький динамик, 8 дополнительных диодов и разъем для программирования и обмена данными.

Что можно сделать с такими малыми ресурсами?
Но ведь в любом деле основной ресурс — это ваше воображение и опыт!
+62
Работа с GSM-модулем на примере SIM900D
9 мин
152KНе так давно друг предложил мне работу, связанную с созданием прошивки для микроконтроллера, который должен был связываться с сервером при помощи GSM-модуля SIM900D. Ранее я с программированием микроконтроллеров дела не имел, да и на C программировал последний раз в студенческие времена, но любопытство перевесило и я принялся за работу. Документация по данной железке присутствует в интернете, однако хороших примеров работы с TCP/IP в коде найти не удалось. Ничего не оставалось, кроме как обложиться документацией, запастись сигаретами и чаем и приступить к лавированию между граблями. А граблей оказалось немало. Собственно, поэтому я и написал эту статью — чтобы другим было легче.
Далее будет много AT-команд, не слишком много кода и очень много букв.
Далее будет много AT-команд, не слишком много кода и очень много букв.
+30
Приобщение к миру USB-устройств на примере микроконтроллеров от Silicon Laboratories
10 мин
62KУстройства от Silicon Laboratories не пользуются широкой популярностью в любительских кругах, им далеко до таких флагманов, как Atmel. Однако у них есть и вполне доступные простому смертному микроконтроллеры основных линеек в корпусе TQFP, и стартовые комплекты USB ToolStick (о чем совсем недавно упоминалось на хабре). Я сам начал свое знакомство с микропроцессорной техникой, работая с «силабсами», и вполне успешно.
В данной статье я расскажу, каким образом можно организовать связь компьютера с МК, используя USB-интерфейс, и как Silabs попытались сделать это простым для разработчика.
В качестве испытуемого будем использовать плату С8051F320DK, с микроконтроллером соответственно F32x серии, поддерживающей USB аппаратно, и Keil'овскую среду разработки uVision4.
В данной статье я расскажу, каким образом можно организовать связь компьютера с МК, используя USB-интерфейс, и как Silabs попытались сделать это простым для разработчика.
В качестве испытуемого будем использовать плату С8051F320DK, с микроконтроллером соответственно F32x серии, поддерживающей USB аппаратно, и Keil'овскую среду разработки uVision4.
+56
Запретный плод GOTO сладок (версия для микроконтроллеров)!
8 мин
13KДоброго времени суток!

Какое Ваше отношение к оператору goto в языках С/С++? Скорее всего, когда Вы учились программировать, Вы его использовали. Потом Вы узнали, что это плохо, и Вы о нем позабыли. Хотя иногда при сложной обработке ошибок… нет-нет, там try … throw … catch. Или же для выхода из вложенных циклов … не-ет, там флаги и куча сложностей. Или когда вложенные switch … нет-нет-нет, там те же флаги.
И все-таки, иногда в ночной тиши Вы допускали в свое подсознание грешную мысль – «а почему бы не использовать вот тут goto? И программа вроде как стройней будет, и оптимально выходит. Да-а, было бы хорошо… Но нет – нельзя, забыли!».
А почему так оно?
Под катом – небольшое расследование и мое, основанное на многолетней практике и разных платформах, отношение к этому вопросу. Эта статья — аналог такой же для С++, но здесь выделены моменты именно для С и для микроконтроллеров.

Какое Ваше отношение к оператору goto в языках С/С++? Скорее всего, когда Вы учились программировать, Вы его использовали. Потом Вы узнали, что это плохо, и Вы о нем позабыли. Хотя иногда при сложной обработке ошибок… нет-нет, там try … throw … catch. Или же для выхода из вложенных циклов … не-ет, там флаги и куча сложностей. Или когда вложенные switch … нет-нет-нет, там те же флаги.
И все-таки, иногда в ночной тиши Вы допускали в свое подсознание грешную мысль – «а почему бы не использовать вот тут goto? И программа вроде как стройней будет, и оптимально выходит. Да-а, было бы хорошо… Но нет – нельзя, забыли!».
А почему так оно?
Под катом – небольшое расследование и мое, основанное на многолетней практике и разных платформах, отношение к этому вопросу. Эта статья — аналог такой же для С++, но здесь выделены моменты именно для С и для микроконтроллеров.
+17