Pull to refresh
82
250
Subscribers
Send message
Вот я кстати исторически пользуюсь светлыми темами. И в DipTrace, и в редакторах кода, и во всем прочем софте, который поддерживает темы.

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


В тех системах, с которыми работаю я, MPU обычно нет. :)
О-о-о, мосье — большой эстет! :)

Может тогда уж лучше TCL? :)
Иногда бывает полезно иметь скриптовый язык в устройстве, особенно когда стоит задача дать пользователю возможность слегка модифицировать логику работы, но при этом не дать натворить непоправимого.

Lua кстати — самый шустрый и легковесный вариант для таких случаев. По работе делал примерно то же самое, что описано в статье, для местного испытательного комплекса. Только у нас там еще и самописный WEB-сервер (сеть через Ethernet). Все вместе занимает 144380 байт во флеше STM32F429 (FreeRTOS + драйвера + Lua + стек TCP/IP + WEB-сервер).
Какой чудесный комментарий. :) Ну да, мало кто помнит, как работают структуры и указатели. Нынче людям интереснее разбираться с синглтонами и прочими модными штуками. :)

А теперь внимательно-внимательно посмотрите, что делает каждая запись.

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

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

В первом случае мы пишем просто в регистр, который в структуре объявлен как uint16_t.
А чего компилятор это не ловит в 2019-м-то году?


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

Скажем, в STM32F0 модуль SPI устроен так, что обращения

SPIx->DR = byte;

и

*((uint8_t *)(&(SPIx->DR))) = byte;

вызывают разный аппаратный эффект. Внезапно, да?

Вообще, корректно работать с указателями на уровне рефлекса — первое, чему должен научиться разработчик встроенных систем.
Я вообще не помню, чтобы за всю мою практику мне приходилось в эмбеде использовать сортировку. :)
мне тоже приходятся байтики ворочать, просто их обычно в районе 10-100 миллиардов, и они все в памяти, и мне надо уметь быстро по ним отвечать на запросы, или что-то матрично-машинно-обучательное воротить.


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

Поймите меня верно, я совершенно не подвергаю сомнению ваш опыт в обработке больших массивов данных, но, поверьте, контроллер микроволновки программируется совсем по-другому, и тут навыки в описываемой области так же бесполезны, как и мои навыки в программировании контроллеров бесполезны применительно к big data.
Изумительно! Я наконец понял, как это все работает. :) В универе бы нам так рассказывали!
ААААААА!!!
ААААААААА!!!!11111

Гхм, эээ, простите. :) Просто я в восторге — вот так и надо писать статьи и учебники. Отличный пример хорошей подачи материала. Я очень надеюсь, что такой стиль будет распространяться и вытеснять из практики преподавания нынешний академический стиль.
«Таблетки» не потянут описанную периферию. Можно было бы, правда, поставить CR123A, но AAA дешевле.
Вам принципиально, чтобы оно выглядело так же гламурно? Тогда попросите знакомого электронщика, он вам за вечер такое оттрассирует. Дальше отдаете в производство — и вперед.

Если стандартный внешний вид устраивает — продается множество отладочных плат. Купите ту, на которой есть интересные вам модули, и наслаждайтесь. :)
Ооо, хехе, вот у нас на работе как раз любимое развлечение — протаскивать SPI, IIC, UART и похожее через кабели длиной метров пять. :) При этом конвертеры в какой-нибудь RS-485 в силу специфики не поставить.

А что до гигагерц, то, как я говорил, для меня это трансиверы. Топология там простая — трансивер, симметрирующий узел (aka balun) и дальше SMA-разьем, все. :)
Хорошая статья, спасибо!

Для себя понял, что, по всей видимости, где-то до 5 ГГц можно особенно не заморачиваться.

В принципе, самое скоростное, что есть в моей практике — это трансиверы на 2.4 ГГц. Как-то так сложилось, что я больше занимаюсь низкопотребляющими решениями.
Простите, мой комментарий может показаться резковатым, но накипело.

в главе 10 нашей будущей книги


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

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

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

В итоге статья, которая называется "Понимание алгоритма БПФ", сходу путает читателя, отдаляя его от этого самого понимания. Зато красиво, с матрицами.

Вот человек хорошо объяснил, что такое преобразование Фурье. Что-то в духе этого комментария должно было быть в начале статьи. А потом можно было бы объяснить, что FFT — это набор скалярных произведений на базовые ортогональные векторы. Вот это как раз очевидно, но про это в статье — ни слова.

Математически БПФ — это координаты нашего сигнала в пространстве, в котором синусоиды выступают в качестве орт. Физически — (частотный) спектр сигнала. Все!

Какое «конфигурационное пространство»? Что это вообще такое? Впрочем, я понимаю — тот, кто сходу может увидеть в комплексном суммировании матричное умножение, наверняка это знает. Но ему эта статья скорее всего уже не нужна.

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

Вот действительно хорошая статья про FFT. Из нее да, можно понять. Картинки, подробные записи вычислений, ясные объяснения.

Ну и, конечно, язык, да.
«это реализация на Фортране, которая получила годы доработок и оптимизаций.»

Реализация получила годы? Может быть, «дорабатывалась на протяжении многих лет», или как-то так?

«преподнесли некоторую интуицию»

Видимо, не совсем корректная калька с «brought some insight». Статья, кстати, точно не перевод? Вообще, она носителем русского языка написана?

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

Справиться с реализацией того, что, как следует из продолжения фразы, уже реализовано другими?

Странные рассуждения. Трассировать плату должен тот, кто рисовал схему, однозначно. Разделять эти процессы — значит заведомо терять в эффективности.

  • Если конкретный компонент не подходит геометрически, чаще всего можно рассмотреть варианты по его замене, возможно, с некоторым изменением схемотехнического решения. Если эти рассуждения происходят в голове одного человека — они происходят молниеносно. Если же процесс разделен между людьми, требуется время, чтобы они поняли друг друга (а потом еще время на внесение и согласование изменений). Более того, если конструктор не слишком разбирается в схемотехнике, то он может даже не представлять, что замена реальна. В итоге устройство либо теряет в возможностях (или в итоге будет иметь худшие параметры, чем могло бы), либо секундный процесс затягивается на дни.
  • Топология чаще всего очень связана с, как это назвали выше, семантикой элементов в контексте схемы. Опять же, если конструктор-трассировщик не разбирается в схемотехнике, то разработчику придется долго комментировать ему требуемые нюансы трассировки. Либо сам трассировщик должен хорошо разбираться в схемотехнике. Но если мы имеем схемотехника, который, по факту, может хорошо трассировать, и трассировщика, который хорошо разбирается в схемотехнике, то мы фактически имеем двух хороших разработчиков, которым будет логичнее дать по цельному индивидуальному проекту — так будет эффективнее за счет отсутствия лишних согласований.


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

«Не учат в ВУЗах» — не смешите. В ВУЗах на данный момент не рассказывают 80% того, что должен знать нормальный профессионал. Если студент не занимается самообразованием, специалиста из него не выйдет.
Ох. Столько комментариев, столько мнений… А все оттого, что когда-то давно, по причинам, которые лежат за пределами здешнего обсуждения, люди фатально решили, что профильное образование может заменить обычное человеческое воспитание. Оказалось, однако, что умение брать тройные интегралы не делает из дикаря просвещенного человека — последнее достигается по-другому и параллельно.

Помните знаменитое разделение на «физиков» и «лириков»? Это самый известный знак того, что общество зашло не туда. Инженеры и ученые «старой школы» просто не поняли бы такой постановки вопроса.

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

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

Про то, что Ломоносов писал стихи, все и так знают.

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

Сейчас вроде бы заметна положительная динамика в этом направлении, но, боюсь, результаты мы увидим еще очень нескоро. А до тех пор все будут спорить, каким же должен быть инженер/программист…
Что еще надо?


Собственно фронтенд обработки сигнала, 90% осциллографа. Прецизионные аналоговые входные цепи, цепи калибровки, скоростные АЦП и — самое главное — быстрая ПЛИС, которая будет принимать поток данных с АЦП, на той же скорости обрабатывать его в поисках условий захвата и при их обнаружении заполнять буферную память. А вот из этой памяти процессор потом берет готовые данные и неспеша отрисовывает их на экране.

Иными словами, вся задача «компьютерной» подсистемы сводится к обработке кнопочек, миганию лампочками, настройке аппаратуры и отрисовке UI на экране. Сам захват сигнала в нормальных осциллографах производится аппаратно, как описано выше. Только так можно получить нормальные характеристики. Это даже не говоря о том, что выполнять захват сигнала в реальном времени под многозадачной операционной системой типа Linux/Windows вообще несерьезно.
Вообще после того как пользуешься RTO брать в руки что-то типа китайских хантеков или тектрониксов противно, есть куча дополнительного функционала (за ваши деньги), о котором вы не подозревали, но когда узнали — не можете перестать пользоваться.


Здесь есть правдивая мысль… После того, как попользуешься хорошим оборудованием, low-end становится немного некомфортен. :) Rohde & Schwarz кстати особенно преуспевают в плане UI — за это, по всей видимости, они при тех же характеристиках и дороже.

Но будем смотреть правде в глаза — домой такое не купить (если что, я понял иронию в первом сообщении). Помню на работе мне понравился один блок питания — ну очень удобный. Управление логичное, интерфейс красивый, размер компактный, встроенный мультиметр… Думал — куплю себе домой! Потом нашел его в магазине, посмотрел на цену и понял, что не куплю.: D
Осциллограф должен иметь в своём арсенале любой уважающий себя энтузиаст-электронщик. Осциллографы, кратко говоря, позволяют вам изучать волны электрических сигналов в контуре, а цифровые осциллографы (digital storage oscilloscope, DSO) незаменимы тем, что могут найти редкие ошибки в сигнале, которые не распознает аналоговый осциллограф или мультиметр.


Господи Исусе, надо же так-то, а… Вот поэтому я предпочитаю читать оригиналы.

«The oscilloscope is one piece of equipment that any self-respecting electronics enthusiast should have. In short, oscilloscopes let you view the electronic waveforms of a circuit, and digital storage oscilloscopes (DSOs) are especially useful since they can reveal infrequent glitches on signals that an analog oscilloscope or a multimeter wouldn’t pick up.»

->

«Осциллограф — это прибор, который полезно иметь [там should, а не must!] каждому уважающему себя радиолюбителю. Вкратце, осциллограф позволяет наблюдать формы электрических сигналов в схемах, при этом цифровые запоминающие осциллографы хороши тем, что могут помочь обнаружить редкие артефакты в сигнале, которые невозможно зарегистрировать аналоговым осциллографом или мультиметром.»

Information

Rating
Does not participate
Registered
Activity