Embedded Doka – Telegram
Embedded Doka
3.65K subscribers
1.02K photos
28 videos
52 files
470 links
Авторский канал инженера-радиотехника 🤓

Если хотите рассказать мне интересное 👉 @iDoka

Let's keep in touch:
▫️ http://linkedin.com/in/idoka
▫️ https://github.com/iDoka
Download Telegram
#БольшойБрат

Уж не знаю что это: пасхалочка/специфическое чувство юмора разрабов или просто импортозамещённый ББ решил напомнить, что он знает обо мне больше, чем я ему когда-либо "рассказывал"?!... 🤔

В 2020г такими "совпадениями" уже мало кого удивить. Тот случай, когда вслух не говорят, но все всё понимают.
C++ embedded in a Makefile

Красотища то какая!
Взято здесь.
@embedoka
Много боли в заметке и комментах, но освещены увы только минусы, а есть и плюсы: потом в Сбер без собеса и на нормальные деньги берут 😊


Трижды, с интервалами в полтора года и полгода, успешно проходил все 9 кругов этапы собеседования в Яндекс. С каждым разом, разумеется, всё лучше и лучше. И мне трижды давали понять что я могу войти в клуб. Что готовы взять меня, но не за те деньги, которые я просил. Говорили мне, что пока я недостаточно хорош. Вот через год, если я получу две оценки "D" на ревью, мне поднимут зарплату. И это притом, что я изначально делал экслюзивную скидку Яндексу: просил ровно столько, сколько получал на текущей работе, хотя считал, что мне серьёзно недоплачивают. Но Яндекс мне говорил, что недоплачивать, как тебе сейчас недоплачивают, мы начнём только через год, а пока будем недоплачивать так, что тебе и не снилось.

Не знаю точно сколько Яндекс создал технологий, но уверен, что самая крутая их технология — это технология HR. Они раскусили нас и покупают время самых дорогих разработчиков на рынке за средние, если не ниже, зарплаты, выжимая из нас всё, на что мы способны. И делают они это не кнутом и не пряником, мы сами готовы им продаваться за копейки.

https://habr.com/ru/post/530228/
@embedoka
«Изобретать велосипед [ДА][НЕТ]»

А вы знали, что у термина NIH (not invented here — «изобретено не нами»), обозначающего синдром неприятия чужой разработки есть антипод в лице PFE ("proudly found elsewhere" or "invented elsewhere"— «с гордостью найдено в другом месте»).

В качестве примера второго термина часто приводят кейс Procter & Gamble, которые, начиная с 80хх, преодолевали кризис инноваций.

@embedoka
Не только FPGAшники упарываются по миганию светодиодами, вот тут чел заморочился и реализовал 4 подхода к имплементации blink LED на bluepill:

▫️using STM32CubeMX platform
▫️using libopencm3 library function calls
▫️using libopencm3, but only for register definitions
▫️bare-metal without libraries

и конечно куда ж без сравнения размеров итоговой прошивки в байтах (в том же порядке):
▫️3496
▫️1088
▫️ 608
▫️ 440

Результаты более чем красноречивы и коррелируют со звучащим из каждого динамика лозунгом: "кремний нонче дёшев"

@embedoka
Можно сказать PCB-art =)
Поди ещё и четырёхдиапазонная..

Исходник в Eagle.
@embedoka
СберОС vs iOS

то чувство, когда начинаешь понимать истинный смысл выражения "Сбер хочет быть как Эппл" 😱
@embedoka
Embedded Doka
#пятничное @embedoka
внезапно в STM32F0 обнаружилась возможность лёгким движением руки махнуть RXD c TXD местами, тем самым уменьшив баттхёрт от классических ошибок.
@embedoka
👍1
Продолжаем про UART в STM32

Кстати сказать, такие фичи как раздельная инверсия RXD и TXD тоже довольно востребованы.

Вот вам пример использования в китайском девайсе для преобразователя K-line: приёмник (неинверсный) реализован на резистивном делителе, а вот передатчик удалось скостить с двух транзисторов (6 элементов) до одного транзистора (3 элемента), проинвертировав сигнал второй раз внутри МК.

В этом смысле китайские ребята всё больше напоминают советстких инженеров, которые из говна и палок с их школой бережливости и оптимизаторства, заданной линией партии. 👍🏻

Конечно подкупает такая продуманность и забота со стороны разработчиков периферийного блока - вот так вот в инженерной среде и создают адвокатов бренда 😍

PS: Чипмейкерам на заметку! ☝🏻
@embedoka
Вторая жизнь FPGA-плат или девборд задёшево

Потихоньку выхожу из постновогодней спячки.

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

▫️контрольная плата на Zynq от майнера
▫️платы на ECP5 & Spartan6 от контроллеров матриц светодиодов
▫️ECP5 от видеоадаптера (HDMI-USB3)
▫️Arria GX от PCI-E Gzip ускорителя
▫️Spartan3 от тонкого клиента Panologic
▫️серверная числодробилка о которой писал тут https://news.1rj.ru/str/embedoka/31

@embedoka
YAGNI for HW

«You aren't gonna need it» («Вам это не понадобится») — процесс и принцип проектирования софта, при котором в качестве основной ценности декларируется отказ от избыточной функциональности (отказ добавления функциональности, в которой нет непосредственной надобности).

Если перенести YAGNI в эмбеддед сферу, то опыт HW-инженера необходим для нахождения оптимального компромисса между риском баттхёрта при bringup и/или отладке девайса и избыточной функциональности с другой стороны.

Последствия последнего таковы:

▫️Увеличенное время разработки железа
▫️Чрезмерное раздувание ВОМ:
▫️увеличение стоимости девайса
▫️увеличение времени сборки из-за цепочек поставок
▫️Чрезмерный функционал крадёт тот функционал, который может быть добавлен в будущем (при ограничениях, например, на размер РСВ)
▫️Трудно предугадать как именно этот функционал будет использован в будущем (моё любимое)
▫️Увеличение рисков взлома девайса (чрезмерное увлечение дебаг интерфейсами, удобство доступа к компонентам)
▫️[поделитесь в комментариях тем, что я пропустил/забыл]

@embedoka
🔥1
как документировать FSM?

Самые шикарные диаграммы машины состояний я встречал толи у самсунговской, толи у SK-hynix памяти.
В принципе, для генерации noscript достаточно Graphviz с формализованным описанием переходов и настроенными стилями. Но вот этот парень пошёл дальше, что позволяет встраивать ASCII-art c FSM прямо в исходник:
https://github.com/ggerganov/dot-to-ascii

PS: сразу вспоминаются тёплые ламповые времена, когда ASCII-art'ом в исходнике рисовали времянки 😝

@embedoka
Скучный RP2040 от Raspberry Pi Trading Ltd

Сегодня наверное только ленивый не написал о новой малиновой плате - Raspberry Pi Pico, но что осталось за кадром - так это доступность самого микроконтроллера - RP2040.
Случайно наткнулся на гитхабе на фото платы с чипом с малиновым логоб - оказалось это "тот самый" RP2040, который был доступен еще в 2020г до анонса пико-платы.

Сам чип отнюдь не блещет инновациями (рано как и набор периферии - ассортиментом): Cortex-M0 (RISC-V ау!!), АНВ, USB 1.1, отсутствие набортного флеша, но из расшифровки партнамбера похоже, что это лишь обкаточная попытка в (предполагаемом) семействе кристаллов. Из "интересных" фич разве что двухъядерность и встроенный Performance Counters в блоке интерконнекта. В двухъядерности довольно любопытен блок SIO (Single-cycle IO block), с Hardware Spinlocks (тут уже прослеживаются зачатки functional safety).

Тем интереснее будет понаблюдать за развитием линейки и постижением факта: а зачем это нужно "ардуинщикам"?!..

Пока же какой-нибудь SiP 10-летней давности типа F1С100s с полноценным линуксом, интегрированной SDRAM и соблазнительной периферией более интересен DIY-энтузиастам.

@embedoka
RP2040.pdf
29.8 MB
RP2040 datasheet (Raspberry Pi Trading Ltd)
Тот самый SIO (Single-cycle IO block).

SIO contains several peripherals that require low-latency, deterministic access from the processors. It is accessed via each processor’s IOPORT.

The SIO is not connected to the main system bus due to its tight timing requirements. It can only be accessed by the processors, or by the debugger via the processor debug ports.

All IOPORT reads and writes (and therefore all SIO accesses) take place in exactly one cycle, unlike the main AHB-Lite system bus, where the Cortex-M0+ requires two cycles for a load or store, and may have to wait longer due to contention from other system bus masters. This is vital for interfaces such as GPIO, which have tight timing requirements.

@embedoka
🖕1
F1С100s - SiP made by Allwinner

Немного о том, что же это за чудо такое F1С100s: этому чипу уже лет 10 точно, там используется древнее как дерьмо мамонта ядро ARM926, зато периферия самодостаточна (и уж точно даст фору таковой в RP2040):

▫️USB 2.0 HS + OTG
▫️SD/MMC/NAND контроллер
▫️SDIO контроллер
▫️вход/выход аналогового видеосигнала
▫️CSI 8-bit CMOS-sensor интерфейс
▫️контроллер LCD (DPI24 out - в более продвинутых чипах линейки - LVDS & MIPI)
▫️декодер H.264 и JPEG
▫️на-коленке-паябельный QFN88
▫️ну и это SiP-таки: ребята засунули 16МБ DDR-I на подложку внутрь корпуса.

@embedoka