stm8l программный IIC (I2C)

Часто возникает необходимость подключить к микроконтроллеру какой-нибудь датчик по протоколу I2C. Для этого можно использовать встроенный I2C микроконтроллера или написать свой, программный. Для начала надо ознакомиться с теорией. Теория очень подробно описана тут. Ознакомившись с теорией, переходим к практике. Для микроконтроллера STM8L152C6T6 напишем простой пример, когда на шине находится один master. Пример будет для IAR.

Читать дальше

Как получить актуальное время от GSM модуля, даже если оператор его не дает

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


Читать дальше

Захват изображения с USB камеры при помощи STM32

image
Для собственного самообразования решил подключить USB камеру (вебкамеру) к STM32. У меня уже была отладочная плата на базе STM324F429, способная выводить изображение на VGA монитор, так что для проверки работы камеры я использовал именно ее.


Читать дальше
  • +9
  • 29 сентября 2018, 22:18
  • citizen

Руководство по проектированию устройств с операционными усилителями. Впервые на русском языке!

Уважаемые коллеги!
Мы начали публиковать на сайте compel.ru переводы глав мегаполезного руководства, посвященного практическим аспектам и особенностям проектирования электроники с использованием операционных усилителей. Автор материалов — Брюс Трамп, инженер-разработчик из Texas Instruments с тридцатилетним стажем, успевший поработать в легендарной компании Burr-Brown.

Всего Брюсом написана 31 глава по данной теме. Мы перевели и опубликовали первые 10 (список может дополняться):

1. Диапазоны входных и выходных рабочих напряжений ОУ. Устраняем путаницу

2. Что нужно знать о входах rail-to-rail

3. Работа с напряжениями близкими к земле: случай однополярного питания.

4. Напряжение смещения и коэффициент усиления с разомкнутым контуром обратной связи — двоюродные братья.

5. SPICE-моделирование напряжения смещения: как определить чувствительность схемы к напряжению смещения.

6. Где выводы подстройки? Некоторые особенности выводов коррекции напряжения смещения.

7. Входной импеданс против входного тока смещения

8. Входной ток смещения КМОП- и JFET-усилителей

9. Температурная зависимость входного тока смещения и случайный вопрос на засыпку

10. Использование входных резисторов для устранения входного тока смещения. Действительно ли они нужны?

11. Встроенная схема компенсации токов смещения в ОУ с биполярными входами

12. Почему в схемах с ОУ возникают колебания: интуитивный взгляд на две наиболее частые причины

13. Приручаем нестабильный ОУ

14. Приручаем колебания: проблемы с емкостной нагрузкой

15. SPICE-моделирование устойчивости ОУ

16. Входная емкость: синфазная? дифференциальная? или…?

17. Операционные усилители: с внутренней компенсацией и декомпенсированные.

18. Инвертирующий усилитель с G = -0,1: является ли он неустойчивым?

19. Моделирование полосы усиления: базовая модель ОУ

20. Ограничение скорости нарастания выходного сигнала ОУ

21. Время установления: взгляд на форму сигнала

22. Шум резисторов: обзор основных понятий.

23. Шумы операционного усилителя: неинвертирующая схема

24. Шумы ОУ: как насчет резисторов обратной связи?

25. Шумы ОУ: 1/f-шум: фликкер-шум

26. Шум резисторов: обзор основных понятий

27. Развязывающие конденсаторы: они нужны, но зачем?

28. Неиспользуемые операционные усилители: что с ними делать?

29. Защита входов от перенапряжений

30. Могут ли дифференциальные ограничительные диоды на входе ОУ влиять на его работу?

Если материалы оказались полезными для вас — подпишитесь на обновления этого замечательного руководства, чтобы как можно быстрее начать использовать тайные приемы и хитрости опытного разработчика в своей работе.
  • +5
  • 02 сентября 2018, 21:14
  • DIHALT

Таймеры и задержки: сборник рецептов

AVR
Увидел в статье DI HALT "Простой программный таймер для конечных автоматов" некий кусок кода и решил накатать статью…

bool MainTimerIsExpired(const uint32_t Timer)                      // ???
{                                                                  // ???
   if ((TimeMs - Timer) < (1UL << 31)) return (Timer <= TimeMs);   // ???
   return false;                                                   // ???
}                                                                  // ???

Сначала писал длинно, с приколами и разжевыванием, но мне не понравилось и в итоге убрал в черновики. Решил переоформить как краткий сборник рецептов.


Читать дальше

Простенький PWM

В общем появилась потребность но финансирования нет.
Регулятор оборотов на маленькую сверлилку.
Идея выглядела вот так:

Основная идея таймер и силовой ключ. Никаких микроконтроллеров и максимальное упрощение конструкции из доступных материалов.


Читать дальше

Complementary PWM и Push-Pull режимы на таймере 1 контроллеров STM32

Это скорее не статья, а развернутый ответ на сомнения моего уважаемого коллеги Lifelover 'а, которые он выражал в этом обсуждении относительно возможности реализации некоторых режимов ШИМ на таймерах контроллеров серии STM32.



Читать дальше
  • +5
  • 07 января 2018, 16:13
  • _YS_

Коммутация нагрузок переменного тока

Доброго времени суток.

Речь пойдёт о коммутации нагрузок переменного тока.



Читать дальше

STM32CubeMX start code -> Eclipse быстрый старт -> отладка в Eclipse через ST-Link Discovery

Наверное в инете есть сотни статей с подобной темой. Но, так как тема относится к опенсорсу, — никто не гарантирует результат. Результат-то как правило бывает, но обычно, вначале, лишь частичный. Что-то, как правило, не работает нормально. Глючит. Пугает кучей ошибок и варнингов. Основная тема, лейтмотив опенсорса, — поиск ответа на вопрос «почему не так работает?». В этот момент начинаешь понимать, почему за готовую к работе, из коробки, IDE — просят денюшку, и немаленькую.
Когда начинал знакомится с микроконтроллерами, ограничение кода в 32 кБ казались такими недосягаемыми, а в современное время одно подключение какой-либо библиотеки может съесть значительную часть лимита кода, а ещё хочется и ВЭБ интерфейс к соей домашней поделке приделать, а недавно решил «пощупать» библиотеку libMAD, так код вообще сразу выскочил за 120 кБ…

Основная задача — допилить Eclipse до такого состояния, когда внутри будет весь цикл, от написания кода до отладки. Для генерации начального кода очень хотелось использовать STM32CubeMX, так как кроме свежих библиотек HAL имеется поддержка современной версии CMSIS, уже интегрированная FreeRTOS (в составе куба идет порт FreeRTOS, сделанный по правилам нового CMSIS v3.20), и много других «вкусняшек», а используемая среда Eclipse, не накладывает ограничения на размер кода, да и просто имхо удобней.
У меня получилось. Конечно есть в отладчике Keil'a фишки, которые больше нигде не повторяются. Да и в используемом отладчике OpenOCD реализованы не все функции, которыми может похвастаться Eclipse, но это плата за простоту установки и настройки. Полученным результатом оказался доволен. Во время поиска приемлемого варианта установки, подбора плагинов и других компонентов возникла необходимость сохранить результаты проделанной работы. В основном — что бы не забыть.

Условно всю работу можно разбить на 3 части:
  • Установка и настройка Eclipse.
  • Генерация начального кода проекта в STM32CubeMX и адаптация проекта для использования в Eclipse.
  • Настройка отладки и отладка созданного проекта в Eclipse.

Если Вам интересно — читаем дальше.


Читать дальше

Производительность FPU Cortex-M4

Нигде не нашел информации о количество мегафлопсов у Cortex-M4 c аппаратной плавающей точкой. Сделал свой тест используя stm32f4discovery и кусочек кода фильтра Калмана для двигателя.


Читать дальше