Рубрика «микроконтроллеры» - 25

image

Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
Читать полностью »

imageВ кратце опишу содержание статьи:

Есть циклический аппаратный счётчик, который, например, считает секунды, и есть прерывание по его переполнению. Расширяем диапазон счисления программным способом, инкременируя значение другой ячейки в прерывании. Таким образом, получаем возможность считать и минуты. Суть проблемы в том, что в общем случае одновременно прочитать значение минут и секунд невозможно, а при последовательном считывании может произойти прерывание и увеличение минут. Последствия: путешествие во времени назад.
Читать полностью »

В этой статье мы расскажем, как создаются устройства Z-Wave. С точки зрения схемотехники и программирования разработка Z-Wave устройства не сильно отличается от разработки устройства на базе Arduino, AVR или PIC. Однако есть в Z-Wave свои нюансы. О них-то и пойдёт речь под катом.
Как делаются Z-Wave устройства - 1
Читать полностью »

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

Вот две строки, я гений, прочь сомненья
Даешь восторги, лавры и цветы…

Данный пост посвящен довольно таки старой задаче о считывании таймера, с которой лично я ознакомился в книге Джека Гансли (The Art of Designing Embedded Systems (Second Edition), (2008) by Jack Ganssle) в которой рассматривается борьба с гонками в асинхронных устройства. Сформулирована проблема и показаны 4 способа ее решения (2 неправильных и 2 правильных), рассмотрены их недостатки, в общем, добротная работа в стиле Джека (я к нему отношусь очень хорошо). К сожалению, на мой взгляд, даже работающие решения не имели должной степени элегантности, но более красивое долго не приходило в голову, а вчера неожиданно осенило. Так что я считаю себя вправе изложить данную проблему в ее историческом контексте, поскольку придумал очень элегантное решение (сам себя не похвалишь, весь день ходишь как оплеванный).
Читать полностью »

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

История эта началась с проектирования переносного устройства, в котором было желательно уменьшить потребление от аккумулятора в режиме отключения, но механический переключатель был неприемлем в силу конструктивных особенностей. Также было нежелательно использовать транзистор в качестве ключа ввиду значительных рабочих токов устройства (более 3А). Поэтому было принято распространенное решение о блокировке работы входящих в состав устройства источников питания (ИП) при помощи управления сигналом разрешения работы. Ничего нового и необычного, таких схем можно найти 12 на дюжину в устройствах с автономным питанием, однако совершенно неожиданно возникли определенные осложнения, которые привели к ряду поучительных выводов.

Читать полностью »

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

Поводом к написанию данного опуса послужило, как всегда и бывает у меня, стечение обстоятельств. Размышляя над особенностями возможной реализации интерфейса от микроконтроллера (МК) к WS2812, наткнулся, причем совершенно случайно, на нечто аналогичное на сайте одной фирмы, называть которую не буду, поскольку намерен ее слегка (а может и сильно, пока не знаю, будет видно по ходу изложения) поругать. Даю подсказку — она занимается продажей в нашей стране Arduino плат и шилдов к ним, название начинается с первой буквы русского алфавита, заканчивается на нее же, и товар, сподвигший меня на данный пост, расположен на последней позиции четвертой страницы в разделе «Платы и модули», на странице этого товара можно найти схему устройства и ссылку на программу, о которых я и хотел бы рассказать кое-что интересное, в особенности для молодых инженеров (ну я так думаю). Не знаю, как у других обитателей Хабра, а у меня бывает такое, что читаю текст и вижу, что какое-то слово в нем неправильное. То есть сразу понимаю, что оно неправильное, но потом нужно некоторое время, чтобы в него вчитаться и понять, что именно в нем неправильно и где ошибка. К сожалению, данное правило действует только в отношении чужих текстов, когда я вычитываю свой, то частенько читаю не то, что реально написано, а то, что собирался написать (я то ведь твердо знаю, что тут должно быть). Ну так вот, при первом же взгляде на схему мне она показалась неправильной, и при внимательном рассмотрении первое мнение подтвердилось.
Читать полностью »

«Если рассматривать шкалу духовных ценностей по нисходящей, существуют
Вещи В Порядке Вещей, существуют
Вещи Неприятные, Но В Принципе Допустимые, и существуют
Вещи, Которые Терпеть Никак Нельзя». — Мидянин

Как говорил небезызвестный классик «Не могу молчать».
Недавно смотрел исходные тексты на сайте довольно-таки известного производителя и увидел следующий код

*(unsigned int *)0xf80ff000 &= 0xffffefff;

Не надеясь, что эти заметки прочтут в далекой «Индии» (смотри примечание ниже) (складывается ощущение, что они и читать то не умеют), тем не менее хотел бы предостеречь молодых инженеров — так делать НЕЛЬЗЯ.

Примечание от сегодняшнего дня — набросал этот пост больше месяца назад, все руки не доходили довести его до приемлемого вида, так что источник указать не могу, ну да Инет Вам в помощь — подобного кода там чуть меньше, чем очень много.
Читать полностью »

Несколько лет назад поставщик компиляторов Keil (теперь принадлежит ARM) поместил объявление в Embedded Systems Programming magazine (позже известный как Embedded Systems Design, а сейчас embedded.com) о своем новом компиляторе: COBOL для 8051.
Это была шутка, и размещена она была в апрельском номере. Какой смешная и абсурдная идея продукта! COBOL для встраиваемых систем? И COBOL для 8051! Я позвонил президенту компании и поздравил его с отличной шуткой.
А он ответил мне, что они получили запросы на поставку!
Читать полностью »

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

Система автоматического управления аквариумом на Arduino - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js