Embedded & Электроника: LIVE
138 subscribers
41 photos
2 videos
2 files
33 links
Канал о профессиональной разработке электроники
Download Telegram
Заключительная статья и готовый код библиотеки для STM32: Использование датчиков температуры DS18B20. Подробности, примеры, секреты, приемы https://ipasoft.info/index.php/articles/datchiki-temperatury-ds18b20-chast-3-pishem-biblioteku-na-si
Подключение KSZ8863 к STM32. В статье я предоставляю 100% рабочие схему и исходные коды для STM32F4x7 для работы в связке STM32 + KSZ8863RLLI + HAL + LwIP.
https://ipasoft.info/index.php/articles/ksz8863-stm32-lwip-svyazka-primer
Микросхема KSZ8863 от Microchip - двухпортовый PHY контроллер Ethernet'а. Умеет работать как standalone сетевой коммутатор 10/100 Мб. Современный, быстрый, надежный чип. Меня особенно привлекло то, что в нем есть функция MDI-X, это когда контроллер автоматически распознает, какой патч-корд к нему подключили, прямой или кроссовер. Он автоматически переворачивает пары TX/RX под любой кабель.
👍2
Обновлена статья "Почему сбивается дата и календарь STM32F103?" Здесь разбирается проблема вообще всех микроконтроллеров STM32F10x со старой версией периферии RTC. Проблема такая "ты не можешь на HAL'е нормально пользоваться часами реального времени. При отключении питания слетает дата!!!". ПРОБЛЕМА РЕШЕНА (давно и не мной). В статье представлена готовая рабочая библиотека (моя) с примером использования. https://ipasoft.info/index.php/articles/pochemu-sbivaetsya-data-i-kalendar-stm32f103
👍4
Номенклатура именования МК STM32 (и их клонов)
🔥1
Программа-калькулятор делителя напряжения для обратной связи DC/DC предназначена для быстрого подбора резисторов для обратной связи понижающих и повышающих источников питания. Ввиду того, что импеданс цепи Feedback современных DC/DC достаточно высок, мы рассматриваем номиналы 1k и выше.
Программа рассчитывает все возможные номиналы резисторов для делителя напряжения. Полученные расчеты затем сортируются по наилучшему результату. Главная фишка этого ПО - не предлагать экзотические номиналы, а только стандартный ряд номиналов резисторов.
Данная программа написана на Java, а исполняемый JAR файл запустится в операционных системах: Windows, Linux, OSX. Только нужен Java Runtime Environment 1.8+
Страница программы https://ipasoft.info/index.php/soft/kalkulyator-delitelya-napryazheniya-dlya-dc-dc
🔥1
Сегодня существует огромное множество нелинейных сопротивлений, предназначенных для измерения температуры. Самыми популярными из них являются NTC термисторы на 10 кОм. В статье я описываю способ измерения температуры любого NTC термистора с любым номинальным сопротивлением при помощи одного АЦП микроконтроллера. Предоставляю готовый код функции на Си.
https://ipasoft.info/index.php/articles/izmerenie-temperatury-pri-pomoshchi-ntc-termistora
👍2
Программирование ESP8266 с RTOS SDK. Часть первая - инструменты
В интернете вы можете найти 1001 статью про разработку программ для микроконтроллеров ESP8266EX. Большинство из них рассчитаны на Arduino разработчиков. По некоторым причинам, кого-то (и меня в том числе) не устраивает разработка в среде Arduino ввиду отсутствия необходимой гибкости. И только очень небольшой процент гайдов рассчитан на разработку с помощью официального SDK от Exressif в IDE Eclipse. В данной статье речь пойдет о программировании ESP8266 под управлением операционной системы Windows, с помощью кросскомпилятора GCC и RTOS SDK, которые изначально были созданы для Linux разработчиков. В качестве IDE мы будем использовать Visual Studio 2019+ и VisualGDB 6+.
https://ipasoft.info/index.php/articles/programmirovanie-esp8266-s-rtos-sdk-chast-pervaya-instrumenty
🔥3
Относительно давно китайская компания Titan Micro Electronics (Шэньчжэнь) начала выпускать довольно полезный ASIC TM1650. Он содержит в себе драйвер 7 сегментного LED дисплея на 4 разряда, подключается к микроконтроллеру по I2C. Вроде бы ничего необычного? А еще к нему можно подключить до 28 кнопок. Наверное большущий он? А вот и нет, всего-то 16 ножек (SOIC-16 150mil). Что по цене? Все на картинках.
А еще у него есть аналог FD650S, его делают тоже китайцы Fuda Hisi Microelectronics.
А еще на гитхабе есть исходники библиотеки для работы с ИМС. https://github.com/arkhipenko/TM1650/blob/master/src/TM1650.h
🔥2👍1
У производителей плат существует требование: делать отступ от края платы до меди как минимум 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