Как стать автором
Обновить
2
0
Рустам Хабибуллин @premierhr

Пользователь

Отправить сообщение

Cortex-M0+ под ногами или бесплатная «девборда»

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров20K

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

Читать далее
Всего голосов 36: ↑35 и ↓1+45
Комментарии45

Проект «Селенит». Часть 5: Контроллер, встроенное ПО и квадратурный модулятор

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.2K

Аппаратура SDR (Software-defined Radio), как и следует из названия, представляет собой программно-аппаратный комплекс. В предыдущих частях цикла были рассмотрены преимущественно аппаратные решения радиотракта трансивера Selenite Lite. В большей части данной публикации будет рассмотрена та часть радиостанции, которая предназначена для управления «Radio» и его связи с «Software».

Речь пойдёт о контроллере, на котором реализовано составное устройство USB, включающее в себя звуковое устройство USB и виртуальный COM-порт. Данная конфигурация позволяет управлять трансивером извне по CAT-интерфейсу и производить обмен аудиопотоками с программой, которая производит обработку сигналов для работы в эфире.

Все части цикла статей о создании любительской радиостанции:

Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии10

Видеокарта VGA для микроконтроллера. Часть 2. От идеи до мелкой серии

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров15K
image

В первой части была описана идея видеокарты VGA для простого микроконтроллера (или ардуины), с помощью которой можно выводить информацию на стандартный монитор с интерфейсом VGA даже с самых слабых и медленных ядер. Карта, сердцем которой является высокоскоростная ПЛИС, берет на себя все скоростные и критичные к таймингам операции.

Идея была обкатана на макете и показала свою жизнеспособность. Однако для ее реализации «в железе», а тем более в серии, необходимо пересмотреть несколько моментов.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+80
Комментарии37

Создаем I2C Master Controller на Verilog. FSM, Clock, Output Logic, etc

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров5.7K
После длительного перерыва я продолжил разработку I2C Master Controller на Verilog. В прошлых статьях я рассмотрел основной теоретический материал, необходимый для реализации изначальной задумки. В этом материале переходим к более интересному содержанию: я последовательно расскажу про процесс проектирования конечного автомата I2C, расскажу про тактирование и как организована логика выходных сигналов и многое другое.

Всем, кому интересно — добро пожаловать под кат!

image


Читать дальше →
Всего голосов 47: ↑46 и ↓1+56
Комментарии9

Сборник встраиваемых модулей на ПЛИС

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9K

Интереса ради сделал несколько простеньких модулей (аля платки для встраиваемых систем), про которые и хочу рассказать и поделиться исходниками, вдруг кому пригодится. Да, эта статья не про ПЛИСовую тематику, а что бы её немного разбавить, хотя кого я обманываю, модули же с ПЛИСами.

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

Читать далее
Всего голосов 20: ↑18 и ↓2+21
Комментарии23

IMSProg — программатор для CH341a в Linux

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров16K

Несколько лет назад я полностью перешел на Linux, и все меня устраивало за исключением отсутствия некоторых просто необходимых программ.

Читать далее
Всего голосов 67: ↑67 и ↓0+67
Комментарии43

Персональное облако

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


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

Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии49

Создаем I2C Master Controller на Verilog. Идея и физический уровень

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров8.7K
В рамках изучения Verilog я выбрал для себя интересную и полезную задачу, которую изначально планировал решить в рамках цикла статей по Xilinx Zynq. На отладочной плате, на которую я делал обзор в предыдущих статьях, есть OLED дисплей SSD1306 который управляется по I2C. Я решил, что было бы круто вывести на него какую-нибудь информацию из Linux, например температуру или загрузку CPU. Но чтобы это сделать — полезной информации нужно пройти путь от Userspace до I2C Master Controller который управляет SSD1306. И вот реализацию этого самого контроллера из этой связки я хотел бы описать в этом цикле статей.

И немного поразмыслив — я подумал, что на этапе разработки этого модуля быстрее было бы его реализовать плате с ПЛИС Altera. Уж очень долго собирается bitstream-файл под Zynq. А в качестве тестового подчиненного устройства — буду использовать EEPROM и по мере готовности задачи — потом просто перенесу модуль в Vivado.

В как раз о том, что такое I2C, как я реализовывал Master Controller для работы с подчиненным устройством, чем руководствовался и что получилось — я опишу для вас в этой и последующих статьях.

Традиционно, кому интересно — добро пожаловать под кат! =)

image
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии10

Altera Quartus Prime и ModelSim под Linux. Вводное руководство

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.9K
В очередной раз, начав изучать что-то новое для себя, я столкнулся с типичной для меня проблемой: нет нигде быстро гуглящегося how-to и step-by-step руководства по быстрому созданию какой-либо простой конструкции на Verilog и описания способа эту конструкцию быстро симулировать без необходимости запуска кода в железе для проверки конечного результата. Я надеялся очень быстро найти готовый материал о том, как под Altera Quartus 20.1 и ModelSim 2020.1 под Linux всё по-быстрому сделать и идти дальше. В итоге не найдя ничего системно и последовательно описанного в одном месте я традиционно разобрался самостоятельно и решил это исправить своей очередной статьей на Хабре. 

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

image
Читать дальше →
Всего голосов 36: ↑35 и ↓1+41
Комментарии3

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

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

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Всего голосов 148: ↑146 и ↓2+191
Комментарии52

Третий вопрос на интервью в электронные компании

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

У разных электронных компаний вопросы на интервью немного отличаются. В одной интервьюер на скрининге (первом интервью) спросит кандидата на RTL позицию про конечный автомат, в другой про арбитр, кэш или конвейер, в третьей про упорядочение неупорядоченных транзакций. Но на большом интервью вопрос про очередь FIFO появится практически всегда - не первым/вторым, но третьим.

Это может быть элементарный вопрос "напишите на доске (физической, ха-ха, без доступа к интернету и ChatGPT) код для FIFO на D-триггерах". Или это может быть обсуждение микроархитектуры какого-нибудь извращенного FIFO, например FIFO с отменой вталкиваний, или с возможностью втолкнуть и вытолкнуть переменное количество кусков данных за такт, или с конвейером и кредитным счетчиком, или работающее на памяти с высокой латентностью, или асинхронное FIFO из статьи Клиффа Каммингса про пересечение тактового домена.

Эта заметка является сиквелом заметки "FIFO для самых маленьких", а также приквелом занятия в Школе синтеза цифровых схем в ближайшую субботу. Главное нововведение - все примеры и упражнения теперь делаются не только в симуляторе, но и на плате ПЛИС.

Читать далее
Всего голосов 19: ↑18 и ↓1+24
Комментарии39

Теория управления шаговым двигателем (или как вертеть PTZ камеру)

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

Настал тот редчайший случай, когда в работе программиста микроконтроллеров появилась нужда в знании математики и даже физики.

При управлении шаговыми двигателями важно решать кинематическую задачу. Правда по уровню сложности её можно отнести к школьной программе 6 класса.

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии43

Неизвестный UART: теория

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

Можно с уверенностью сказать, что с момента публикации первой версии стандарта RS‑232 в мае 1960 года и по настоящее время, было написано приблизительно 109 независимых реализаций UART на всём, чём угодно. Однако, подобно «Hello world» в мире прикладного ПО, а также мигания светодиодом — «Hello world» в мире цифровой электроники (сигнализирующий об успешной настройке оборудования и среды разработки) — процесс написания UART способен проиллюстрировать особенности языка или платформы, демонстрируя применение тех или иных синтаксических конструкций для решения практических, насущных и понятных проблем.

В данном цикле статей будет рассказано про написание модуля UART на SystemVerilog, про синтез данного модуля на различных платформах и про некоторые другие аспекты применения UART в ПЛИС. Но прежде, чем писать код, поговорим про сам протокол и про особенности аппаратной части вне контекста ПЛИС.

СТАРТ_БИТ
Всего голосов 91: ↑91 и ↓0+91
Комментарии36

Программирование EEPROM 93C76. Пишем программатор. Часть 1

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

Всем привет! Я - ritsudo, инженер-любитель, до этого публиковался на некоторых других платформах. Решил попробовать себя здесь, если статья понравится, будет продолжение. В этой статье мы изучим работу с микросхемой EEPROM 93C76, рассмотрим обращение к ней по шине SPI, напишем функции чтения, стирания и записи данных.

Читать далее
Всего голосов 26: ↑25 и ↓1+34
Комментарии33

Микроконтроллеры НИИЭТ. Обзор

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

На волне подъема всеобщего интереса к отечественным микроконтроллерам и процессорам мне захотелось разобраться, а что за камни делает НИИЭТ? Про микроконтроллеры и процессоры других производителей написано немало (как на самом Хабре, так и в тематических журналах). А про МК НИИЭТ крайне мало информации, особенно практической и особенно про 8-ми и 16-битные.

Читать далее
Всего голосов 28: ↑26 и ↓2+35
Комментарии102

Создание USB-гаджета с нуля или еще одна лампа настроения

Время на прочтение6 мин
Количество просмотров58K
Как-то на глаза попалась статья про лампу настроения. Будучи очень далеким от электротехники и абсолютно незнакомым с принципом работы микроконтроллеров, полученных из топика данных ну никак не хватало для понимания всех необходимых действий для создания лампы. Со временем на глаза попадались другие интересные проекты на микроконтроллерах, потому в один прекрасный момент появилось желание потратить часть свободного времени на покорение сей стихии.

В этой статье я попытался собрать информацию о первых шагах создания с нуля своего проекта на микроконтроллере.
Читать дальше →
Всего голосов 168: ↑167 и ↓1+166
Комментарии99

Нейросети на RISC-V с Movidius Neural Compute Stick

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

RISC-V — перспективная открытая архитектура, не требующая royalty от производителей железа на её основе. Нужно отметить, что интерес к архитектуре RISC-V растёт намного быстрее, чем закрепляется её спецификация и идёт процесс принятия новых фич комитетом, а также дальнейшая реализация в железе и софте. Например, сейчас сложно найти предложение по CPU и совместимое с ним Linux ядро с поддержкой векторизации, хотя RVV 0.7.1 уже существует, и RVV 1.0 вот-вот его заменит. В нашем эксперименте трудоемкие вычисления перекладываются на внешнее устройство, поэтому сгодится и самый простой центральный процессор.

В этой статье вы найдете подробные инструкции по использованию библиотек OpenVINO и OpenCV на RISC-V для запуска нейронных сетей с использованием акселератора. Цель материала — продемонстрировать гибкость решений на примере использования RISC-V CPU в качестве хоста для работы с нейросетевым ускорителем Intel Movidius Neural Compute Stick 2 (NCS2). Большая часть статьи состоит из инструкций по сборке под RISC-V. Конечно, это не самый творческий процесс, но мы верим, что со временем все они спрячутся под процессами CI/CD, как когда-то было с ARM-экосистемой.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Как уехать из России: расширенная подборка полезных ссылок для эмиграции

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

Привет! Меня зовут Коля, я создатель одного из крупнейших каналов про релокацию и работу за границей Remocate. В этой подборке постарался собрать все ссылки, которые могут пригодиться в ближайшие дни. 

Читать далее
Всего голосов 57: ↑34 и ↓23+24
Комментарии72

Видеонаблюдение на даче

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

Обратились ко мне за помощью. Задача стояла: подключить и настроить комплект видеонаблюдения на даче. Опыт в этой сфере был минимальный, баловался дома с USB камерами. И на работе была уже настроенная система с отдельным сервером. Представление было как устроено видеонаблюдение, благо есть опыт в IT сфере.

Для статьи я старался найти оригиналы фото устройств. У некоторых качество хромает. Остальные будут взяты с интернета.

Установку видеонаблюдения начали в 2019 году. Вносили изменения вплоть до конца 2021 года. Интересное началось, когда заказчик захотел проверять камеры из дома.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии109

Микроконтроллеры по 5 рублей. Программируем микросхемы PADAUK

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

Впервые известие о том, что фирма PADAUK Tech продаёт микроконтроллеры по три цента появилось в 2018 году. Эта новость вызвала интерес и обсуждение на форумах, а затем благополучно была забыта (по крайней мере в русскоязычном комьюнити).

В статье расскажу о своём опыте освоения микроконтроллеров PADAUK. Кратко рассмотрим особенности архитектуры, средствах разработки и отладки, посмотрим что нужно учесть перед тем как использовать эти микросхемы в своих проектах. Протестируем микроконтроллер PFC161 на отладочной плате.

Читать далее
Всего голосов 84: ↑81 и ↓3+97
Комментарии69

Информация

В рейтинге
Не участвует
Откуда
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Дата рождения
Зарегистрирован
Активность