FreeTech – производственная компания, которая разрабатывает и внедряет решения для автоматизации и мониторинга инженерных систем. Мы создаем собственные программно-аппаратные устройства для объектов разного масштаба: от инженерного оборудования зданий и коммерческого холода до промышленных технологических процессов.
Наши устройства уже работают на реальных объектах: собирают данные с полевых датчиков, взаимодействуют с исполнительными механизмами, обмениваются данными по промышленным интерфейсам и помогают обеспечивать надежную работу инженерной инфраструктуры.
Сейчас мы ищем Embedded-разработчика для развития встроенного ПО устройств на базе микроконтроллеров STM32.
В этой роли вы будете заниматься низкоуровневой разработкой, интеграцией с периферией микроконтроллеров, реализацией протоколов обмена, настройкой интерфейсов связи, работой с датчиками и отладкой устройств на стендах и реальных объектах.
Система находится в промышленной эксплуатации, поэтому задачи будут связаны не только с разработкой нового функционала, но и с поддержкой, доработкой и повышением надежности уже работающих устройств.
Задачи
•Разработка встроенного ПО для устройств на базе микроконтроллеров STM32.
•Настройка и использование периферии микроконтроллеров: GPIO, ADC, DAC, UART, SPI, I2C, timers, watchdog, DMA, PWM, CAN.
•Реализация логики сбора, обработки и фильтрации данных с датчиков.
•Работа с промышленными интерфейсами связи: CAN и RS-485.
•Реализация и поддержка протоколов обмена с оборудованием и верхним уровнем.
•Разработка ПО для устройств автоматизации, мониторинга и управления инженерными системами.
•Интеграция устройств с датчиками, исполнительными механизмами, контроллерами и внешними модулями.
•Отладка встроенного ПО на аппаратных стендах, макетах и опытных образцах.
•Поиск и устранение проблем, связанных с обменом данными, электромагнитными помехами, нестабильной связью, сбоями питания и некорректной работой периферии.
•Разработка тестового ПО для проверки аппаратной части новых устройств: периферии микроконтроллера, интерфейсов CAN/RS-485, входов/выходов и взаимодействия с датчиками.
•Взаимодействие с инженерами-схемотехниками, разработчиками верхнего уровня и специалистами по внедрению.
•Поддержка существующей кодовой базы, рефакторинг, оптимизация и повышение надежности ПО.
•Подготовка технической документации по реализованным функциям, протоколам и настройкам устройств.
Требования
•Опыт разработки встроенного ПО от 3 лет.
•Уверенное знание C для микроконтроллеров.
•Опыт разработки под микроконтроллеры семейства STM32 с использованием CMSIS и HAL.
•Понимание архитектуры микроконтроллеров ARM Cortex-M.
•Опыт работы с периферией STM32: UART, SPI, I2C, ADC, PWM, timers, DMA, GPIO, watchdog, interrupts.
•Практический опыт работы с промышленными интерфейсами CAN и RS-485.
•Опыт работы с Modbus RTU поверх RS-485.
•Понимание особенностей обмена данными с полевыми датчиками и исполнительными устройствами.
•Опыт работы с Keil uVision, STM32CubeMX / MX Code, VS Code + GCC / arm-none-eabi-gcc.
•Навыки чтения электрических схем и понимание взаимодействия ПО с аппаратной частью устройства.
•Опыт поиска аппаратно-программных ошибок: инициализация периферии, тайминги, прерывания, обмен по шинам, ошибки связи, зависания устройства.
•Понимание принципов надежного embedded-ПО: обработка ошибок, watchdog, контроль состояний, восстановление после сбоев.
•Опыт работы с Git.
Будет плюсом
•Опыт работы с FreeRTOS или другими RTOS.
•Опыт реализации или поддержки протоколов Modbus RTU, CANopen, собственных бинарных протоколов и протоколов обмена со сторонним оборудованием.
•Опыт интеграции стороннего оборудования по документации производителя: карты регистров, команды обмена, нестандартное поведение устройств, диагностика ошибок связи.
•Опыт разработки bootloader, механизмов обновления прошивки и хранения настроек во Flash.
•Опыт работы с энергонезависимой памятью: internal Flash, EEPROM, external Flash.
•Опыт работы с модульными или расширяемыми системами.
•Опыт разработки ПО для серийных устройств, находящихся в эксплуатации.
•Опыт разработки устройств для автоматизации, диспетчеризации, мониторинга или промышленного оборудования.
•Опыт диагностики проблем на реальных объектах автоматизации.
•Понимание основ промышленной автоматики: датчики, исполнительные механизмы, шкафы управления, контроллеры, телеметрия, аварии, дискретные и аналоговые сигналы.
•Опыт разработки тестового ПО, стендов или утилит для проверки устройств.
•Базовое понимание схемотехники, питания, развязок интерфейсов, согласования линий RS-485/CAN.
•Опыт работы с CI/CD для embedded-проектов, автоматической сборкой прошивок и статическим анализом кода.
•Опыт работы с Python для вспомогательных скриптов, тестирования или автоматизации сборки.
Технологический стек
Микроконтроллеры
Языки
Интерфейсы и периферия
•CAN
•RS-485
•UART
•SPI
•I2C
•ADC
•GPIO
•timers
•PWM
•DMA
•watchdog
Среды и инструменты разработки
•Keil uVision
•STM32CubeMX / MX Code
•VS Code
•GCC / arm-none-eabi-gcc
•STM32CubeProgrammer
•ST-Link
•DAP-Link
•OpenOCD
Отладка и диагностика
•JTAG/SWD
•ST-Link
•DAP-Link
•логический анализатор
•CAN/RS-485 анализаторы
•терминальные утилиты
Системы контроля версий
Что мы предлагаем
•Работу над собственными устройствами для автоматизации и мониторинга инженерных систем.
•Участие в полном цикле разработки: от запуска платы и написания прошивки до испытаний и эксплуатации на объектах.
•Возможность влиять на технические решения по устройствам.
•Официальное трудоустройство по ТК РФ.
•Стабильную своевременную заработную плату, выплаты 2 раза в месяц.
•Уровень заработной платы обсуждается по результатам собеседования и зависит от опыта и технического уровня кандидата.
•Профессиональный рост внутри embedded-направления.
•Команду, в которой embedded-разработка напрямую связана с реальными промышленными задачами, оборудованием и эксплуатацией.
•Гибридный формат работы: офис / работа из дома, с учетом необходимости периодической работы с оборудованием и стендами.