Запоздалый перевод материала от 1 апреля.
В нашей отрасли постоянно происходят изменения, новые слова и выражения появляются, чуть ли не каждый день, а значение старых терминов меняется. Вот текущее состояние словаря.
Разработчик аппаратуры и программист ее
Запоздалый перевод материала от 1 апреля.
В нашей отрасли постоянно происходят изменения, новые слова и выражения появляются, чуть ли не каждый день, а значение старых терминов меняется. Вот текущее состояние словаря.
История это началась еще в стародавние времена (в начале 2022 года), когда импортозамещение электроники не было столь востребовано, и воспринималось скорее, как непонятная прихоть начальства, нежели как насущная необходимость. Делали мы клавиатуру для применения в изделиях специального назначения, как положено, подали перечень ЭКБ импортного производства для утверждения, получили заключение о наличии отечественных аналогов, в общем, все, как всегда.
Далее обычно это заключение прятали в стол клали на него с прибором, но тут вдруг появилась новая инструкция, устанавливающая временный порядок согласования подобных перечней (кто в теме, тот сразу понял, что речь идет о действительно выдающемся творении сумрачного бюрократического гения). Прочитав данный документ (что было не очень легко, поскольку большая часть параграфов при чтении сопровождалась комментариями, вроде «Да они что там, совсем с ума сошли» и «Да не может такого быть, они же не совсем идиоты») разработчики пришли к выводу, что импортозамещать все-таки придется. И на роль жертвенного агнца были выбраны диоды по двум причинам:
1) Их было больше всего в устройстве (50+ штук), так что мы могли сразу заместить почти 80% компонентов
2) Не ожидалось особых проблем, «ну уж диоды то у нас, наверное, могут сделать».
Те, кому интересно узнать, чем кончилось, могут нажать кнопку «Читать далее», для остальных спойлер – кончилось плохо
Разбирался тут на досуге с (относительно) новыми МК фирмы WCH с ядром RISCV (CH32V307FBP6) с целью осветить данный прибор, скачал рекомендованную среду разработки (mounriver) и на первом же примере наткнулся на совершенно неожиданную вещь. Пример совершенно классический (нет, не мигание светодиодом и даже не приветствие миру) и посвящен использованию функции printf, вот он:
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n"),SystemCoreClоck);
printf("This is printf example\r\n");
Пнп: Вы (программисты сайта) думайте, что хотите, но я считаю, что редактор у Вас ("вот это слово еще ...") омерзительный.
Как и всегда, тема поста возникла в процессе решения практической задачи, как и всегда, решение показалось мне интересным, и, как и всегда, решил поделиться с коллегами.
В данном конкретном случае речь пойдет о странностях, сопровождающих работу понижающего изолированного преобразователя DC-DC производства фирмы АЕ-ДОН типа МДМ2-1И3,3СН (далее ИП). Данный ИП был использован в клавиатуре и использовался для формирования напряжения питания устройства (3.3В) из питания интерфейса USB (5В). Применение изолированного источника в данном случае несколько избыточно, ведь земли входа и выхода связаны и ранее здесь использовалась LMZ, но мы с Вами наблюдаем импорто-замещение на марше. Пнп: да, мы знаем о существовании серии источников Эйлер от того же АЕ-Дона, но у них нет звездочки, а данные ИП имелись на складе были признаны подходящими.
Интерфейс дает нам 5В при токе 0.5А (2.5Вт), потребление устройства менее 0.5А (1.65Вт), мощность ИП 2Вт, что могло пойти не так? Тем не менее, наблюдаемая картина резко отличалась от ожидаемой — на входе ИП напряжение 2.5В (а не 5В), на его выходе 1.8В (а не 3.3В) и устройство в целом (вполне ожидаемо) не работает. Более того, один раз на выходе ИП наблюдалось напряжение 8В, которое привело к повреждению контроллера клавиатуры.
Испытывали мы недавно одно изделия на электромагнитную совместимость (ЭМС) и в процессе должны были проверить уровень кондуктивных помех. Собрали проверочный стенд в полном соответствии с методикой ГОСТ, (да, у нас есть железный лист два на метр, пробники и даже фирменный LISN), выставили на источнике максимальное рабочее напряжение (36В), подсоединили исследуемое устройство, включили его и провели измерения, все нормально. Далее выставляем на источнике минимальное рабочее напряжение (18В), повторяем процесс и …, устройство включилось (загорелся светодиод питания), через некоторое время выключилось и больше уже не включалось. Ладно, разбираем устройство и диагностируем проблему — вышел из строя проходной транзистор в схеме защиты от переполюсовки, она же схема контроля включения. Странно как-то, изделие ранее не отличалось подобным поведением, но все случается когда-то в первый раз, меняем транзистор, убеждаемся в работе устройства на проверочном стенде, повторяем подготовку к испытаниям, снова включаем … и картина повторяется — транзистор теряет волшебный дым.
Кому интересно, в чем было дело, нажмите кнопку.
Встретил недавно текст, в котором автор прощался с трехцветными светодиодами (в выводном исполнении) и задумался, а действительно ли "адресные" светодиоды способны вытеснить их. Для начала решил посмотреть и сравнить цены, использовав данные с сайта "Чип и Дип". Примечание на полях (Пнп): многие скажут. что у них цены неправильные (и нельзя утверждать, что будут неправы), но нас ведь интересует не абсолютные значения, а их соотношение, так что будем считать, что цены одинаково неправильны (если, конечно, неправильные) для любых компонентов. Вообще-то я давно работаю с фирмой "Платан", когда-то им просто не было альтернативы, потом по привычке, ну а потом (когда вышел на несколько бОльшие обороты) Митино, конечно же, победило. Однако, безотносительно к ценам, сайт у фирмы неплохой и я постоянно к нему обращаюсь за информацией. Даже скажу больше, сайт у фирмы хороший, поэтому прошу разработчиков принять последующую критику с достоинством.
Да, дальше будет (в основном том числе) критика, причем достанется всем, если интересно, нажимайте.
Решил я приобщиться к модным трендам и купить себе (для побаловаться) платку на ESP32, тем более и повод выдался неординарный - на сайте одной из российских фирм, торгующих Arduino, обнаружился модуль ESP32 lolin32 OLED по цене ниже, чем на Aliexpress. Пнп: не знаю, будет ли это рекламой, но вот ссылка на модуль https://iarduino.ru/shop/boards/wemos-esp32-oled.html, а фирму вы узнаете сами. Не то, чтобы мне было очень жалко 1200-990=210 рублей, но возможность получить платку сразу, без ожидания посылки дорогого стоит. Пнп: кстати, если заказывать доставку до пункта выдачи, то даже получается чуть дороже, хотя и быстрее, чем из Китая - всего 3 рабочих дня. Но можно съездить в "столицу нашей Родины город-герой Москва" и получить заказ на следующий день, что я и сделал. Не очень понятно, зачем я это все совершил в пятницу, потому что в выходные с платой возится так и не начал, но охота пуще неволи.
Тем не менее, на следующей неделе приступил к освоению платы. Для начала включил плату в USB порт - экран засветился и появилась надпись, заявляющая о любви к ESP - начало неплохое. Нужно установить среду разработки программ, и я решил поступить, как нормальный самодельщик, тем более что мне это рекомендовали на сайте фирмы продавца - скачать Arduino. Читатели, испытывающие непреодолимое отвращение к этому термину, могут далее себя не мучить, все остальные могут нажать на транспарант ниже.
Как всегда, тема данного поста возникла во время беседы с ММК (моим молодым коллегой) об одной несложной задачке. Речь шла о том, чтобы определить нахождение текущего значения счетчика тактов внутри интервала относительно некоего заданного значения. Затруднения вызывал момент перехода счетчика через максимальное значение в нулевое («реролл» или переполнение). Немного переформулировав задачу, приходим к классической задаче о задании интервала времени при помощи аппаратного счетчика, решение которой давно известно (смотри исходники Linux). Однако внезапно выяснилось, что данное решение не представляется ММК очевидным и потребовались определенные разъяснения. Чтобы обратить внимание других (не моих) МК на данный аспект работы с числами и был создан настоящий пост. А посвящен он описанию различных способов представления множества целых чисел на конкретной битовой основе, их преимуществам и недостаткам.
Если Вам интересна эта тема, то можете нажать
Тема данного поста возникла, как всегда, при рассмотрении конкретной технической проблемы. На одном форуме, посвященном Ардуино (гусары, молчать), был задан вопрос о сопряжении двух покупных устройств. Я (на КДПВ внизу) немного помог автору вопроса (на КДПВ вверху), но, после того, как проблема была решена (конечно же, успешно решена, с моей‑то помощью), по комментариям в обсуждении у меня осталось стойкое ощущение, что очень многие некоторые из адептов секты DIY «плавают» в основных понятиях разработки электроники. Для устранения возможных пробелов в знаниях ММК (Моих Молодых Коллег) и создан данный опус.
Если Вы твердо ориентируетесь в понятиях типа «входное сопротивление, рабочий диапазон, передаточная характеристика, S‑ и Z‑параметры», то этот пост Вам не нужен, а все остальные могут...
Недавно, при отладке одного устройства, внезапно выяснилось, что RS485 не хочет работать (вернее, работает через раз), если два устройства не связаны землей, от слова совсем. Вообще то данный факт не является откровением и я в своих кабелях земли протаскиваю, но в данном конкретном случае имел место обрыв провода. Но после того, как дефект был обнаружен и устранен, внезапно возник вопрос — а как вообще устроен приемник сигналов, если в соответствии со стандартом он должен правильно обрабатывать сигналы, имеющие общее напряжение (Vcm) от -7В до 12В, питаясь при этом от 3.3В (ну или от 5В) относительно земли. Да, я знаю о существовании операционных усилителей (а компаратор — то же ОУ), способных обрабатывать сигналы «rail‑to‑rail» (импорто‑замещенное обозначение «от шины до шины» мне не нравится, можете пожаловаться кому следует), но в данном случае входные сигналы откровенно за шины (землю и питание) выходят.
Многим запомнилась история с «отечественными» видеокамерами и последующей попыткой «разбора полетов» со стороны производителя этого чуда техники. Чтобы не создавать проблем (даже потенциальных) ресурсу, на котором публикую свои посты, разделю материал на две части — в первой опишу факты, которые просто имеют место быть, а во второй дам свои оценочные суждения, которые, конечно же, могут быть оспорены.
История тоже связана с видеокамерами отечественного производства и так же наводит на размышления.
Вспомнил тут об инициативе поднять подоходный налог для работающих из за рубежа сотрудников ИТ-компаний и решил рассмотреть возможные варианты развития событий в случае принятия подобной налоговой инициативы (вроде как ее признали нецелесообразной, но кто может поручиться за будущее...).
Итак, предположим, внесены изменения в Налоговый кодекс и работодатель теперь должен вычитать из зарплаты сотрудника, в виде НДФЛ, не 13%, как ранее, а 30%, если последний физически расположен вне границ РФ. Какие варианты действий заинтересованных сторон возможны.
А действительно, разве есть варианты?
У меня точно есть, но может быть, я не все знаю.
Это будет совсем небольшой пост, просто я вчера одновременно просмотрел два профильных журнала, возник когнитивный диссонанс, коим и спешу поделится.
Итак, первый факт: в одном журнале в очередной раз прочитал, что заводом Микрон "полностью освоена" технология 90 нм и ведутся работы по 65 нм.
Второй факт: завод Микрон изготовил на своем производстве новый МК со следующими параметрами: ядро - 32битный RISCV, тактовая частота - 30 МГц, FLASH на борту - 16 кБ, память на борту - 32 кБ, последовательные интерфейсы - 6 штук. Представлены отладочные платы на данном МК - очень похожие на Ардуино или Таблетку, но, как всегда, в уникальном форм-факторе, чтобы никто, не дай бог, не мог просто так взять и заменить упомянутые платы на это творение сумрачного российского гения.
Высказываю предположение (возможно, неверное) что данный МК изготовлен по имеющимся освоенным технологиям.
Третий факт: в другом журнале нахожу статью про МК фирмы Novaton со следующими параметрами: ядро - ARM926EJ, тактовая частота - 300МГц, FLASH на борту - (56+16)кБ, память на борту - 64 МБ, последовательные интерфейсы - 6 штук, USB2.0 PHY - 3 штуки, МАС 10/100, видео контролер и так далее. Явным образом написано, что МК изготовлен по технологии 110 нм на 600 мм пластинах, что не является топовыми параметрами, но обеспечивает высокое качество.
Вот и возник у меня вопрос - как совместить эти три факта в одной картине мира? Возможные решения смотрите в голосовании.
Очередная история в стиле Шерлока Омса произошла у нас буквально на днях. Суть проблемы: изделие отказывалось включаться при повышенной температуре. Ну то есть включаться то оно включалось, но нормального функционирование управляющего микроконтроллера (МК) не наблюдалось. Быстро было установлено, что к такому поведению приводил нагрев конкретного компонента схемы - источника питания фирмы "АЕ-Дон" (марки МДМ8). Поскольку я считаюсь (и не без оснований) адептом продукции этой фирмы, Мой Молодой Коллег (ММК) обратился ко мне за помощью. (Спойлер: а убийца дворецкий источник не виноват).
Я так и не понял, как работать с этим инфернальным редактором.
А речь пойдет о сравнении неизолированных малогабаритных понижающих преобразователей отечественного и импортного производства.
"Ну а мы все те же ружья чистим тем же кирпичом"
Примечание на полях(Пнп): Что ? Опять новый редактор ? Офигеть. Автор не несет никакой ответственности за искажения исходного текста в результате работы нового редактора и никоим образом не собирается разбираться в его работе.
Побудительным мотивом к написанию данного поста послужило введение в действие в августе сего года "Временной инструкции...". Но, прежде чем перейти к подробному анализу данного документа (его авторы в ужасе затаили дыхание, я так думаю ... ), рассмотрим проблему более широко.
Существует целая линейка весьма интересных приборов - трехцветные светодиоды со встроенной схемой управления (ws2811, ws2812, ws2812b, ws2813...). Характерной особенностью их является цена, которую иначе, как смешной, назвать трудно, что и определяет их необычайную популярность среди любителей. Почему-то часто их называют адресными светодиодами, что, на мой взгляд, не вполне верно, поскольку данные приборы собственного уникального адреса не имеют и адресуются положением в цепочке подключения, но оставим тонкости терминологии за скобками.
Примечание на полях (Пнп): Выпускается это семейство, что совершенно естественно, за пределами нашей необъятной Родины. Как специалист, непосредственно связанный с данной тематикой, не могу не выразить своего недоумения по поводу отсутствия в номенклатуре электронных приборов, выпускаемых отечественными производителями, подобных изделий. Я понимаю, что изготовление микросхем по нормам 90 и менее в РФ невозможно, невзирая на неоднократные заявления об освоении данных процессов Ангстремом, но компоненты, вроде описываемых в данном посте, просто не могут требовать применения столь продвинутых технологий, так что ответ на вопрос лежит, вероятно, более в экономической, нежели технологической плоскости. Но, тем не менее, наши южные соседи подобные приборы делают и, наверняка, не в убыток себе.
Все приборы данного семейства предоставляют пользователю максимально простой в аппаратном плане интерфейс - одно-проводной (на самом деле, конечно, трех-проводной, поскольку общая земля подразумевается, да и без питания будет нелегко обойтись) и меньшее количество проводников вряд ли возможно. Но за все в этом мире надо платить, в данном случае платой является протокол сообщений, который является последовательным протоколом с кодированием информации длительностью импульса. Решение известное, при соблюдении определенных требований надежное, но дьявол, как всегда, затаился в деталях.
Еще вчера я думал, что ИИ никогда не заменит меня как программиста.
Что ж, программирование как профессия с самого начала боролось с собственной смертью. Я полагаю, когда кто-то впервые придумал Ассемблер, многие думали, что это конец.
Какие? Программа, которая превращает читабельные каракули в настоящий машинный код? Значит, теперь каждый менеджер может писать код? Мы устарели? Были ли мы автоматизированы? Пора собирать вещи и идти?
Вскоре появилось достаточно языков высокого уровня. Такие языки, как FORTRAN и COBOL. Это определенно делает ненужными настоящих программистов, не так ли? Вы можете быть инженером-механиком или бизнес-аналитиком и хорошо владеть компьютером. Вам больше не нужен программист, чтобы писать за вас код.
А потом пришло индуктивное программирование. Функционален, как в Haskell, или логики, как в Prolog. Идея индуктивного программирования заключается в том, что вы не пишете код, вы только устанавливаете ограничения, в которых должна работать программа, и, если возможно, язык сам напишет код для нее.
Он стал независимым от языка по мере того, как перерос в системы компьютерной алгебры. Теперь вы можете написать несколько уравнений в записной книжке Python и превратить их решение в код для любого другого языка. Таким образом, вам не только не нужно писать код программисту, вам даже не нужно писать код самому.
И хотя все эти вещи угрожали убить программирование как профессию, огромное количество программистов росло, растет и продолжает расти. И тоже экспоненциально. Каждые пять лет их число увеличивается вдвое. Население растет быстрее, чем человечество. При таких темпах все мы, все ~ 10 миллиардов будущих нас, к 2075 году будем иметь по три должности программистов.
Конечно, в какой-то момент этот рост должен прекратиться. В мире просто не хватает кокаина, чтобы мы все могли безостановочно заниматься программированием в течение многих дней. Но это не остановится из-за каких-то прорывных технологий, а прекратится только тогда, когда спрос в других профессиях перевесит спрос на программистов.