All streams
Search
Write a publication
Pull to refresh
178
99.9

Embedded SW/Firmware Engineer

Send message

Ещё подсветку днища стола синхронную с изображением на мониторе. )))

Плюс логин и пароль в личный кабинет на сервере вендора стола.

Управление столешницей через UART - это верх дурости.

UART нужен не сколько для управления сколько для чтения диагностики.
Например наработка на отказ, калибровки, конфиги и обновление прошивки загрузчиком.

Те кто программируют микроконтроллеры знают зачем нужен UART.

В крайнем случае - ATtiny13. 

Зачем ATtiny13 за 310 RUR

когда Cortex-M0 дешевле в 2-5 раз?

А как вы сделаете плавный разгон?
Без этого вся констукция ушатается и саморезы крепления вывалятся, как зубы от усталости материала.

Не всё так просто...
Помимо отвалившегося мотора, надо ещё уметь определять в H-мосте ЗК нагрузки на GND и на VBAT.

Вот классическое решение
H-мост: Load Detect (или как выявлять вандализм)
https://habr.com/ru/articles/709374/

Inkscape - это безальтернативная бесплатная программа для векторного рисования

https://inkscape.org/
Даже 3D умеет
https://habr.com/ru/articles/722566/

Данный текст - это ликбез по электрическому столо-строению. Вероятно это поможет кому-нибудь не ошибиться с покупкой электрического стола или даже разработать свой вариант безальтернативного электрического стола.

Уж что-то верится с трудом.

Вместо LDO чипа 78M05 лучше бы поставить импульсный DC-DC преобразователь модели SA24403 (Silergy).

Это уменьшит нагрев.

Есть ли российские микросхемы драйверы Н мостов?

Или весь H мост собрать на одной L6203.

Программно решили делать защиту от КЗ?

А какой у Вас ASIC для драйвера H-моста?

Весь H-мост можно было бы сделать на трех компонентах. Два внешних N-канальных полевика и один драйвер на основе ASIC VNHD7008AY. Плата получилась бы компактнее, а схемотехника - проще.

Я — идеальный программист. Проблема лишь в том, что я не существую.

Вот более реалистичный портрет программиста. По крайней мере в программировании микроконтроллеров это так.

"Я выпускник приборостроительного факультета Павелбургского политеха в этой стране. Моя специальность создавать электронику. Я в универе учился в основном аналоговой и немножко цифровой схемотехнике. Каково же было мое удивление, когда после ВУЗа я вдруг узнал, что в электронике много микроконтроллеров и тут, оказывается, надо программировать. Признаться в универе я ненавидел программирование. Но тем не менее пару лекций по языку С запомнил. Это и является основой всех моих знаний. С тех пор прошло 15 лет.

И вот я прихожу на работу.

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


С какими технологиями я работаю?

В моём белом списке: Windows, PowerShell, IAR, C++, STM32 и SPL.

Мой основной набор технологий это STM32 и IDE IAR. Я понятия не имею как в принципе возможно программировать не STM и в не IDE IAR. Как я рад, что в этой кракожской организации у нас по технологиям получился match.

В проектах на STM32 я пишу аппаратный код прямо через регистры CMSIS. Я лучше буду использовать SPL чем HAL. SPL проще в понимании, а значит и лучше.

В моём черном списке Linux, Eclipce, assembler, HAL Drivers.

Я что-то слышал про GCC, makefile, CMake, MISRA, Utest, Bootloader, FreeRTOS, Zephyr RTOS, GIT, CI/CD , Jenkins, AUTOSAR, UART-CLI, TDD но меня это никогда не интересовало и это я всё это не знаю и знать не хочу! Вообще я ежедневно вижу много аббревиатур, однако понятия не имею как расшифровываются 95% из них.

Вообще я испытываю средневековый страх перед компьютерами. Боюсь нажать не на ту кнопку и сломать что-нибудь.

Как я работаю с железками?

Схемотехнику я не смотрю. У меня её даже нет на компьютере. Я лучше пойду у схемотехников спрошу, где там на разъёме нужные мне пины, чем сам в этом стану разобраться. Понимаете, я работаю на более высоком уровне! Вот! Когда мне дают в руки электронную плату с 2мя микросхемами, то я спрашиваю у схемотехника: "А где здесь микроконтроллер?"

Если меня просят прислать фото электронное платы, то я делаю фото платы только с одной стороны. Причем с той стороны на которой меньше всего микросхем.

Я никогда не смотрю схемотехнику PCB. У меня даже нет её на компьютере. Это ниже моего достоинства. Я же программист, а не схемотехник там какой-то.

Даташиты я тоже не читаю и не скачиваю. Я обычно скачиваю архив с примерами настроенного проекта от производителя и ковыряю его пока что-то не заработает.

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

Я никогда не ношу с собой USB-Flash(ку). Если мне надо сделать скриншот с экрана осциллографа или распечатать файл на принтере с Flash(ки), то я буду бегать по офису и выпрашивать личные Flash(ки) своих коллег.

Как я пишу код?

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

Я всю программу пишу в одном лишь только main.c файле. Нас так учили в институте на лабах по Arduino. Ведь это так просто, когда весь код в одном файле! Моя самая любимая методология программирования это так называемое стихийное программирование.

Девизом моего рабочего процесса может быть одно слово. "ковыряться".

--Я люблю программировать под музыку. Особенно тяжелый рок. Мне это нисколько не мешает сосредотачиваться на алгоритмах и структурах данных.

--Всё исходники я фигачу в одну папку и примерно в один файл. Драйверы микросхем, компоненты всё-всё в кучу. Называется эта чудо-папка utils. Только я один буду знать как с этим работать и буду незаменимым сотрудником в этой кракожской организации.

--Я не использую заголовочные файлы. Мне лень. Я всегда вставляю переменные, массивы через extern. Это тоже работает.

--Я сначала использую функции, а потом их объявляю ниже в файле. Список прототипов функций в начале *.с файла ведь есть.

--Я обожаю делать заборы из комментариев в программе.  Вот так:

///////////////////////////////////////////////////////////////////////////////////

/*****************Some text*****************************************/

Это напоминает мне домик в деревне.

--Обожаю большие функции по 1000...7000 строк. Пополняю их регулярно. Я даже второй монитор повернул вертикально. У меня у одного в офисе вертикальный монитор.

--Я люблю магические циферки. Это быстро, компактно.

--При инициализации периферии I2C SPI я конфигурирую только 20% от всех настроек.

--Я пишу макро функции маленькими буквами. Мне просто лень перепечатывать макросы заглавными буквами. И так ведь работает.

--Мне плевать на отступы в коде. Я пишу в одну строчку или в стиле маяковский. Треугольные функции из бесконечных if(ов) уходящую в соседнюю комнату. Не зря же я учил литературу в школе.

--Иногда я всё таки делаю .h файлы и создаю отдельную папку для include файлов и отдельную папку для .c файлов специально, чтобы коллегам было труднее разобраться в моей папке с проектом.

Я умею пошагово отлаживать код только из-под IDE. В IDE есть пошаговая отладка. Она стала для меня как наркотик. Я даже не использую светодиоды на борде, чтобы показывать, что код исполняется.

Я умею разрабатывать прошивки только на основе примеров. Как по мне MCU это коробочка которая исполняет С код. Я не создаю репозитория, а фигачу прямо в папке с SDK от производителя микроконтроллера. А когда надо передать сорцы другому разработчику, то я прошу его принести флешку гигабайт на 16+ и скопирую корень SDK ему на флеху. Или отправляю этот много гигабайтный *.zip архив по e-mail почте.

Я умеет собирать код только из-под IDE. Для меня не существует ничего вне и за пределом IDE. Я вижу только то, что в радиусе 2-3х сантиметров вокруг да около курсора. Я не представляю как можно работать за компьютером без мышки и курсора. Слышал что кто-то говорил про какой-то CLI и скрипты. Это всё старперы. Я же современный кракожский специалист поэтому я за IDE. Я за VS Code. Причем окно IDE я даже не раскрываю на весь экран. Оно у меня занимает всего только 60% экрана, а рядом работает музыкальный плеер чтобы было нескучно писать код.

Боже упаси хоть раз открыть какую-нибудь консоль. Я на современном уровне. Мой уровень это IDE и GUI. Я достоин этого. Работать в CLI это ниже моего достоинства.

Я видел в папке с проектом какие-то .ld .obj файлы но не понимаю зачем они нужны. Самое главное это .с и .h файлики. Остальное не важно.

Я не знаю, что такое программные тест. Слышал как-то но никогда этим не интересовался. Я отличный многоопытный программист и код пишу без ошибок.

Как я составляю документацию.

Когда меня просят нарисовать блок-схему модуля, платы, стенда, то я открываю крякнутый MS Visio и рисую внутри схему с градиентами, тенью стразиками и прочей ерундой не имеющей прямого отношения к сути прибора. Зато потом всё смотрится дорого и богато.

Мои принципы общения с коллегами:

Мои коллеги идиоты! Все идиоты! Один я всё знаю! Если коллега попросит меня какой-то программный компонент, который я уже делал ранее (например функцию расчета crc8), то я ему напишу в ответ, что "не дам!". Это моя интеллектуальная собственность! Вот. Пусть сам делает свою реализацию fifo, swap, crc32, RTC.

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

Я никогда не делал публикаций и ничего не постил в ленту на habr.com. Я ни за что не поделюсь своими огромными знаниями. Это всё мое конкурентное преимущество! Зачем мне делиться знаниями? Сколько мне за это заплатят? Когда у меня появится свободное время я лучше посмотрю очередной сериал, чем писать пост в каком-то сообществе. Да и при этом мне очень трудно излагать свои мысли техническим языком. Что устно, что письменно. Помню была однажды планерка, дак я и 2х предложений толком связать не смог. Зато знание разнообразной матершины - это богатство и могущество моего кракожского языка.

Я толком не знаю инженерного языка. Я использую такие слова как "присобачить", "штуковина", "пи****ки", "глюган", "фи***ина", "фитча", "затык" и прочее.

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

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

Я люблю когда мне объясняют одно и тоже по 2 по 3 раза. Так я осознаю свою значимость.

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

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

Мной напарник рекомендовал мне освоить утилиту grep. Но я не хочу пользоваться всяким старьём. Я лучше буду подходить и спрашивать в каком файле находится функция void swap16(uint16_t,uint16_t).

Кстати, по-поводу ходьбы. Я обычно ухожу с работы ровно в 18:01.

Мой досуг

В свободное время я ничего не учу а выбираю куда бы в очередной раз спутешествовать. Когда мне надо делать визу, то я прихожу в офис чтобы просто отметиться в СКУД(е), а дальше иду по своим делам. Ведь мне же надо сделать путевку на очередной курорт. Надо же потом похвастаться перед коллегами фотками из отпуска. Чтобы завидовали.

Я не знаю, что такое программные тест. Слышал как-то, но никогда этим не интересовался. Я отличный многоопытный программист и код пишу без ошибок.

Тем более, что изделие в нашей организации потом подвергнут православному благословению значит все будет хо-ро-шо.

Надеюсь, что никто из читающих в этом тексте не узнал ни себя ни своих коллег.

Вся суть моего текста в том, чтобы сделать быстрый медианный фильтр именно на чистом Си. Не на С++.
Чтобы можно было портировать алгоритм на микроконтроллеры.

В той же Tesla S, около 200 ECU, и ни в одном из них нет UART, все делается только по CAN и совсем они там от этого не страдают. Model 3 и Supercharger тоже на CAN.

Никто не мешает вам гонять текстовые команды CLI по CAN.
Надо только предварительно в прошивке ISO-TP поднять.
https://habr.com/ru/articles/798489/

Information

Rating
71-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers