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

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


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

Оценка эффективности теплоотводов для микросхем на примере Orange Pi Zero

        Начиная с недавнего времени, в интернет-магазинах стали появляться керамические радиаторы, которые, по заявлению продавца, эффективнее на 800% (!) чем алюминиевые или медные. Конечно, цифры очень сомнительные, но я решил заказать и проверить, сравнив их с другими теплоотводами.


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

SD/MMC и DataFlash-SPI ридер для 5V TTL MCU

AVR
Плата для SD/MMC карт, совмещенная с NOR/DataFlash(SPI), использованная в AtMega1284p/644p и W5500 Ethernet.
Коротко о схеме:
  • Конвертер уровней TTL/LVTTL выполнен на IC HEF4050BT/CD74HC4050(предпочтительнее это)
  • SPI-Flash IC подходят: M25P08/25LC256-512-1024/25AA02E48(Microchip OUI MAC GEN)
  • CDI — детектор наличия карты. Логический «0» на выходе при вставленной SD/MMC-карте, и наоборот «1» при отсутствии карты (как правило у китайских плат с AliExpress эта линия не разведена).
  • Протестировано и используется совместно с M644_breakout_v1.2d
  • Совместима с любыми 5V-толерантными MCU: AVR MEGA/Arduino, PIC16/18, STM8 и тд…


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

Эксперименты с Nb-IoT (LTE-NB). Прием и детектирование сигнала NPSS при помощи SDR HackRF.

В последнее время много разговоров на тему «интернет вещей» и связанных с этим технологий.
Одна из таких технологий — Nb-IoT, или Narrow-band Internet of Things.
Технология является подмножеством LTE, ну или в некотором смысле его упрощением.

Более подробную информацию можно найти в интернетах, в данной статье я расскажу о своих небольших экспериментах с реальным сигналом, принятым с ближайшей базовой станции и поделюсь результатами в виде картинок и моим комментариям к ним.
Данные эксперименты — это плод моей любознательности и желания изучать новое, чем я с вами и делюсь.

В Nb-IoT, как и в LTE, используется ODFM для Downlink и SC-FDMA для Uplink. Но об этом чуть позже. Сначала давайте разберемся, где вообще искать этот сигнал и как он может выглядеть.
Для приема сигнала я использовал HackRF, которую мне одолжил один хороший человек.



Для начала, погуглим и выясним, на каких вообще частотах работает этот самый Nb-IoT у нас в стране.




Читать дальше
  • +6
  • 17 апреля 2019, 17:30
  • Ezhik

Вебинар «Прецизионные сигма-дельта АЦП Texas Instruments»

Аналого-цифровой преобразователь – ключевой элемент аналогового тракта любого измерительного прибора. От его характеристик критически зависит качество измерений. Компанией Texas Instruments накоплен огромный опыт разработки, производства и применения самых современных АЦП.



Частицей этого опыта с участниками вебинара поделится один из ведущих разработчиков прецизионных аналого-цифровых сигма-дельта преобразователей Шридар Мор. В ходе вебинара Шридар кратко расскажет, как работает Δ-Σ АЦП, затронет основные проблемы, с которыми сталкиваются разработчики измерительных систем, а также разберет некоторые примеры разработки устройств с применением новейших АЦП Texas Instruments.

Содержание
  • Принципы работы Δ-Σ АЦП;
  • Линейка Δ-Σ АЦП Texas Instruments;
  • Оптимизация схемотехнического решения измерительной системы при помощи высокоинтегрированных АЦП ADS122U04;
  • Разработка прецизионных и точных измерительных систем на основе АЦП ADS1262;
  • Построение измерительных систем на основе резистивных мостовых схем;
  • Интегрированные функции диагностики и мониторинга состояния АЦП на примере ADS124S08.

Ссылка на доп материалы
  • +2
  • 11 апреля 2019, 17:39
  • DIHALT

AtMega1284p/644p и W5500 Ethernet

AVR

Множество тестовых примеров использующих ATMEGA 1284p/644p и Ethernet контроллер W5500.

Собственно выкладываю ссылку на «распатроненный» мной Ethernet-стек для дешевого Ethernet контроллера на Wiznet 5500 SPI: m1284p_wiz5500
Основано на примерах для W5500 EVB (LCP13xx + W5500). Не Arduino С-код, довольно серьезно модифицировано(по причинам различий в архитектуре процессоров ARM и AtMega, a также немалого количества багов в коде приложений для W5500 EVB). Собиралось при помощи Eclipse Kepler с плагином AVR-Eclipse и тулчейном avr-gcc 4.9.2 (посредством самописного Makefile, думаю тоже соберется при желании).


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

Печатная плата под AtMega 8535/16/32/644/1284

AVR
Мой вариант печатной платы под AtMEGA 16/32/644/1284 (TQFP-44 0.8mm).
Оригинал разводился еще в древнем Eagle 5.6.0.
Было интересно, получится ли провести экспорт в KiCad 5.xx.
И да — все прошло на удивление гладко, герберы успешно сгенерированы, и приняты на производство PCBWAY.


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

STM8L Компараторы: часть2 COMP2 и оконный режим

В первой части мы рассмотрели COMP1. Теперь займёмся вторым компаратором COMP2 и задействуем оконный режим. Работать будем с микроконтроллером STM8L152C6T6, который установлен на плате STM8L-DISCOVERY. STM8L152C6T6 относится к классу medium. Для работы с компараторами возьмём делитель напряжения из первой части, только переделаем его так, чтобы он давал напряжение от 0 до 1,5V.


Выход делителя теперь подключим к ножке PE5 микроконтроллера:

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

STM8L Компараторы: часть1 COMP1

Компараторы в микроконтроллерах серии STM8L рассмотрим на примере STM8L152C6T6, который установлен на плате STM8L-DISCOVERY.

Наш STM8L152C6T6 относится к классу medium. Для начала разберёмся с подключением первого компаратора COMP1. Для иллюстрации подключения компаратора из RM0031 возьмём рисунок из раздела Routing interface (RI) для medium:


Входной сигнал мы будем подавать

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

USB HID для микроконтроллеров STM32F103 без использования библиотек

Однажды озадачившись подключением микроконтроллера к ПК через USB, я обнаружил, что это непростая задача. По сравнению с USART, SPI и.т.п., программирование USB оказалось на порядок сложнее. Поиск примеров в интернете практически не дал никаких результатов. Имеющиеся примеры, как правило, основаны на использовании больших и сложных библиотек, которые очень трудно применить, а тем более модифицировать под свои нужды. Также эти примеры обычно состоят из множества файлов, так что даже понять структуру проекта, а не то что принцип работы, USB из них не представляется возможным. Есть неплохие статьи по USB, однако ответа на вопрос, как реализовать обмен данными на конкретном контроллере они не дают. В итоге пришлось самостоятельно, путем длительных экспериментов пытаться запустить USB.
Используемый контроллер STM32F103C8T6. Это наверное самый распространенный и дешевый контроллер с модулем USB. Конкретно использовалась вот такая плата:
ru.aliexpress.com/item/STM32F103C8T6-ARM-STM32-DIY-KIT/32839140960.html?spm=a2g0v.search0104.3.14.1a477b81mKd6hC&ws_ab_test=searchweb0_0%2Csearchweb201602_9_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10902_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910%2Csearchweb201603_58%2CppcSwitch_0&algo_pvid=551618bd-fcbf-49a9-9147-692e88feb8ce&algo_expid=551618bd-fcbf-49a9-9147-692e88feb8ce-5
Цена такой платы практически равна цене микросхемы отдельно. Реализуемый класс устройств HID. Преимущества HID известны. Это отсутствие необходимости использования драйверов на ПК и относительная простота реализации. К недостаткам можно отнести низкую скорость передачи данных. В качестве среды программирования использован CooCox. Программа со стороны ПК компилировалась в Borland C++ 5.5.
Программа для CooCox состоит из одного файла и не использует никаких библиотек (кроме RCC, которая нужна лишь ради функции SystemInit(); в начале программы). Также не используются прерывания, поскольку, на мой взгляд, их использование, затрудняло бы понимание кода и отладку. VID и PID взяты от какого-то STM-овского устройства. При их смене, нужно так-же сменить их и в программе на ПК, поскольку поиск устройства происходит по VID и PID.
Работа рассматриваемой пары программ состоит в следующем. Программа со стороны ПК посылает целое число в контроллер. Контроллер делает инкремент полученного числа и отправляет его назад в ПК. Затем этот цикл повторяется снова и снова. В окне программы выводится полученное число. Дополнительно реализовано управление светодиодом на плате (PC13).
Данная программа не претендует на полное соответствие протоколу USB. В ней реализована обработка ограниченного набора запросов (только тех, что реально попадались при отладке). Как показала практика, набор запросов может различаться на разных компьютерах. Кроме того несмотря на то что удалось добиться работоспособности данной программы, многие вопросы касающиеся USB для меня так и остались непонятными. Этот пример, скорее полуфабрикат, требующий дальнейшей доработки.
Файлы проекта:
drive.google.com/drive/folders/1b3E0YwgRlacK2K2Qykc7OxS11ocNuWig?usp=sharing
  • +8
  • 27 марта 2019, 17:29
  • VVK
  • 1