Embedded & Электроника: LIVE
138 subscribers
41 photos
2 videos
2 files
33 links
Канал о профессиональной разработке электроники
Download Telegram
У производителей плат существует требование: делать отступ от края платы до меди как минимум 0.5мм. Для тех, кто работает в имперской метрической системе это 1/50 дюйма или 0.508мм. Если от внешнего края отступ мы легко задаем через Board outline clearance, то с внутренними отступами все немного сложнее. Несколько лет назад я выработал правило, которым пользуюсь по сей день, забирайте!
👍3
Стартовал цикл публикаций "CMSIS STM32" посвященный разработке супер быстрых, супер маленьких программ для STM32 на низком уровне. Для тех, кто пользуется HAL'ом очень давно и так же давно не до конца понимает, что происходит. https://ipasoft.info/index.php/articles/cmsis-stm32-urok-1-sozdanie-proekta
👍4
CMSIS STM32 Урок 2. Система тактирования https://ipasoft.info/index.php/articles/cmsis-stm32-urok-2-sistema-taktirovaniya
Когда вы работали с STM32 CubeMX вы быстро выставляли мышкой источник тактирования, выбирали делители для шин. Осмелюсь предположить, что вы могли тупо задать частоту HCLK и позволить кубу самостоятельно настроить за вас систему тактирования! Куб очень полезный и очень опасный инструмент, без него начинает казаться, что тактирование ручками настроить вообще не реально. Но это не так и вы в этом убедитесь, конечно же...
👍4
CMSIS STM32 Урок 3. Работа с GPIO https://ipasoft.info/index.php/articles/cmsis-stm32-urok-3-rabota-s-gpio
В этом уроке вы узнаете как настраивать порты ввода-вывода (General I/O Ports, GPIO) для написания супер быстрого и супер маленького кода. Научитесь устанавливать состояние выходов и читать состояние входов. А еще узнаете, как настроить все GPIO очень быстро и без ошибок. Используйте мои уроки для того, чтобы понимать, что вы делаете. Не отказывайтесь от CubeMX полностью. Он будет помогать вам сделать разработку еще быстрее. А знания разработки под CMSIS помогут сделать быстрее ваши программы.
👍2
CMSIS STM32 Урок 4. Использование системного таймера SysTick
https://ipasoft.info/index.php/articles/cmsis-stm32-urok-4-ispolzovanie-sistemnogo-tajmera-systick
Помимо таймеров общего назначения, о которых я расскажу немного позже, в микроконтроллерах STM32 существует еще и таймер SysTick. Этот таймер уже встроен в ядро Cortex M3 и он может отсчитывать произвольное количество тактов и формировать прерывание по факту окончания счета. Так, например, если ядро работает на частоте 64 МГц, а значение Reload регистра 64000, то 1000 раз в секунду SysTick будет обнуляться. Счетный регистр 24-битный, это значит, что можно отсчитывать и достаточно большие интервалы времени, например, 100 мс (Reload reg = 6 400 000). Таймер очень удобен для формирования неблокирующих задержек. Даже в HAL'е он активно используется для отсчета задержек HAL_Delay(). Любопытный факт: ни в Datasheet, ни в Reference Manual для своего STM32 вы не найдете информацию по работе с SysTick. А здесь найдете!
🔥2
CMSIS STM32 Урок 5. Работа с UART https://ipasoft.info/index.php/articles/cmsis-stm32-urok-5-rabota-s-uart
Старый добрый UART, сколько лет он уже существует? Только сама природа это помнит, тех древних мудрецов, которые упаковывали сообщения в асинхронные пакеты и отправляли по гудящим столбам сквозь пространство и время... И вот этот интерфейс дожил до наших дней, и, кстати, никуда уходить не собирается. Внутри STM32 уже есть периферия для работы с портами UART во всевозможных режимах, на разных скоростях. Моя задача - показать, насколько просто и экономично можно программировать этот интерфейс. Вооружайтесь до зубов USB свистками UART, это будет увлекательное путешествие...
👍3
Если кто-то не знал, телеграм поддерживает Markdown и круто подсвечивает синтаксис. Нужно лишь в конце написать, что за язык используете. java, c, python, sql и т.п.

// Вернуть температуру ядра в градусах Цельсия
int16_t GetCoreTemperature(uint16_t adc) { //722
int32_t vSense = (vdda * (uint32_t)adc) / 4095U; // напряжение на канале измерения температуры
int16_t Temperature = (((1430U - vSense) * 1000U) / 4300U) + 25U;
return Temperature;
}
👍4
CMSIS STM32 Урок 6. Работа с шиной I2C в режиме Master
Это синхронная шина обмена данными в которой присутствует один Master (ведущий) и от одного до нескольких Slave (ведомых). Соединены все по трем проводам GND, SDA (данные), SCL (тактирование).
Конфигурирование периферии I2C начинается с разрешения ее тактирования, затем нужно настроить GPIO, к которым будет подключена I2C. В примере ниже, I2C1 расположена на PB7 (SDA) и PB6 (SCL). Оба этих пина настраиваются как Alternate output Open-Drain (CNF=11, MODE=11).
Далее я приведу пример настройки интерфейса I2C в режиме мастера на скорости 100 кГц. Данный режим будет использоваться мной для работы с EEPROM памятью серии 24Сxx.
https://ipasoft.info/index.php/articles/cmsis-stm32-urok-6-rabota-s-shinoj-i2c-v-rezhime-master
👍5
Огромный архив продуктов STMicroelectronics для STM32 (свежайшие кубы и библиотеки). Качайте пока есть https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
👍8
Как мы прошивали Attiny10
Казалось бы, что может быть знакомее старой доброй AVR? Она на начало 2025-го настолько уже мне была неинтересна, что я даже не подозревал как сильно она мне понадобится. А еще, меня обескуражило то, как это непросто и нетривиально: работать с ATTINY10. Эта история для вас будет поучительной, потому что задача решена и остается лишь взять наш опыт на вооружение. Здесь нет никаких революционных открытий, но все же я делаю упор на предоставление расширенной информации. То что мне не удавалось прочитать "между строк" где-то в одном месте, но пришлось собирать информацию по сети, проверять и конечно - делиться!
https://ipasoft.info/index.php/articles/kak-my-proshivali-attiny10
👍4👎1
Опубликован новый урок Базовая работа с ШИМ на CMSIS STM32 https://ipasoft.info/index.php/articles/cmsis-stm32-urok-7-rabota-s-shim-bazovaya
Широтно-импульсная модуляция в микроконтроллерах STM32F1 реализована через таймеры общего назначения TIM1, TIM2, TIM3. К каждому из этих таймеров можно «подцепить» до четырех выходных каналов. Принцип работы ШИМ (в режиме №1) очень прост:
Частота меандра на выходе зависит от периода счета, а скважность импульсов зависит от значения Capture-compare регистра.
В этом уроке мы задействуем аж 7 каналов ШИМ на разных таймерах..
👍5👎1🔥1
Всем, кто пользуется Keil MDK ARM, моя коллекция паков https://cloud.as.life/s/9aabCC4qkSWMRzx
🔥4👍3👎1
Опубликован новый урок "CMSIS STM32. Использование АЦП" https://ipasoft.info/index.php/articles/cmsis-stm32-urok-8-ispolzovanie-atsp-bazovoe
..АЦП не может замерять напряжение на нескольких каналах одновременно. Между АЦП и каналами стоит мультиплексор, который может захватывать только один из десяти возможных каналов. Однако если измерять каналы быстро по очереди, то можно создать эффект параллельности измерений. Эффективно и достаточно точно значения измеряются при меньшей частоте работы АЦП и большем Sampleticks. Более-менее сносно можно делать около 18000 замеров (выборок) в секунду. Минимальное время выборки для 12-битного режима - 1 мкс (то есть до 1000000 выборок в секунду при тактовой частоте АЦП 14 МГц).
В этом уроке мы будем пользоваться АЦП STM32F103 в самом простом режиме — одиночной конверсии. Это когда за одно преобразование мы обрабатываем только один канал. В этом уроке я покажу неблокирующую работу с АЦП (без прерываний) на разных каналах.
👍4👎1🔥1
Как разрабатывать прошивки на STM32 в 2025 году https://ipasoft.info/index.php/articles/kak-razrabatyvat-proshivki-na-stm32-v-2025-godu
Когда вы давно занимаетесь разработкой прошивок и у вас сформировался некий костяк инструментария, то вы наверняка снабдили себя всеми необходимыми программами, или по крайней мере, знаете как снабдить. А если вы только что планируете освоить STM32, то совсем неочевидно как собрать весь софт для работы с нуля и как заставить его работать. Тут и там пишут, "чтобы скачать это, перейдите на страницу официального сайта и зарегистрируйтесь.." И тут, начинается настоящий квест с обходом блокировок, невозможностью обновлений репозитариев. Когда у вас нет людей, у которых вы можете что-то спросить, вы буквально вынуждены бросить любое обучение и дожидаться лучших времен. Однако я немножечко всем помогу, прямо в этой статье, расскажу куда идти, что качать. Этого хватит для учебы. На первое время..
🔥3👍2👎1
CMSIS STM32 Урок 9. Использование IWDG https://ipasoft.info/index.php/articles/cmsis-stm32-urok-9-ispolzovanie-iwdg
«Не забывайте кормить собаку, иначе она начнет кусаться». В микроконтроллерах STM32 присутствует сторожевой таймер, так называемый Watch Dog. Полное название IWDG (Independent watchdog или независимый сторожевой таймер). Ваша программа должна то и дело обращаться к этому таймеру и пополнять его значение, это называется Feed Watchdog (покормить сторожевого пса), иначе контроллер перезапустится.
Ядро микроконтроллера тактируется одним из высокочастотных генераторов (HSI или HSE), часы реального времени тактируются низкочастотным генератором LSE, а сторожевой таймер тактируется независимым встроенным RC генератором на 40 кГц (LSI) через делитель частоты.
Это проверенная временем надежная система защиты устройства от зависания.
👍4👎1
CMSIS STM32 Урок 10. Установка защиты от чтения (RDP level 1)
Когда ваш проект вырос до стадии релиза, то возникает потребность защитить свои авторские права путем защиты прошивки от чтения и копирования. Можно полагаться на ручную установку защиты в программе ST-Link Utility, но и на "старуху бывает проруха" - кто-то забудет, кто-то пропустит. Рутинные операции могут стать причиной утечки ценных данных, что на рынке приравнивается к потерям прибыли. Поэтому можно автоматизировать процесс установки защиты.
Защита происходит так: программа при запуске проверяет, есть защита или нет, если ее нет, то она установится. И так первый запуск устройства автоматически защитит прошивку. https://ipasoft.info/index.php/articles/cmsis-stm32-urok-10-ustanovka-zashchity-ot-chteniya-rdp-level-1
🔥2
🤝🏼 Знакомство с CH32V003
В этой статье я хотел бы немножко рассказать о бюджетных микроконтроллерах серии CH32V003 с ядром RISC-V2A от Nanjing Qinheng Microelectronics Co., Ltd и о том, как я до них "докатился". Хоть статья и пишется в конце 2025 года, однако CH32V003 совсем не новинка. Еще в 2022 году мой коллега Марат уже что-то на них делал, а в 2023 мы с Евгением даже заказали несколько отладочных плат на Aliexpress. В те "голодные" годы (был кризис чипов), этот микроконтроллер был очень заманчивым, его стоимость была 24 рубля за полноценные 32 бита и богатство периферии! Так, для справки, в конце 2023 года цена на популярные STM32F030F4P6 подскочила до 130 рублей, а за STM32F407VET6 просили чуть больше 2000 руб.
Мы купили таки себе отладочные платы CH32V003F4P6 дабы освоить эти камни и дать миру много дешевых конкурентоспособных изделий.. Но не дали. Ни в 2023, ни в 2024. https://ipasoft.info/index.php/articles/znakomstvo-s-mikrokontrollerami-ch32v003
🔥3
Автоматическая нумерация версий прошивок
Нумерация версий компьютерного программного обеспечения указывает на изменения в продукте, и хотя единой схемы нет, чаще всего используются форматы с тремя или четырьмя числами: Мажорная.Минорная.Патч.
В таких средах разработки как Keil и ему подобных, для нумерации версий прошивок (сборок ПО) мы часто вписываем ручками определения, например:
#define FW_VER 0x0105 // Версия прошивки
#define FW_BUILD 0x2510 // Год и месяц сборки

И эта нумерация рутинная. Иногда даже пропускаешь этот момент. А в имени выходного файла вообще нет этой информации. Приходится потом так же ручками переименовывать myfirmware.hex в myfirmware_1.05_20251030.hex, чтобы передать его людям. 

Это решение для автоматизации нумерации версий и именования файлов прошивок на примере программы keil uVision. Для вас не составит труда адаптировать это решение для других сред (eclipse, IAR, etc.)
https://ipasoft.info/index.php/articles/avtomaticheskaya-numeratsiya-versij-proshivok
👍3
Создание устройства MERSON 24A2 таймлапс (ускоренное видео).
Кадры проектирования КД в Altium Designer.
Кратко о герое этого видео https://dev.ipasoft.info/doku.php?id=m24a2
Изделие произведено, испытано в полях и поставляется.
Страница на МП https://ozon.ru/t/ba3ovuq
Видео о том как создаются приборы. Интересен ли вам такой формат?
👍3🔥3