Pull to refresh
153
45.7
Send message

Разглядывая JTAG: самый быстрый программный JTAG на Arduino

Level of difficultyMedium
Reading time26 min
Views7.3K

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

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

Субъективно, практическое применение программного JTAG мне по‑прежнему видится не вполне оправданным.
Но, во‑первых, это хороший повод рассмотреть предельные возможности микроконтроллеров.
А во‑вторых, есть формальная причина сказать, что в данной статье предлагается Решение Прикладной Задачи :)

Итак, сегодня мы поговорим про прерывания, поллинг и прочее. А протокол JTAG станет фоном для повествования.

jmp start
Total votes 34: ↑34 and ↓0+48
Comments23

Нужны ли людям микросхемы?

Level of difficultyEasy
Reading time38 min
Views7.9K

Представим, что мы попали в 1972 год. В небе уже летают сверхзвуковые пассажирские Ту-144 и Конкорд. Полиомиелит побеждён. Оспа почти побеждена. Норман Борлоуг два года, как получил Нобелевскую премию мира за «Зелёную революцию» — выведение высокоурожайных сортов пшеницы и их внедрение в сельское хозяйство Мексики, Индии и Пакистана. Афганские студентки ходят в Кабульский университет в мини-юбках и сапогах до колена. СССР и США только что подписали соглашение о совместной пилотируемой программе Союз-Апполон. Сам Апполон совершил свой заключительный пилотируемый полёт к Луне с высадкой на поверхность. А Эдвард Стоун назначен главой космической программы Вояджер. Электронная композиция Popcorn Гершона Кингсли стала надоедать, но Жан‑Мишель Жарр скоро выпустит альбом Oxygene.

При взгляде на всё это торжество прогресса из не вполне постковидного 2024-го можно проникнуться определёнными нотками пессимизма. Которые, однако, несколько приглушаются, если сказать себе: «Но зато информационные технологии и их фундамент — микроэлектроника — сделали за последние 50 лет огромный рывок вперёд». В данной статье будет сделана попытка разобраться в причинах, обусловивших данный рывок, а также их актуальности на текущий момент.

Включить Xerox Alto
Total votes 25: ↑24 and ↓1+29
Comments96

Об особенностях электротехнических (и не только) сообществ: опасная сделка 3

Level of difficultyEasy
Reading time14 min
Views2.7K

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

Провести судебную экспертизу
Total votes 19: ↑19 and ↓0+19
Comments9

Об особенностях электротехнических (и не только) сообществ: опасная сделка 2

Level of difficultyEasy
Reading time12 min
Views1.9K

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

Подать исковое заявление
Total votes 12: ↑12 and ↓0+12
Comments1

Об особенностях электротехнических (и не только) сообществ: опасная сделка 1

Level of difficultyEasy
Reading time9 min
Views2.9K

Представим, что вам требуется некое нестандартное электронное устройство. Убедившись, что его аналоги в розничной продаже не обладают подходящими вам характеристиками, вы приходите к заключению, что придётся заказать контрактную разработку данного устройства.
Вы изучаете различные электротехнические сообщества и в одном из них находите специалиста. Лучшего специалиста в данном сообществе. Ну или, как минимум, самого известного.
Допустим, его зовут Игнат (имя вымышлено). Первоначальная беседа с Игнатом о вашей потребности проходит весьма многообещающе: задача ясна, цена и сроки всех устраивают. Казалось бы, может ли что‑то пойти не так?

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

Забрать посылку с почты
Total votes 10: ↑8 and ↓2+12
Comments33

Об особенностях электротехнических (и не только) сообществ: вредные советы

Reading time23 min
Views9.7K

Несмотря на то, что предпосылки к отставанию закона Мура от экспоненты обсуждаются ещё с 90‑х, сам закон, с рядом оговорок, справедлив и в наши дни. Это приводит к тому, что если человек поступил в университет в 2010 году, то первые микроконтроллеры STM32F1, выпущенные в середине 2007 года, имели заметные шансы не попасть в его учебные курсы. Как, впрочем, и памяти DDR3 (стандарт также вышел в середине 2007‑го). В момент же получения человеком диплома в 2015‑ом, стандарту DDR4 исполнилось бы три года, STMicroelectronics только что выпустила бы серию STM32F7 со встроенным графическим модулем, а сами STM32 уже два года как имели возможность программироваться при помощи MATLAB и Simulink, минуя код на Си (если верить рекламе).

Подобное положение вынуждает динамично актуализировать знания.

Академические курсы не всегда успевают за прогрессом. А их первоисточник — техническая документация — бывает крайне обширна. Например, базовая документация на микроконтроллеры STM32F103xB насчитывает 1252 страницы. Помимо неё имеются ещё 54 документа типа application note и десятка полтора документов других типов. Поэтому достаточно востребованным источником знаний оказываются профильные сообщества.

Для эффективного получения знаний в подобных сообществах проблема должна быть сформулирована максимально качественно. Ещё в 2001 году появилось (и было переведено на множество языков) фундаментальное руководство «Как правильно задавать вопросы на технических форумах». Представляется, что тезисы данного руководства во многом универсальны и актуальны как для сообществ программистов, так и для сообществ электронщиков, туристов, кулинаров или художников. Однако столь же универсален феномен, когда ответ на сформулированный в соответствии с духом этого руководства вопрос, оказывается не ответом по существу, а чем‑то «идентичным натуральному ответу по существу». Об этом феномене и пойдёт речь в настоящей статье.

Заглянуть сразу в ответы
Total votes 37: ↑32 and ↓5+39
Comments60

Неизвестный UART: микросхемы

Level of difficultyMedium
Reading time23 min
Views18K

Как было сказано в предыдущей статье, UART не является формализованным стандартом и, следовательно, при его использовании имеет смысл опираться на практику реализаций данного протокола в различных микросхемах. В данной статье будут рассмотрены микросхемы мостов USB‑UART различных производителей как с точки зрения особенностей поддержки протокола, так и с точки зрения временных/электрических характеристик, а также иных, в том числе не‑электронных соображений.

Запаять SSOP-20
Total votes 58: ↑57 and ↓1+74
Comments57

Про РЧ/СВЧ для программистов: об S‑параметрах и пользе логарифмов

Level of difficultyHard
Reading time11 min
Views9.5K

Те инженеры, которые по работе или в рамках хобби приходят в электронику из разработчиков прикладного программного обеспечения, однажды сталкиваются (непосредственно вживую или же через ту или иную документацию) с инженерами, изначально обучавшимися на радиоэлектронные специальности. Ввиду принципиального различия бэкграундов «программистам» бывает непросто осваивать новые для себя области знания. И дело не только в терминологии — в ряде случаев само восприятие тех или иных проблем может представляться, на первый взгляд, контринтуитивным. Опытные инженеры-электронщики зачастую склонны проявлять когнитивное искажение, называемое проклятием знания. Особо насущной данная проблема видится в дисциплинах, связанных с РЧ/СВЧ. Поэтому в рамках данного небольшого цикла мы попробуем разобраться в нескольких базовых понятиях этой области знаний. Сегодня мы поговорим про децибелы, волоконно‑оптические линии связи и S‑параметры.

Сложить степени
Total votes 36: ↑35 and ↓1+46
Comments29

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

Reading time12 min
Views29K

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

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

СТАРТ_БИТ
Total votes 91: ↑91 and ↓0+91
Comments33

Разглядывая JTAG: что внутри?

Reading time27 min
Views13K

Ознакомившись с работой JTAG в общих чертах и написав файл BSDL для воображаемой микросхемы в предыдущей статье, можно рассмотреть работу модуля JTAG внутри микросхем более детально. Для этого мы напишем прошивку для микроконтроллера и для ПЛИС (на «Си» и на «SystemVerilog»), которые позволят считывать/устанавливать логические уровни на отдельных выводах микросхемы через данный интерфейс.

Реализовать интерфейс JTAG
Total votes 31: ↑31 and ↓0+31
Comments8

Разглядывая JTAG: *.bsdl своими руками

Reading time15 min
Views7.4K

В предыдущей статье мы немного поработали с конечным автоматом модуля JTAG в контексте чтения идентификационного номера. Совершённые нами манипуляции были бы одинаковы практически для любой микросхемы с JTAG-ом. Однако при попытке установить/считать через JTAG уровень напряжения на произвольном выводе микросхемы мы столкнёмся с объективной проблемой: количество выводов, их назначение и расположение у разных микросхем принципиально отличаются. Для того, чтобы у ПО, управляющего JTAG-ом была информация об этих отличиях, ему необходим файл описания модуля JTAG для конкретной микросхемы. Об этих файлах и пойдёт речь в данной статье.

Написать *.bsdl в блокноте
Total votes 36: ↑36 and ↓0+36
Comments5

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

Reading time19 min
Views17K

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

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

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

Согласование импедансов: о пользе формул

Reading time17 min
Views21K

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

Подставить значения
Total votes 35: ↑35 and ↓0+35
Comments43

Согласование импедансов: переходные процессы и переходные отверстия

Reading time12 min
Views18K

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

Металлизировать отверстия
Total votes 54: ↑53 and ↓1+66
Comments25

Согласование импедансов: симуляторы и симуляция. Часть 2

Reading time14 min
Views11K

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

Симулировать работу
Total votes 18: ↑16 and ↓2+18
Comments15

Согласование импедансов: симуляторы и симуляция. Часть 1

Reading time5 min
Views12K

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

Симулировать работу
Total votes 21: ↑20 and ↓1+28
Comments10

Согласование импедансов: как сломать и как починить

Reading time8 min
Views34K

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

Данная статья является попыткой начать с конца. Я возьму работающую схему, выполненную в текстолите. Затем постараюсь ухудшить её характеристики так, чтобы рассогласование линий стало причиной сбоев в работе или хотя бы стало заметно на осциллографе. А затем постараюсь устранить возникшие проблемы.

Согласовать импедансы
Total votes 68: ↑67 and ↓1+88
Comments40

Information

Rating
120-th
Registered
Activity