STM8L. Настройка UART для новичков

Не увидел я на сайте статей для новичков по настройке и работе с UART на STM8L, поэтому решил восполнить этот недостаток. Сейчас я расскажу как просто и быстро его настроить.
В качестве отладочной платы с этим микропроцессором я буду использовать STM8L-Discovery, в которой есть свой отладчик ST-Link. Среду для программирования будем использовать IAR.


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

8L-Курс, Часть 5 - Таймеры: начало

← Часть 4 — Тактирование Содержание Часть 6 — Таймеры, внешние каналы →

Таймеры — один из самых важных элементов МК. Ни одна более-менее сложная программа не обходится без них. Все, что так или иначе связано с временными интервалами или подсчетом каких-нибудь событий, реализуется на таймерах.

В STM8L есть несколько таймеров разной сложности. Их можно поделить на три группы:
TIM1 — Это самый сложный и функциональный таймер. 16и разрядный счетчик (максимальное значение — 65535), предделитель, принимающий любые значения от 1 до 65536. Три внешних канала с комплементарными выводами для каждого… и прочие плюшки.
TIM2, TIM3, TIM5(последнего в нашем МК нет) — Чуть по-проще. Внешних каналов всего два. Делитель принимает уже не любое значение, а только степени двойки в диапазоне от 1 до 128. Счетчик по-прежнему 16и разрядный.
TIM4 — Самый простой. 8и разрядный счетчик, делитель — (тоже степени двойки) от 1 до 32768. Внешних каналов нету.

Вот сводная табличка из reference manual, которая рассказывает о характеристиках всех таймеров:


Начнем с TIM1. Он конечно сложнее, чем все остальные, но зато после него работа с другими таймерами не будет вызывать непоняток.


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

8L-Курс, Часть 4 - Тактирование

← Часть 3 — Прерывания Содержание Часть 5 — Таймеры, начало →

Раньше мы как-то не задумывались над тем, на какой частоте работает МК и от чего тактируется — работает и славно. Задержки выбирали на глаз, не зная о тактовой частоте. Пора положить этому конец и разобраться с организацией тактирования в STM8.


Читать дальше
  • +13
  • 21 февраля 2013, 17:03
  • dcoder
  • 1

8L-Курс, Часть 3 - Прерывания, EXTI

← Часть 2 — GPIO Содержание Часть 4 — Тактирование →

Мы уже умеем работать с GPIO. Выставлять нужные уровни и читать состояния ножек, настроенных на вход. Но что, если нужно не просто прочитать состояние ножки, а быстро отреагировать на смену уровня? А если таких ножек несколько? Тут нам на помощь приходит система внешних прерываний — EXTI (EXTernal Interrupts). Она довольно гибко настраивается и позволяет получить прерывание с любой ножки МК, что дико удобно — не нужно подстраивать разводку платы под пару специальных ножек INT, как это было в большинстве AVR.


Читать дальше
  • +11
  • 09 февраля 2013, 14:35
  • dcoder
  • 1

8L-Курс, Часть 2 - GPIO

← Часть 1 — Hello светодиод! Содержание Часть 3 — Прерывания →
В прошлой части мы запустили мигалку светодиодом. Теперь пришла пора разобраться с тем, как она работает и как устроен модуль GPIO в STM8.



Читать дальше
  • +4
  • 16 декабря 2012, 18:34
  • dcoder
  • 1

8L-Курс, Часть 1 - Hello светодиод!

← Часть 0 — Начало Содержание Часть 2 — GPIO →

Внимание!
Если вы читали статью про STM8L-модуль, а конкретно часть про быстрый старт, то вы увидите здесь кучу знакомого текста и читать вам будет немного скучно. И не говорите потом, что вас не предупреждали.

В прошлой части у нас был обзор и немного теории (надеюсь достаточно для того, чтобы понять что вообще происходит), а в этой будет практика. Мы разберемся с подключением и прошивкой МК, поставим и настроим IAR, напишем в нем простенькую мигалку светодиодом и запустим ее.

Кроме того, в этой части я хочу учинить жестокую расправу над неопределенностями: у нас есть три варианта железа: одинокая STM8L-Discovery с отладчиком, PINBOARD2+STM8L модуль (без отладчика, но с бутлоадером) или discovery + PINBOARD2. Я все устройства и примеры буду собирать на пинборде, но для тех, кто пользуется другой железкой, оставлю для каждого примера схему, чтобы можно было собрать на чем угодно.


Читать дальше
  • +7
  • 11 декабря 2012, 16:56
  • dcoder
  • 1

8L-Курс, Часть 0 (ревизия дваноль) - Начало

Содержание Часть 1 — Hello, светодиод →

True story, bro
Середина октября, понедельник, пол-пятого утра. Сижу, жую печеньки, ни о чем плохом не думаю, переписываюсь с девушкой в этом вашем вконтактике. Неожиданно в аську кто-то стучится и спрашивает про учебный курс по STM8. Я, честно говоря думал, что про сию затею все благополучно забыли за год. Оказалось, что нифига подобного: настоящие анонимусы не прощают и не забывают. Да и модуль STM8L для пинборды уже поступил в продажу: тут статьи были-бы как-раз в тему. В общем, начинаю продолжать писать свой несчастный курс.


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

"Вручную" заводим LCD controller stm8l на примере Discovery.


В статье попытаемся “приручить” LCD контроллер МК STM8L152C6T6, который установлен в STM8L-Discovery. Разберёмся с его инициализацией и всеми последующими манипуляциями, необходимыми для оживления дефолтного дисплея. По ходу всего этого дела запилим собственную простую библиотеку с поддержкой кириллицы.


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

Low power run (еще один режим энергосбережения)

Есть еще один режим энергосбережения, который я не описал в своей статье про способы экономии энергии в STM8L. Его нельзя назвать «спящим режимом», потому что ядро продолжает работать, пусть и на низкой частоте. Но путем отключения самых «прожорливых» частей МК в этом режиме можно добиться потребления около 4-5мкА. Называется он — Low Power Run Mode, для простоты буду называть его LPR.




Читать дальше
  • +4
  • 15 октября 2011, 19:03
  • dcoder
  • 2

Работа с EEPROM и Flash

Все МК STM8 снабжены некоторым количеством EEPROMa. Оно варьируется от жалких 128 байт в младших моделях STM8S, до 2кб в старших моделях STM8L и S. Благодаря единому адресному простанству работа с EEPROM почти ничем не отличается от работы с RAM.

Не только EERPOM, но и flash записывается легко и просто. Поэтому, хоть заметка и посвящена работе с EEPROM, тут будут некоторые комментарии касательно флеша.



Читать дальше
  • +3
  • 10 октября 2011, 03:01
  • dcoder