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
Low Power - не только мобильная электроника

Появилась возможность больше времени уделять увлечениям, одно из них - автомобильная электроника.

Не стоит забывать что автомобиль - хоть и большая, но таки-батарейка и в режиме "охраны" авто должен потреблять единицы миллиампер. И для меня всегда было загадкой как это реализуется на практике с кучей always hot (т.е. подключенных напрямую (без реле) к клемме 30) модулей с жадными до тока CAN-трансиверами, в современном авто даже просто ДУ центрального замка - хитросплетение шин CAN и LIN (в передние двери обычно заходит шина CAN, а в задние - LIN), плюс сам радиомодуль, который always_on для эфира.

Как известно, практика - критерий истины. Залезя в несколько automotive блоков, хотел с вами поделиться находками элементной базы, Об этом и будет сказ дальше.

@embedoka
Спящий CAN

Первым был обнаружен не простой CAN трансивер, а продвинутый от NXP - TJA1043.

Вот какие фичи у TJA1043 по части Low-power management:
▫️типичное потребление в режиме сна 0.75 мкА (Vcc) + 18 мкА (Vbat)
▫️Standby и Sleep режимы с возможностью побудки по шине или локально
▫️Отдельный low-power приемник для режимов Standby и Sleep

@embedoka
TJA1043.pdf
251.7 KB
All in one for Automotive

L99PM62GXP
от ST - это интегрированное решение, которое улучшает одновременно две вещи: великолепное сокращение ВОМа + продвинутая спячка.

Что же в него напихали:
▫️CAN + LIN трансиверы
▫️пара LDO без требования электролитов на выходе
▫️пара ОУ с rail-to-rail выходом
▫️4х канальный ШИМ
▫️сторожевой таймер
▫️5+2 драйверов для управления мощными MOSFET (Low+High side)
▫️монитор питания для выработки сигнала сброса
▫️программируемый таймер периодической побудки
▫️SPI-интерфейс для начальной настройки и коммуникации
▫️встроенный температурный датчик

L99PM62GXP - просто какое-то фантастическое существо, кажется, что добавь сюда микроконтроллер и керамическую россыпь - и вот он законченный дизайн узла шины CAN/LIN с маленьким аппетитом и хорошим сном.

@embedoka
L99PM62GXP.pdf
1 MB
Two more advanced CAN transceiver

@Vvromanov подсказал еще парочку интересных трансиверов, которые пробуждаются не от каждого чиха на шине, а только на заранее (перед сном) запрограммированный ID & payload:

▫️ TJA1145
▫️ TLE9255W

@embedoka
Github tips & tricks

Давненько не писал регулярную рубрику про фишечки гитхаба.

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

PS: кстати, c телеграм такая же петрушка: если чат или персоналия без граватарки, то умственных усилий и времени надо тратить на порядок больше для поиска в списке, особенно когда в голове сидит образ, который неформализуем в поисковый запрос 😭

@embedoka
Мой первый awesome list

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

Быть может такой список уже существует, но что-то аналогичное у меня найти не получилось, так что надеюсь он будет полезен не только мне. Отдельный интерес исследователей (автомобильных CAN-шин и их начинки) могут представлять разделы тулов для "обратной разработки" (если такой термин применим к дампам обмена по шине) и GUI-тулам, которые позволяют выводить в графическом виде зависимости изменения конкретных бит/байтов во времени, что упрощает процесс поиска интерпретируемости интересующих зависимостей.

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

PS: Нажимайте ⭐️ на странице репо - это хорошая обратная связь и индикатор того, что польза от этого есть и стоит дальше развивать эту тему (например в сторону LIN/Flexray/MOST-шин).

https://github.com/iDoka/awesome-canbus
@embedoka
Двое из ларца, одинаковых с лица

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

В комментах можем поиграть в угадайку какой из них оригинальный (и по какому признаку). Правильного ответа я не знаю, mojo v3 у меня тоже китайская 🤷‍♂️

@embedoka
RPi + CAN bus

Наконец закончил описание моего сетапа малинки с дополнением в виде двух шин CAN на базе МСР2515. В первую очередь пишу для того, чтобы раз в полгода не вспоминать каждый раз как я там что настраивал. Вообще настройка шины CAN - это часть моих заметок по различным аспектам настройки Raspberry Pi: https://github.com/iDoka/raspberrypi-recipes

Немного подробнее о железе (для тех кто захочет повторить): использую китайскую макетку с МСР2515 + TJA1050, на которой трансивер перепаян на модель с питанием 3.3В - соответственно это всё добро питается с гребёнки малины 3,3 вольтами. Далее настроена WiFi точка доступа (инструкция есть в репо), к которой в полевых условиях можно подключаться с планшета/смартфона и запускать скрипты записи дампов обмена по шине. Чтобы дампы писались с правильной датой - сетап был дополнен платой с RTC. Для настольного подключения и сброса дампов захожу терминалом через UART-to-USB адаптер (у меня модель А без Ethernet).

PS: полезная ремарка - питается это всё от battery-pack, чтобы не ловить спонтанные перезагрузки и зависания при питании от бортсети.

@embedoka
#БольшойБрат

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

В 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