Pull to refresh
22
0
Анатолий @longtolik

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

Send message

Разглядывая JTAG: идентификация

Reading time19 min
Views19K

Каждый электронщик, работающий (или отдыхающий) с цифровыми микросхемами рано или поздно обязательно сталкивается с протоколом JTAG. Значительное количество материалов о данном протоколе содержит три раздела:
1) Обширный экскурс в историю и рассказ о том, как стенд с летающими щупами и рентгеновская установка легко могут быть заменены отладчиком на 2-3 порядка дешевле их.
2) Достаточно сжатое описание протокола JTAG (с картинкой его конечного автомата).
3) Рассказ о том, что фирменный отладчик, а также программное обеспечение компании <COMPANY NAME> позволят почти без усилий протестировать почти любое устройство почти любой сложности и конфигурации.

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

Идентифицировать микросхему
Total votes 52: ↑52 and ↓0+52
Comments33

Отдаю NFT за 880 миллионов долларов

Reading time12 min
Views45K
«Код — это единственный закон, которому подчиняются цифры»

Если вы читаете этот текст, но ни разу не слышали про NFT, то, наверное, вы моя мама (мама, привет). Про этот феномен уже должен был кто-то написать человеческим языком без пустых восторгов и пересказывания мифов, но, похоже, эту траншею придётся копать мне. Странная штука: чем больше народу обсуждает NFT, тем ниже процент понимающих хоть что-то. Изначально этот материал задумывался как короткий обзор в духе «А король-то голый!», но по мере изучения проблемы, становилось всё яснее, почему так сложно сформировать собственное мнение относительно происходящего безумия.

Неприятность ситуации заключается в том, что широко тиражируемое объяснение смысла NFT является наглой ложью, в противовес которой пока не сформировалось имеющее вес экспертное мнение. Человек с ра́звитым критическим мышлением чувствует в происходящем нечто, мягко говоря, подозрительное, но объективное суждение требует подробного анализа устройства этой системы, который могут осуществить «немногие лишь те», кто обладает хорошими знаниями в разных областях. Так что, как говорится, давайте раскидаем всё по фактам. Информации по теме получилось много, в этот раз будут основные моменты, а в последующих статьях копнём глубже и разберём практические аспекты.
Читать дальше →
Total votes 80: ↑65 and ↓15+77
Comments52

Машинное стереозрение для новичков: две камеры Raspberry Pi и Python

Reading time8 min
Views21K

Стажируясь в правительственном технологическом агентстве Сингапура, автор материала работал над экспериментом по созданию альтернативы камере Intel Relsence. Оказалось, что учебных материалов на тему машинного зрения мало, поэтому он решил помочь новичкам. К старту флагманского курса по Data Science приглашаем под кат за подробностями.

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments5

Собираем компилятор для ПЛИС Lattice ECP5 в лице Yosys и NextPNR для работы в ОС Windows

Reading time9 min
Views2.9K

Наш цикл про ПЛИС Lattice ECP5 растянулся уже на шесть статей. Мы уже научились не только создавать простые проекты для них, но набили руку в разработке сложных систем на базе кроссплатформенной открытой среды LiteX. В целом, я уже набрал материалов, чтобы выдать инструкцию, как подключится к шине Wishbone в роли активного устройства (Master), но перед публикацией хочется провести ряд проверок, чтобы не наболтать не того.

С другой стороны, ещё в первой статье цикла я обещал, как будет формализована методика сборки синтезатора Yosys и разводчика NextPNR под Windows, рассказать, как это сделать, так как на тот момент у меня процесс сборки прошёл в режиме «неделю промучился, как-то сделал, повторить не смогу». Мой коллега систематизировал все те наброски, и теперь я могу поделиться итогами с общественностью. Так что, кто дружит с Linux, сегодня вряд ли узнает что-то интересное, а вот любители Windows – получат сведения, как начать работать с ПЛИС Lattice в этой ОС. Приступаем.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments10

30 лучших Python-проектов на GitHub на начало 2022 года

Reading time9 min
Views59K

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

UPD: добавили ссылки.

Читать далее
Total votes 48: ↑42 and ↓6+38
Comments15

Жизненно важные гены эволюционируют на задворках генома

Reading time6 min
Views5.9K

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

Читать далее
Total votes 11: ↑9 and ↓2+17
Comments13

Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры

Reading time8 min
Views6.1K

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments6

Android: как подружить ваше приложение с Google Ассистентом?

Reading time14 min
Views8.4K

Многие из вас прекрасно знают, что такое Google Ассистент. Это голосовой помощник, подобный Siri, Алисе, Алексе и другим. Когда пользователь что-то говорит, Google Ассистент понимает это с помощью natural language understanding (NLU). NLU преобразует человеческую речь в специальную структуру данных, которую уже можно обработать.

У разработчиков Android есть возможность интегрировать NLU в свои приложения через специальный api, который называется App Actions. Точнее, существует два вида интеграции: мы можем получить и использовать Deep Link из речи пользователя или получить данные из приложения, не открывая его, и показать их прямо в Google Ассистенте через Slice.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments7

Лазерный диод: зажечь и не сжечь

Reading time11 min
Views46K


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

Читать далее
Total votes 92: ↑92 and ↓0+92
Comments48

Делаем устройство для мониторинга концентрации CO₂

Reading time8 min
Views25K

Нередко мы сильно увлекаемся написанием кода настолько, что забываем подышать свежим воздухом, особенно когда нельзя держать окно постоянно открытым (ну, бывают причины). В результате этого в помещении повышается концентрация СО₂ и впоследствии начинаются неприятные побочные эффекты в виде сонливости, заторможенности и головной боли. Для решения этой проблемы существуют датчики СО₂, которые при достижении определённой концентрации скажут, что пора открыть окно. Готовые варианты конечно хорошо, но это слишком просто — сделаем своё хост-устройство для измерения и разомнём извилины.
Читать дальше →
Total votes 53: ↑52 and ↓1+75
Comments71

Передача телевизионного сигнала через HackRF

Reading time4 min
Views15K
Всем привет. На этот раз я хочу рассказать о том как можно превратить старый телевизор в монитор компьютера. Для этого требуется лишь сам телевизор, HackRF и немного софта.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments6

Применение биполярных транзисторов с микроконтроллерами

Level of difficultyMedium
Reading time10 min
Views48K

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

Читать далее
Total votes 100: ↑100 and ↓0+100
Comments77

Ваш мозг — генетический DIY в реальном времени

Reading time8 min
Views8.1K

Что это значит? Автор книги The Self-Assembling Brain, профессор Питер Хизингер, рассказывает, чему нейросетям стоило бы поучиться у биологического мозга, насколько назрел новый подход к искусственному интеллекту и как именно мозг собирает себя сам. Подробностями делимся под катом, пока у нас начинается флагманский курс Data Science.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments11

Main Loop (Главный цикл) в Android Часть 1. Пишем свой цикл

Reading time13 min
Views25K

Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop.

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

Это первая часть цикла разбора главного цикла в Android. Вообще, лучший способ понять, как что-то работает - сделать это самому. Поэтому, прежде чем лезть в дебри Android SDK давайте попробуем написать свой цикл, правда без блэкджека и прочего. Наоборот, это будет минимально работоспособный цикл, но зато хорошо демонстрирующий основную логику, без лишней мишуры.

Читать далее
Total votes 16: ↑15 and ↓1+17
Comments8

Теория тестирования ПО просто и понятно

Reading time13 min
Views305K

Какие базовые знания нужны для понимания, что такое тестирование? Вот что будет рассматриваться в статье. Создавалась в помощь начинающим для подготовки к собеседованию

Читать далее
Total votes 13: ↑12 and ↓1+13
Comments10

Архитектура Вселенной, часть 2: Относительность

Reading time32 min
Views25K

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

Оба этих понятия настолько самоочевидны, что когда мы пытаемся дать им определение, то сталкиваемся с огромными трудностями и можем выдавить из себя только что-то вроде: "ну, пространство - это то, в чём все находится, а время - ну, оно течёт". Мы можем попробовать описать время, как процесс, но мы тут же натолкнемся на объяснительную рекурсию, ведь процесс - это то, что проистекает во времени. Но может быть все-таки существует лучшее определение времени?

Давайте посмотрим на то, что пишет о времени Википедия:

Время - это форма протекания физических и психических процессов, условие возможности изменения

Звучит даже хуже, чем "оно течёт". Если моя маленькая дочка спросит меня, что такое время, я точно не стану отвечать ей такими словами. Но даже такое запутанное объяснение оказывается лучше, чем определение пространства из Википедии:

Пространство -  трёхмерное пространство нашего повседневного мира.
Трёхмерное пространство - геометрическая модель материального мира.

Получается какая-то рекурсия: пространство - это геометрическая модель мира в мире. Видимо, проблемы с формулировками есть не только у меня. Почему же так трудно дать определение этим понятиям?

Читать далее
Total votes 31: ↑25 and ↓6+26
Comments137

Процессор Snitch на базе RISC-V может похвастаться шестикратным приростом производительности

Reading time5 min
Views7.6K

Два новых ISA-расширения RISC-V позволяют процессору Snitch работать до 6,45 раз быстрее и эффективнее, чем сопоставимые процессоры.

Команда ученых из ETH Zurich представила новую версию процессора RISC-V. Она получила название Snitch. По словам разработчиков, новый ЦПУ обладает впечатляющими показателями скорости и способен обеспечить 6-кратный выигрыш в производительности и почти 4-кратный — в энергоэффективности для многоядерных рабочих нагрузок. Но не спешите с выводами: все не так однозначно, как кажется на первый взгляд. Под катом — разбор основных особенностей нового процессора, реальные «цифры» его производительности и информация о разработчиках.

Читать далее
Total votes 18: ↑16 and ↓2+20
Comments20

Подключение энкодера к Ардуино и полнофункциональный код обработки для него

Reading time5 min
Views53K

Энкодер - это устройство преобразования механического перемещения или угловых изменений положения в цифровой сигнал. В статье рассматривается самый популярный в DIY сообществе инкрементальный энкодер EC11 с кнопкой. При его вращении на выходах A и B формируются TTL сигналы в виде импульсов сдвинутые между собой по фазе на 90 градусов. Таким образом с его помощью, можно определить направление и скорость вращения, а так же рассчитать угол поворота. В отличие от потенциометров, KY-040 он надежный и долговечный.

Читать далее
Total votes 34: ↑24 and ↓10+19
Comments102

Компиляция Python

Reading time7 min
Views91K

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

Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».

Во-вторых, возникает вопрос окружения - хочется быть уверенным, что заказчик справится с установкой правильной версии Python и всех вспомогательных библиотек, но это не всегда простая задача. Было бы удобно упаковать приложение в автономный исполняемый файл.

И, наконец, хочется,  чтобы конечное приложение работало быстрее, чем в среде разработки.

И вот тут настало время скомпилировать Python-код.

Меня зовут Руслан, я старший разработчик компании «Цифровое проектирование». Сегодня я расскажу, как выбрать тот самый компилятор из множества доступных.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments21

Information

Rating
6,005-th
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity