Рейтинг
12.57
голосов: 10

О блоге

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

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (153)

dcoder Krieger Tabke XANDER marvin_yorke kest Vga Alatar mzw kalvenolt Reverb mist grand1987 Gornist Rom kvm labor neiver Leopoldius rumkin

Все читатели блога

Реверс-инжиниринг протокола обмена в оборудовании EOS

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


Читать дальше
  • ?
  • 29 мая 2019, 09:20
  • FDA

STM32: Драйвер АЦП: Микросхема ADS1256 [Texas Instruments] это Малошумящий 24-битный АЦП с SPI интерфейсом. топик-ссылка

Драйвер АЦП "ADS1256" реализован для архитектуры микроконтроллеров "STM32 Cortex-M" с использование низкоуровневых драйверов для SPI и EXTI из стандартного фреймворка "STM32CubeFW". Компилятор: GCC-совместимый (Keil, IAR)... Реализован модуль математической постобработки: "усреднение скользящим окном", "конвертация кода АЦП в реальные единицы измерения", "Калибровка АЦП"... Реализован асинхронный "Режим потоковой конвертации DATAC" для ADS1256.

Использование моделей Spice в Proteus

  Понадобилось смакетировать схему в Proteus 7.10 с применением LDO стабилизатора AMS1117-5. Обнаружил, что данной модели нет, лучшее что может предложить мой Proteus, это 78L05. Непорядок, надо исправлять, т.е. попытаться добавить нужную модель в симулятор.
  В симуляторе Proteus могут использоваться 3 типа моделей — схематическая, Spice и DLL. Для первой на дочернем листе надо собрать схему из моделируемых примитивов Proteus, впоследствии преобразовав этот лист в файл *.MDF и подключив его к графическому примитиву. Proteus предоставляет средства для создания такого типа моделей. Для второй надо найти и скачать из инета уже созданную умными головами модель Spice для нужного компонента (в ASCII формате) и опять же подключить к графическому примитиву. Средств для создания такого типа (Spice) моделей Proteus не продоставляет. Самостоятельное изготовление DLL моделей доступно только программистам, тем более и соответствующий SDK для них (моделей) Labcenter закрыл. Естественно и никаких средств для создания моделей такого типа Proteus не продоставляет.
  В работе с Proteus рускоязычным пользователям может помочь замечательный цикл статей "FAQ (ЧаВО) по PROTEUS для начинающих и не только" от А. Христианчика (ник Halex07). На сайте Kazus.ru они доступны в разрозненном виде в порядке изложения. Для удобства Halex07 собрал первые 8 глав в 4 части (вместе с кодом и примерами) и дал на них ссылки для скачивания. Это же самое FAQ также доступно в формате Proteus.pdf (без кода и примеров). Также этот FAQ доступен в сборнике «РадиоЕжегодник» №24, 2013, «Proteus по-русски». На сайте Kazus.ru существует и незаконченная 5 часть FAQ, но она только на форуме в порядке изложения. Далее для краткости ссылки на FAQ будут именоваться как (FAQ_3.11, т.е. глава 3.11).
  Статья представляет собой вольный перевод раздела "Using Spice Models" хелпа Proteus.


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

Как получить актуальное время от GSM модуля, даже если оператор его не дает

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


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

Организация программ. Конечные автоматы. Программные таймеры.

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

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

В последнее время я крайне занят, поэтому буду добавлять материал по мере возможности.

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

Системный тик 1 мс. 10 мс.
Однократный запуск.
Периодический запуск.
Отложенное исполнение.
Немедленное исполнение.

В итоге получилось следующее:


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

Бурбулилка, или много болтовни около трёх строчек кода

Давным-давно, когда я был совсем маленьким, я купил билет на московский международный ки журнал Радио. И со скуки сделал фиготу, которая там была нарисована.

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

Самый простой программный таймер

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


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

Delphi. Запрет перехода на определенный TabSheet в PageControl по неизвестному заранее условию...

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


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

Универсальная библиотека ИК-пультов топик-ссылка

Мне тут понадобилось прикрутить пультик к устройству. Взял первый попавшийся код, прошил, отсканировал пульт, внес скан-коды кнопок, код переписал. А потом пульт поменять понадобилось. Вот тут я и стал искать, как сделать универсальный декодер пультов. И нашел библиотеку по ссылке. UP. Проверил AVRUart на ATTiny2313, влезли протоколы NEC и Sony. Работает.

Скриптовый отладчик в KEIL. Ассемблер А51, задание тестовых значений переменных при отладке програмы.

  Что такое скриптовый отладчик в KEIL? Это командный интерпретатор доступный только в режиме отладки. Его использование возможно из специальной отладочной консоли. В качестве командного языка используется подмножество языка С с некоторыми ограничениями:
  • прописные и строчные символы не различаются;
  • существуют ограничения по работе с указателями и адресной арифметикой;
  • не может использоваться для вызова процедур и функций отлаживаемой программы;
  • не поддерживает определение структур;
  Отладчик может выполнять скрипты, или по иному, встроенные в отладчик и/или написанные программистом процедуры и функции. В них доступны публичные константы и переменные отлаживаемой программы (Symbols) и команды отладчика. Также поддерживаются стандартные С операторы управления ходом выполнения программы if, else, while, do, switch, case, break, continue, goto.
  Хотя данная статья написана применительно к ассемблеру А51 архитектуры MCS-51, данные приемы универсальны, и могут быть применены и к языку С, и к архитектуре ARM с минимальными переделками или без них.


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