сайт для палких паяльників

Схеми і прошивки

Circuit Diagrams
Електронні схеми готових пристроїв
Электронные схемы готовых устройств

MP3 плеєр з послідовним портом UART. Модуль MP3 плеєра для підключення до мікроконтролера.
Приклад того, як можна за допомогою мікроконтролера і DFPlayer Mini голосом вимовляти числа в діапазоні від -9999 до 9999.

Бібліотека з прикладом для мікроконтролера STM32: https://github.com/avislab/STM32F103/tree/master/Example_DFPlayerMini

Option bytes, защита прошивки

Option bytes настраиваются разработчиком прошивки в зависимости от потребностей. Это несколько байт, в разных контроллеров их количество разное, с помощью которых можно установить некоторые настройки и защитить Flash от записи и чтения. Защитив нужные страницы Flash от записи, можно избежать ошибочного повреждения программы во время работы. Установка защиты от считывания делает невозможным считывание и копирование прошивки.

Читати далі

Эта статья на русском языке

Option bytes, захист прошивки

Option bytes налаштовуються розробником прошивки в залежності від потреб. Це декілька байтів, у різних контролерів їх кількість різна, за допомогою яких можна встановити деякі налаштування та захистити Flash від запису та зчитування. Захистивши потрібні сторінки Flash від запису, можна запобігти помилковому пошкодженню програми під час роботи. Встановлення захисту від зчитування робить неможливим зчитування та копіювання прошивки.

Читати далі

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

Читати далі

Эта статья на русском языке

Зниження енергоспоживання мікроконтролера частіше за все нас цікавить при розробці приладів, які живляться від акумуляторів чи батарей. STM32 дозволяє керувати власним енергоспоживанням. Перш, ніж ми навчимося застосовувати режими зниженого енергоспоживання, розглянемо, як організоване живлення мікроконтролера та загальні методи зниження енергоспоживання.

Читати далі

На тестовой плате STM32F103 есть microUSB разъем. И он служит не только для подачи питания. STM32F103 может работать с USB в качестве различных USB – устройств. Как USB HID устройство, в том числе как клавиатура или мышка, как виртуальный последовательный порт, USB Mass Storage, и тому подобное. Мы рассмотрим лишь пару примеров. В первом – компьютер будет воспринимать STM32F103 как виртуальный последовательный порт. Во втором примере STM32F103 эмитирует клавиатуру и мышку. STM32F103 будет двигать мышкой, (конечно на экране :), и эмитировать нажатие кнопок на клавиатуре.

Читати далі

Эта статья на русском языке

На тестовій платі STM32F103 маємо microUSB роз’єм. І він служить не тільки для подачі живлення. STM32F103 може працювати з USB у якості різних USB – пристроїв. Як USB HID пристрій, у тому числі – як клавіатура чи мишка, як віртуальний послідовний порт, USB Mass Storage, тощо. Ми розглянемо лише пару прикладів. У першому – комп’ютер буде сприймати STM32F103 як віртуальний послідовний порт. У другому прикладі STM32F103 емулюватиме клавіатуру і мишку.  STM32F103 буде рухати мишкою, (звісно на екрані :), та емулювати натискання кнопок на клавіатурі.

Читати далі

Високоточний датчик атмосферного тиску MS5611. Порівняння з BMP280.

Бібліотеки і приклади для STM32F103:
https://github.com/avislab/STM32F103/tree/master/Example_MS5611
https://github.com/avislab/STM32F103/tree/master/Example_BMP280

Дивись також:

В предыдущей статье мы рассмотрели работу STM32 с шиной I2C в качестве Мастера. То есть, он был ведущий и опрашивал датчик. Теперь сделаем так, чтобы STM32 был Slave-ом и отвечал на запросы, то есть сам работал как датчик. Мы выделим 255 байт памяти под регистры с адресами от 0 до 0xFF, и позволим Мастеру в них писать/читать. А чтобы пример был не таким простым, сделаем из нашего STM32, еще и аналого-цифровой преобразователь с интерфейсом I2C. ADC будет обрабатывать 8 каналов. Результаты преобразований контроллер будет отдавать Мастеру при чтении из регистров. Поскольку результат преобразования ADC занимает 12 бит, нам потребуется 2 регистра (2 байта) на каждый канал ADC.

Читати далі

Эта статья на русском языке

У попередній статті ми розглянули роботу STM32 з шиною I2C у якості Майстра. Тобто, він був ведучий і опитував сенсор. Тепер зробимо так, щоб STM32 був Slave-ом і відповідав на запити, тобто сам працював як сенсор. Ми виділимо 255 байт пам’яті під регістри з адресами від 0 до 0xFF, і дозволимо Майстру в них писати/читати. А щоб приклад був не таким примітивним, зробимо з нашого STM32, ще і аналого-цифровий перетворювач з інтерфейсом I2C. ADC буде обробляти 8 каналів. Результати перетворень контролер буде віддавати Майстру при читанні з регістрів. Оскільки результат перетворення ADC займає 12 біт, нам потрібно буде 2 регістра (2 байта) на кожний канал ADC.

Читати далі

Шина I2C достаточно популярна и очень много датчиков и различных устройств используют именно I2C. Я не буду писать кто, когда и для чего изобрел эту шину и как по ней бегают байты. Этой информации полно в Интернете, для этого существует Википедия. Когда Вы держите в руках сенсор и хотите как можно быстрее получить с него данные, и решить поставленную задачу, Вам хватит следующего минимума знаний:

  1. Шина I2C – это двухпроводная шина с линиями SCL, SDA. Теоретически, на одну шину I2C можно параллельно подключить до 112 устройств.
  2. Обе линии шины должны быть через резисторы подключенными к питанию. Рекомендуемый номинал резисторов зависит от скорости и других параметров шины. Обычно мало кто этим озадачивается и ставят резисторы в пределах от 4.7к до 10кОм. Резисторов должно быть по одному на каждую линию.
  3. Если Вы подключаете несколько модулей, а на каждом модуле уже впаяны подтягивающие резисторы, то получается, что резисторы включаются параллельно и их суммарное сопротивление становится меньше. Это не очень хорошо. Но, если вы включаете только два таких модуля и на каждом впаяны резисторы по 10 кОм, тогда суммарное сопротивление будет 5ком, что попадает в пределы допустимой нормы и шины I2C, скорее всего, будет работать. Но повторяю: подключать на каждую линию более одного резистора – не очень хорошая идея.
  4. Каждое устройство на шине I2C имеет отдельный адрес.
  5. На шине I2C может быть только один Master и один или несколько Slave.
  6. Скорость шины может быть разной. Обычно используют два стандарта 100 и 400 КГц. Скорость линии должна определяться по самому медленному устройства на шине. Если Slave не успевает, он может “придержать” шину и все его будут ждать. Такой подход, хотя и является стандартом, но на практике работает не всегда. В случае, когда Master не умеет ждать (этим, например страдают микрокомпьютеры), на шине начинается беспорядок. То есть, некорректная работа одного из устройств на шине I2C (не важно, в каком качестве – Master или Slave) может вызвать проблемы в работе всех устройств.
  7. Если напряжение питания контроллера отличается от напряжения питания датчика, они должны включаться через двунаправленную схему согласования логических уровней.

Читати далі

Эта статья на русском языке

Шина I2C досить популярна і дуже багато сенсорів та інших пристроїв використовують саме I2C. Я не буду писати хто, коли і для чого винайшов цю шину та як по ній бігають байти. Цієї інформації повно у Інтернеті, для цього існує Вікіпедія. Коли Ви тримаєте в руках сенсор і бажаєте якнайшвидше отримати з нього дані, та вирішити поставлену задачу, Вам вистачить наступного мінімуму знань:

  1. Шина I2C – це двопровідна шина з лініями SCL, SDA. Теоретично, на одну шину I2C можна паралельно підключити до 112 пристроїв.
  2. Обидві лінії шини мають бути через резистори підключеними до живлення. Рекомендований номінал резисторів залежить від швидкості та інших параметрів шини. Зазвичай мало хто з цим морочиться і ставлять резистори у межах від 4.7кОм до 10кОм. Резисторів має бути по одному на кожну лінію.
    Якщо Ви підключаєте декілька модулів, а на кожному модулі вже впаяні підтягуючі резистори, то виходить, що резистори вмикаються паралельно і їх сумарний опір стає меншим. Це не дуже добре. Та, якщо ви вмикаєте лише два таких модуля і на кожному впаяні резистори по 10 кОм, тоді сумарний опір буде 5КОм, що попадає у межі допустимої норми і шина I2C, скоріш за все, буде працювати. Але повторюю: чіпляти на кожну лінію більше одного резистора – не дуже гарна ідея.
  3. Кожен пристрій на шині I2C має окрему адресу.
  4. На шині I2C може бути лише один Master і один, або декілька Slave.
  5. Швидкість шини може бути різною. Зазвичай використовують два стандарти 100 і 400 КГц. Швидкість лінії має визначатися по самому повільному пристрою на шині. Якщо Slave не встигає, він може “притримати” шину і всі його будуть чекати. Та такий підхід, хоч і є стандартом, але на практиці працює не завжди. У випадку, коли Master не вміє чекати (цим, наприклад страждають мікрокомп’ютери), на шині починається безлад. Тобто, некоректна робота одного з пристроїв на шині I2C (не важливо, у якій ролі – Master або Slave) може викликати проблеми у роботі усіх приладів.
  6. Якщо напруга живлення контролера відрізняється від напруги живлення датчика, вони мають вмикатися через двонаправлену схему узгодження логічних рівнів.

Читати далі

Translate
Архіви

© 2011-2017 Андрій Корягін, Кременчук, Україна