Search
Write a publication
Pull to refresh
287
0.2
Владимир @32bit_me

Программист

Send message

Custom floating point format on FPGA

Reading time10 min
Views26K
Всем привет!

В данной статье речь пойдет о числах в формате с плавающей точкой и в частности о реализации специализированного формата FP23 на программируемых логических интегральных схемах (ПЛИС). В рамках конкретного проекта у меня родилась мысль реализовать оптимальный для определенных нужд формат данных с плавающей точкой. В итоге эта мысль переросла в реальный проект, который впоследствии нашел применение в некоторых интересных задачах цифровой обработки сигналов. В статье рассмотрены основные сложности при реализации формата данных floating point на ПЛИС Xilinx, рассмотрены базовые математические операции в формате FP23. Также в конце статьи вы можете найти исходный код проекта, которой можно свободно использовать в своих задачах или на его основе реализовать похожие форматы данных.


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

STM32 и LCD, быстрая заливка экрана

Reading time12 min
Views76K
В настоящее время получили распространение различные жидкокристаллические дисплеи, которые отлично подключаются к контроллерам семейства STM32. В данной статье речь пойдет об одном из распространенных контроллеров STM32F103C8T6 и дисплее 7" на контроллере SSD1963. Оба в виде законченных узлов легко доступны на Aliexpress и относительно недорого стоят. Конечно, все рассмотренное ниже справедливо и для других дисплеев с параллельным интерфейсом и большинства контроллеров STM32.
Читать дальше →

Измерим гармонию — анализатор звукового спектра на STM32L4 Discovery

Reading time7 min
Views17K
В предыдущей публикации мы подключали дешевый китайский LCD экран к плате STM32L4 Discovery. Теперь мы попробуем реализовать на этой комбинации что-то выходящее за рамки традиционного моргания светодиодом, а именно анализатор звукового спектра, который использует имеющийся на плате микрофон. Заодно я расскажу, как пользоваться операционной системой FreeRTOS, и зачем она нужна, а также почему в нотной октаве 12 нот, и чем 53 ноты лучше, чем 12.



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

Альтернативы Raspberry Pi

Reading time4 min
Views55K
Когда речь заходит об одноплатных компьютерах (single-board computer), вероятно, первым на ум приходит именно Raspberry Pi. Тем более, что недавно вышла третья «малина», которая шустрее и мощнее предыдущих версий. Крохотные компьютеры этой линейки, изначально предназначавшиеся под обучение информатике, способны делать много чего интересного. Эта «машинка» может стать метеостанцией на солнечной энергии, управляющим центром «умного дома», игровой приставкой для любителей 8-битной классики и даже сердцем радиоуправляемых моделей. Тут все зависит от фантазии, желания и прямоты рук.



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

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

Терминал для домашнего Linux сервера на базе ESP8266

Reading time6 min
Views29K

Введение


Данное устройство служит для удалённого доступа к Linux серверу посредством последовательного порта и позволяет отказаться от локальных монитора и клавиатуры. Зачем оно нужно если есть SSH и VNC? Нужно в виду ряда проблем, связанных с управлением на этапе загрузки системы и управлением питанием:
  • Выбор загружаемой ОС, вход в recovery mode, memtest. Нажатие S во время загрузки при невозможности смонтировать одну из файловых систем, управление fsck во время загрузки.
  • Ввод пароля от зашифрованного корневого раздела во время загрузки. Приходилось в initramfs устанавливать dropbear действующий на этапе загрузки. Пароль вводился по SSH. Хочу отметить, что данный способ непросто мне давался в плане конфигурации, на популярных дистрибутивах приходилось править скрипты загрузки и использовать некоторые костыли, которые переставали работать с выходом новых релизов.
  • Удаленное выключение и включение. С первым затруднений никогда не было, а вот для включения приходилось применять технологию Wake-on-LAN (WOL), магический пакет посылался с маршрутизатора и сервер включался, правда не всегда, а только тогда когда в конфигурационных регистрах сетевой карты были «правильные» значения перед выключением, которые должна была внести туда ОС.
  • Отказы после отключения электричества и некорректной работы UPS, вкупе с автоматическим включением настроенном на материнской плате.
  • К сожалению, оборудование моего домашнего сервера не промышленное и не обладает высокой степенью надежности. То же касается и программного обеспечения, зачастую работают «сырые» модули ядра. В следствие чего не раз сервер «зависал» не отвечая ни по сети, ни на нажатие клавиш клавиатуры. Приходилось использовать аппаратный сброс зажимая кнопку питания более чем на 3 секунды.


На промышленном оборудование таких проблем нет, в пример можно привести решение HP iLO позволяющее удаленно хоть систему устанавливать, не говоря о таких вещах как управление питанием и диагностика системы. Кстати говоря у них есть продукты и для дома/малого бизнеса с этим решением. Но так сложилось, что система строилась на базе обычной miniITX материнской платы без таких возможностей.
Читать дальше →

Arduino+Modbus+MasterScada

Reading time2 min
Views32K
Решил создать союз между arduino и Master Scada.

Почему именно Master Scada? Отвечу: Master Scada работает через собственный OPC сервер имеющий множество настроек, что позволяет хорошо рассмотреть процесс опроса каналов, ну и он бесплатный на 32 канала).

Для теста воспользовался двумя ультразвуковыми дальномерами HC-04 и платой arduino uno.

Передачу осуществил по протоколу modbus.
Читать дальше →

Как я ошибся при написании хеш-таблицы и какие выводы из этого сделал

Reading time23 min
Views26K
Для ясности теоретического понимания нет лучшего пути, чем учиться на своих собственных ошибках, на собственном горьком опыте. (Фридрих Энгельс)

Всем привет!


Несколько недель назад мне в линкедине написал коллега и сообщил, что в моем проекте на гитхабе не совсем верно работает хеш-таблица.


Мне прислали тесты и фикс, и действительно создавалась ситуация, где система "зависала". При расследовании проблемы я понял, что допустил несколько ошибок при верификации. На Хабре тема верификации RTL-кода не слишком подробна расписана, поэтому я и решил написать статью.


Из статьи вы узнаете:


  • как можно организовать хеш-таблицу на FPGA.
  • на чём была построена верификация.
  • какие ошибки я допустил (они привели к тому, что бага не была замечена раньше).
  • как это всё можно исправить.

Добро пожаловать под кат!

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

Восстанавливаем очередной PDP-11/04

Reading time5 min
Views11K
Перевод статьи по восстановлению еще одного PDP-11/04. Прошлую трилогию можно почитать тут — часть 1 (сам PDP-11/04), часть 2 (ленточная станция TU60), часть 3 (терминал LA30). Курсивом мои комментарии.

PDP-11/04, присланный Гуннаром


Данный аппарат мы получили от Гуннара Барбро, и с ним шла куча разных вкусностей для PDP-11. Но состояние самого компьютера было далеко от совершенства. Не хватало плат процессора и памяти, переключатель питания был заменен новоделом, к тому же всё было ужасно пыльным. К объединительной плате (backplane) были подключены плата консоли программирования KY11-LB, XY11 (модуль для управления графопостроителем, к примеру IBM 1627, который поставлялся с машинами DEC, и являлся каноничным CalComp 565), KW11-P (модуль программируемого RTC, да-да под RTC шла целая плата!), основная плата RK11-D с набором модулей (контроллер для накопителей на магнитных дисках, это был набор карт (3 или 4 штуки), объединенный общей платой), и DR11-B (контроллер DMA, который, опять же, состоял из нескольких плат: M7194, M971, M5916, M7820, ...), также со всеми модулями.



Чистка


Мы разобрали компьютер на части и аккуратно промыли их с мылом, а затем компрессором продули насухо. После просушки собрали их в единое целое. Во время этих процедур то тут, то там обнаруживались пятна ржавчины.
Читать дальше →

Использование mbed кода в собственном проекте на STM32 — опыт разгона китайского LCD

Reading time6 min
Views14K
Иногда чужой код очень помогает в деле подключения к микроконтроллеру периферийного железа. К сожалению, адаптировать чужой код к своему проекту бывает сложнее, чем переписать его самому, особенно если речь идет о мега фреймворках вроде arduino или mbed. Желая подключить китайский LCD на базе ILI9341 к плате STM32L476G DISCOVERY, автор задался целью воспользоваться в демо-проекте от ST драйвером, написанным для mbed, не изменив ни строчки в его коде. В результате удалось заодно разогнать экран до невиданных скоростей обновления в 27 fps.



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

Как листок бумаги может устроить тебя на работу, или все секреты резюме

Reading time8 min
Views22K
image

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

Что написать


В западной культуре резюме называют CV – Curriculum Vitae, то в переводе с латыни означает «жизнеописание». И правда: из твоего резюме потенциальный работодатель должен составить впечатление не просто о твоем предыдущем карьерном пути, но и о том, что ты из себя представляешь как личность. С другой стороны, интерес к этой самой личности у человека, который читает твое резюме, отнюдь не праздный. Ему важно понять, соответствуешь ли ты духу компании, сможешь ли разделить ее ценности и справишься ли со своими будущими обязанностями.

Постарайся отразить не то, что ты делал, а то, что ты сделал – говори о результате, о своих достижениях. Причем фокусироваться нужно на конкретике, в идеале – на цифрах. Например, напиши не просто «Был SMM-менеджером нескольких групп Вконтакте», а приведи доказательства своего профессионализма: «За неделю увеличил количество подписчиков на 10 тысяч человек». Если ты работал в консалтинге, вспомни все и пиши: «Успешно реализовал 9 консалтинговых проектов: 5 для FMCG-компаний, 3 для нефтегазовых предприятий и 1 pro bono для городской администрации».

Что делать тем, чья работа была рутинной и по определению не могла принести ощутимых результатов? Сосредоточьтесь на том, что вы исполняли все идеально. Например: «За время моей работы помощником бухгалтера фирма успешно прошла 2 аудиторских проверки».
Читать дальше →

На что стоит променять Cortex-M3?

Reading time31 min
Views57K
ARM Cortex-M3 — это, пожалуй, самое популярное на сегодняшний день 32-разрядное процессорное ядро для встраиваемых систем. Микроконтроллеры на его базе выпускают десятки производителей. Причина этому — универсальная, хорошо сбалансированная архитектура, а следствие — непрерывно растущая база готовых программных и аппаратных решений.

Ругать Cortex-M3, в общем-то, не за что, но сегодня я предлагаю подробно рассмотреть Cortex-M4F — расширенную версию всеми любимого процессорного ядра. Перенести проект с микроконтроллера на базе Cortex-M3 на кристалл на базе Cortex-M4F довольно просто, а для ряда задач такой переход стоит затраченных усилий.

Под катом краткий обзор современных Cortex'ов, обстоятельное описание блоков и команд, отличающих Cortex-M4F от Cortex-M3, а также сравнение процессорных ядер на реальной задаче — будем измерять частоту мерцания лампы на микроконтроллерах с разными ядрами.

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

Надёжен ли твой компьютер?

Reading time9 min
Views25K
Представляю вашему вниманию перевод статьи Джеффа Атвуда о тестировании новых компьютеров. Я не видел ни одной статьи подобного качества на эту тему; в статье приведена вся необходимая информация и ничего лишнего, а так же хорошо структурирован материал. Надеюсь, и вам она придётся по нраву.

Джефф — основатель StackOverflow. Ныне он работает над проектом Discourse.

Оригинальная статья: Is Your Computer Stable?

Дисклеймер: Хоть статья и называется "Надёжен ли твой компьютер?", речь идет не о надёжности как термине(англ. reliability), а, скорее, о стабильности (англ. stability). Статья о том, как автор тестирует новые компьютеры на стабильность и прочность.


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

Например, вот что может понадобится для сборки Scooter Computer:

  1. Нанести немного термопасты на верхнюю часть корпуса.
  2. Поместить в корпус материнскую плату.
  3. Прикрутить материнскую плату к корпусу.
  4. Вставить плату SSD.
  5. Вставить плату RAM.
  6. Подключить внешнее питание.
  7. Загрузиться.

Вот и все.



Это до смешного просто. Мы с моим шестилетним сыном собирали конструкторы Лего, которые были намного сложнее. Сборка традиционных ПК отличается всего парой дополнительных шагов: вставить процессор, радиатор, подключить кабели. И, наконец, сборка сервера добавляет еще пару незначительных действий, возможно, с ограничениями на размер сборки. Мини-компьютер, обычный ПК или сервер — если вы смогли собрать один из них — считайте вы собрали их все.

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

Радиоприёмник из DVB стика за $8 — изучаем SDR с GNURadio

Reading time11 min
Views60K
Каждый день мы пользуемся множеством радио устройств. Однако редко понимаем, как они работают. Эпоха радиолюбителей фактически прошла, оставив в прошлом любителей спаять приёмник ДВ или СВ своими руками. Да и в методах кодирования техника ушла далеко вперёд. Мы часто слышим рассуждения о взломе умных домов на радио протоколах, о ненадёжности радио связи и т.д. Но многие ли из вас пробовали, например, подслушать Z-Wave сеть умного дома соседа и тем более поуправлять ей? Насколько велика эта угроза для вас?

К счастью в наши дни стали доступны очень удобные средства для работы с радио, а именно SDR.

SDR (Software Defined Radio) позволяет программно перестраивать приёмник и передатчик для работы на различных частотах от 20 до 2000 МГц, после чего произвести обработку сигнала на компьютере с помощью цифровых методов. Это существенно отличает SDR от аналоговых схем радиопрёмников и передатчиков, позволяя легко менять алгоритм обработки полученного сигнала.




Существует множество разных программ для обработки радио сигналов. Я изучил наиболее популярную из них GNURadio. Этот пакет позволяет строить процесс обработки из различных блоков, стыкуя их друг с другом в формате потоковой обработки (pipe). Каждый следующий блок принимает данный от одного или нескольких предыдущих, а вывод передаётся другим блокам.

Под катом я расскажу об основах SDR и GNURadio и о том, как за 8 баксов сделать приёмник AM/FM, китайской управляемой розетки, телеметрии со спутника и всего, что вздумается.

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

Щелкаем реле правильно: коммутация мощных нагрузок

Reading time3 min
Views252K
Привет, Geektimes!

Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.

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

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



Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:

  • Гальваническая развязка входа и нагрузки
  • Коммутация индуктивных нагрузок без выбросов тока и напряжения
  • Отсутствие значимого тепловыделения даже на максимальной мощности


Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.

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

Векторное управление для асинхронного электродвигателя «на пальцах»

Reading time9 min
Views138K

В предыдущей статье «Векторное управление электродвигателем «на пальцах» рассматривалась векторная система управления для синхронных электродвигателей. Статья получилась большой, поэтому вопрос про асинхронные электродвигатели (induction motors) был вынесен в отдельную публикацию. Данная статья является продолжением предыдущей и опирается на приведенные там объяснения принципов работы электродвигателей. Она расскажет об особенностях работы асинхронного двигателя применительно к векторному управлению, а также покажет отличия в структуре векторной системы управления между синхронной и асинхронной машиной.
Как работает асинхронный электродвигатель? Наиболее популярное объяснение говорит что-то типа «статор создает вращающееся магнитное поле, которое наводит ЭДС в роторе, из-за чего там начинают течь токи, в результате ротор увлекается полем статора и начинает вращаться». Лично я от такого объяснения всю физику процесса понимать не начинаю, поэтому давайте объясню по-другому, «на пальцах».
Читать дальше →

Процесс эволюции видеоадаптеров из 80-х в 2000-е

Reading time12 min
Views38K
Такой важный и незаменимый компонент системы, как видеокарта, прошел долгий путь развития. На протяжении десятилетий ускорители графики совершенствовались и менялись в соответствии с прогрессирующими технологиями.

Видеоадаптеры MDA и CGA


Обе модели были выпущены компанией IBM в 1981 году. MDA изначально ориентировался на деловую сферу и создавался под работу с текстом. Работая с нестандартными вертикальными и горизонтальными частотами, этот адаптер обеспечивал четкость изображения символов. В то же время CGA поддерживал только стандартные частоты и уступал в качестве выводимого на экран текста. Кстати в IBM PC можно было использовать одновременно оба адаптера.


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

Светодиодные лампы — стоит ли игра свеч?

Reading time5 min
Views115K
image

Читая публикации alexeynadezhin задумался — а не перейти ли мне дома на светодиодное освещение? Как всегда, к вопросу решил подойти скрупулёзно, досконально изучить все тонкости. В итоге пришёл к интересным выводам.
Читать дальше →

АГАТ — плохая копия Apple?

Reading time10 min
Views35K


«Впервые я увидел Агат в августе 1983 года. И у меня была возможность пользоваться им в течение недели. Понаблюдав за работой компьютера после загрузки, я окрестил его «yablochka»», — Лео Борс, глазной хирург и программист, пишет о компьютере Агат в журнале BYTE (ноябрь 1984).
Читать дальше →

Измерение веса руды по току статора. Практика. Часть 2. Программная реализация на МК

Reading time8 min
Views6.1K
Последняя часть из цикла «Измерение веса полезных ископаемых». В данной статье будет показана программная реализация на МК.

Вспомним основы данного метода измерение веса полезных ископаемых по току статора шахтной подъемной установки (ШПУ), оборудованной высоковольтным асинхронным двигателем с фазным ротором.


Вместо предисловия


Так как реальное устройство не проектировалось и не изготавливалось, то для симулирования данного процесса использовался программный комплекс Proteus. Данный симулятор поддерживает множество различных МК и из списка им поддерживаемых выбиралась аппаратная платформа для реализации алгоритма и проверки всего метода.
Читать дальше →

STM32F103C8T6 — первые шаги. Продолжаем делать осциллограф

Reading time5 min
Views71K
Продолжение статьи. На этот раз попробуем подключить USB без падения частоты измерений и соберём одноканальную аналоговую часть.

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

Information

Rating
5,146-th
Date of birth
Registered
Activity