Как стать автором
Поиск
Написать публикацию
Обновить
1
@Mordekaizer07read⁠-⁠only

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

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

Программист embedded лезет в FPGA

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

Любой программист микроконтроллеров, Imho, рано или поздно (сейчас, скорее, рано) от одного из коллег или из статьи в интернете слышит загадочное ПЛИС или FPGA, CPLD, ПВМ — что-то такое. Если честно, то я услышал вот это загадочное, занырнул чуть-чуть, и теперь думаю, что мой опыт пригодится кому-то ещё. Если совсем честно, то статья ещё планируется как небольшая (всего в трёх частях) заметка для себя. Я когда погружался, делал пометки в текстовом файле, здесь получится их хорошо отредактированная версия.

Очень много вещей в подобных этому туториалах, которые я читал, пропускаются как сами собой разумеющиеся. Подробные инструкции куда и как тыкать есть в документации к плате разработки. Но там не хватает ответов на вопросы зачем и почему. Здесь я хочу скомбинировать 2 подхода.

Лезем в FPGA

Паттерны проектирования в Python, о которых следует забыть

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

Попробуйте поискать в Интернете «Паттерны проектирования на Python» — и получите целую простыню туториалов, демонстрирующих, как в точности воспроизвести на Python паттерны проектирования из книги «Банды четырёх». Там же будут диаграммы классов, иерархии фабрик и столько шаблонного кода, что выхлопа хватит, чтобы отопить маленькую деревню. Так вам внушают, будто вы пишете «серьёзный» код. Умно. Профессионал ьно. Готово для корпоративного использования.

Но вот в чём проблема: большинство из этих паттернов решают проблемы, которые в Python просто отсутствуют. Паттерны разрабатывались для таких языков как Java и C++, где для выполнения самых базовых вещей требуется настоящая эквилибристика — нет ни функций первого класса, ни динамической типизации, ни модулей в качестве пространств имён. Разумеется, вам потребуется Фабрика или Синглтон, если без них в вашем языке просто не с чем работать.

Слепо копировать эти паттерны в Python — не признак большого ума. Из-за них ваш код сложнее читать, тестировать, а также объяснять очередному бедняге, которому этот код придётся поддерживать. Возможно, через три месяца этим беднягой станете вы..

Читать далее

SOSAL: Современный социальный подход к программированию

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

В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).

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

Читать далее

Как установить GOWIN EDA для запуска примеров Школы Синтеза

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

Одной из проблем первых сезонов Школы цифрового синтеза является малое число поддерживаемых плат, на которых можно легко и быстро повторить упражнение.

Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.

В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.

Читать далее

Разработка DIY компьютера на базе FPGA

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

Желание поиграть в проектирование собственного процессора обычно приводит к покупке платы с FPGA. Но мне захотелось сделать шаг дальше и начать не с Verilog-а, а с паяльника.

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

Зачем это нужно? Это хобби. Практической ценности не имеет. Просто я так развлекаюсь. А сейчас у меня, к моему собственному удивлению, все задуманное получилось, и я хочу показать и похвастаться.

Читать далее

Что делать, когда выпускник топ-10 мирового вуза не может спроектировать блок сложения A+B

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

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

Когда я вижу у недавнего выпускника в резюме какой-то из протоколов в котором используется valid/ready, например AXI или AHB, я прошу его спроектировать блок, у которого на входе два числа A и B, а на выходе их сумма. Разумеется не просто написать SUM=A+B, а еще и поставить valid/ready сигналы на каждый из A, B, SUM, чтобы A и B могли приходить в разное время, а также чтобы блок ждал, если SUM не может быть передана другому блоку сразу.

Некоторые не справляются. Грустно смотреть на человека, который потратил 6 лет своей жизни (4 года в бакалавриате и 2 года в магистратуре) и океан денег на образование - и не может сложить два числа и бьется как угорь на сковородке. То блок не работает когда числа приходят в разное время, то создатель забывает снять valid, и блок на 2+2 выдает не 4, а 4-4-4-4-4-4-4... То числа складываются не попарно, а просто записываются в регистры и на выход идет их текущая сумма, хотя количество аргументов A и B не совпадает. То не отрабатывается backpressure и результаты теряются, то (после того как кандидат написал страницу кода на верилоге) блок работает на половинной производительности, то есть не может принимать поток чисел подряд, а ожидает между ними пропуски (gaps). Короче ведет себя как ChatGPT.

Как же прокачаться чтобы такого не было?

Инженерия — не наука

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

 Поводом настоящей статьи послужила дискуссия в комментариях к статье «Инженерная фантастика» о том, является ли инженерия частью науки или это самостоятельный вид деятельности. Мы в киберклубе попытались выработать собственное мнение по данному вопросу. И пришли к странному заключению — инженерия ни наука, ни технология, ни система и ни фантастика. Инженерия — это инженерия!

Читать далее

Этот увлекательный мир радиопередатчиков на транзисторах

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

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

Сегодня можно купить готовые и современные передающие и приёмные устройства как для радиосвязи, так и для радиоуправления. Довольно популярны относительно недорогие программно-определяемые радиосистемы Software-defined radio (SDR). Модули связи LoRa позволяют устанавливать связь на значительном расстоянии даже при небольших уровнях мощности. Однако знакомство с базовыми принципами создания устройств радиосвязи на транзисторах, на мой взгляд, будет полезно начинающим радиолюбителям. 

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

Надеюсь, что эксперименты, описанные в статье, помогут вам войти в увлекательный мир радиосвязи!

Читать далее

Опасное развлечение: простой для повторения генератор высокого напряжения

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

Добрый день, уважаемые хабровчане.
Этот пост будет немного необычным.
В нём я расскажу, как сделать простой и достаточно мощный генератор высокого напряжения (280 000 вольт). За основу я взял схему Генератора Маркса. Особенность моей схемы в том, что я пересчитал её под доступные и недорогие детали. К тому же сама схема проста для повторения (у меня на её сборку ушло 15 минут), не требует настройки и запускается с первого раза. На мой взгляд намного проще чем трансформатор Теслы или умножитель напряжения Кокрофта-Уолтона.

Принцип работы


Сразу после включения начинают заряжаться конденсаторы. В моём случае до 35 киловольт. Как только напряжение достигнет порога пробоя одного из разрядников, конденсаторы через разрядник соединятся последовательно, что приведёт к удвоению напряжения на конденсаторах, подсоединённых к этому разряднику. Из-за этого практически мгновенно срабатывают остальные разрядники, и напряжение на конденсаторах складывается. Я использовал 12 ступеней, то есть напряжение должно умножиться на 12 (12 х 35 = 420). 420 киловольт — это почти полуметровые разряды. Но на практике, с учетом всех потерь, получились разряды длиной 28 см. Потери были вследствие коронных разрядов.

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

Культура ремонта: как энтузиасты дают вторую жизнь электронике

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

Когда вы в последний раз ремонтировали электронику дома? Приятно осознавать, что ты можешь вернуть девайс к жизни. Но есть нюанс: в погоне за компактностью, сложностью и специализированностью электроника становится все менее и менее ремонтопригодной. Производители припаивают SSD к материнским платам ноутбуков, делают батареи — одни из самых больших точек отказа — незаменяемыми пользователем и т. д. Ремонтировать что-либо стало дорого: два-три обращения в мастерскую с ремонтом ноутбука могут вылиться в стоимость покупки нового.

Меня вдохновляют статьи на Хабре о том, как энтузиасты находят на барахолках старые гаджеты и ремонтируют их или дают новую жизнь поломанным устройствам. Они делают это ради собственного удовольствия, в первую очередь, но при этом дают хороший пример всем остальным. Люди по всему миру даже объединяются в сообщества, открывают мастерские, делятся знаниями и противостоят системе, в которой поломка — это повод купить новое, а не попытаться восстановить старое.
Читать дальше →

94 миллиарда рублей убытка? Никаких проблем

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

Почему инвесторы аплодируют убыточным компаниям, а прибыль вызывает раздражение? Разбираемся, как работает парадокс «прибыльных убытков» на примерах ВКонтакте, Ozon и Amazon. Что отличает стратегические инвестиции от банального сжигания денег, можно ли перенести эту модель в офлайн-бизнес — и почему не стоит повторять путь WeWork.

Читать далее

Проект Смотритель — удаленно управляемый робот на ESP32-CAM

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

Разрабатываем робота с нуля - от ИИ-дизайна до полного проектирования и реализации всех компонентов устройства.

Зачем? Ради фана, конечно - этот проект практически квинтессенция моих увлечений - электроника, 3d-печать, программирование микроконтроллеров, ИИ и в целом все, что можно включить в сферу DIY.

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

Поехали

Как легко получить отрицательное напряжение для питания ОУ?

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

Простая схема получения отрицательного напряжения для вспомогательного питания на одном P канальном транзисторе и индуктивности.

Читать далее

Пополнение среди ультрабюджетных девбордов: FPGA — «отладка» за 201 р

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

Пополнение среди ультрабюджетных девбордов: FPGA - "отладка" за 201 р.

Самая дешёвая "оценочная плата" с ПЛИС Xilinx Spartan-6 на AliExpress обойдётся в ровно 3000р. На Авито и майнерских "Купи-Продайках" - в 10 раз дешевле. С более "жирным камнем". Никакого подвоха, всё честно.

Читать далее

Диме про Политех

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

Все нижеизложенное — пересказ личного опыта. Да и вообще, эт просто мои воспоминания о том, как я учился в университете. Поэтому я привожу какие‑то имена, которые читателю могут быть ни к чему. Они скорее для меня самого.

Мой троюродный брат Дима спросил меня — каково мне было учиться в Политехе, чтоб понимать — стоит ли ему туда поступать. И я решил, что это отличное время, чтобы полноценно вспомнить — а каково мне было там учиться? Уложил я сюда уж точно не все воспоминания, а наверное только самые яркие. Иногда приплетал еще и свою магистратуру СПбГУ, но в первую очередь для сравнений, а не чтобы запутать.

Читать далее

Надоели вредные привычки — читай этот текст

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

Привет, Хабр! Я Лера, технический писатель в Авито. В этой статье я разбираю тезисы Джеймса Клира в его работе «Атомные привычки». Материал будет полезен тем, кто хочет подробно разобраться в природе привычек и понять, как незначительные изменения могут сильно улучшить траекторию ваших результатов и уровень жизни в целом.

Читать далее

Многопоточность. Снизу вверх. Потоки в языке C#

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

Привет, Хабр! Это Дмитрий Бахтенков. Добро пожаловать в третью часть цикла статей «Многопоточность. Снизу вверх»! Мы уже разобрали процессор и операционную систему, а сегодня поговорим про использование потоков в .NET с помощью языка программирования C#.

Эта статья — обзор основных возможностей взаимодействия с потоками в .NET.

Читать далее

Создание видеокарты Бена Итера на FPGA чипе

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

Здравствуйте. Меня зовут Дмитрий. Данная статья является продолжением статьи Сборка компьютера sap-1 (компьютер Бена Итера) в игре Turing Complete (если вы её не читали то очень советую). Сегодня мы продолжим исследовать блог Бена Итера, но вместо компьютерной игры мы соберем простейшую видеокарту на FPGA чипе.

Итак почему я выбрал FPGA? Конечно в игре Turing Complete можно собрать видеокарту, но её нельзя подключить к монитору что-бы проверить работу, поэтому мне пришлось перейти на что-то более осязаемое. Поэтому сегодня мы изучим язык Verilog предназначенный для описания микросхем.

Читать далее

План моего курса по основам аналоговой электроники в школе

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

Эти занятия на правах предмета по выбору я веду в одной из местных школ с 2006 года. Их цель — дать представление юным знатокам — любителям ардуин — некоторое представление о том зачем светодиоду резистор, не говоря уже о пользе транзисторов‑конденсаторов и прочих чудес:‑) Занимаемся в основном на макетных платах, впрочем об организационной стороне дела лучше написать потом отдельно.

Такой список занятий с картинками (!) может быть полезен как тем кто захочет провернуть что‑то подобное в собственной школе (но затрудняется с чего начать) — так и тем кто сам захочет немного освежить понимание всех этих «аналоговых фокусов». Прилагаю и ссылочки на накопившиеся «электронные конспекты» по соответствующим темам. В принципе они годятся и для самообразования:‑)

Тут штук 10 тем и соответствующих схем...

Праздник к нам приходит: ГКРЧ расширила ISM-диапазон 868 МГц в два раза

Время на прочтение4 мин
Количество просмотров34K
Короткая, но важная для причастных к IoT новость: ГКРЧ официально расширила безлицензионный диапазон 868 МГц, в котором традиционно живут такие сети, как LoRaWAN, Стриж/Вавиот, Sigfox и другие.

Официально это называется «неспециализированные устройства малого радиуса общего применения», а закреплены изменения в Приложении 12 к Решению ГКРЧ № 18-46-03-1 от 11 сентября 2018 года.

Было:

  • 864,0 — 865,0 МГц — мощность до 25 мВт, рабочий цикл до 0,1 % или LBT*, запрещено использование на территории аэропортов
  • 868,7 — 869,2 МГц — мощность до 25 мВт, рабочий цикл без ограничений, использование без ограничений

Стало (жирным выделены изменения):

  • 864,0 — 865,0 МГц — мощность до 25 мВт, рабочий цикл до 0,1 % или LBT*, запрещено использование на территории аэропортов
  • 866,0 — 868,0 МГц — мощность до 25 мВт, рабочий цикл до 1 % или LBT*, запрещено использование на территории аэропортов, спектральная плотность мощности до 1000 мВт/МГц
  • 868,7 — 869,2 МГц — мощность до 100 мВт, рабочий цикл до 10 % или LBT*, использование без ограничений

* Listen Before Talk. Что это означает, правда, никто не знает, так как в российских НПА техническая суть LBT нигде не расшифровывается. Да и, собственно, никто его и не использует.

Что это означает конкретно для сетей LoRaWAN?
Читать дальше →
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Омская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем
Стажёр
Python
C++