Модуль STM8L для Pinboard II


 

Автор статьи и разработчик модуля dcoder
 
Контроллеры от STM плодятся с ядерной скоростью и почти заполонили всю планету. Для STM32 у нас модуль уже есть, а теперь пришла пора STM8. Контроллер линейки L я взял потому, что они выглядят более вкусными по сравнению с S серией — более продвинутая периферия более низкое потребление. Правда у них нету CAN, вот. И хоть сверхнизкое потребление для нашей платы погоду не делает, серию S я использовать не захотел. Кроме того, устройство периферии у S и L практически одинаковое, так что изучив L можно смело садиться и писать код под S.
 

Описание
На модуле установлен МК STM8L152K6T6.
 

Не самый продвинутый МК из линейки STM8, но точно выше среднего. Практически весь набор периферии, которой есть у топовых МК есть и у него. Разница лишь в объеме памяти, количестве выводов и некоторых фичах вроде второго канала DAC. Характеристики у нашего МК такие:
 

  • 32 Кб flash памяти, 2 Кб RAM, 1 Кб EEPROM
  • 28 линий GPIO
  • АЦП ПП 12 бит, 21 канал (!), до 1MSPS на быстром канале и до 760 кГц на всех остальных. А еще у него встроенный градусник.
  • ЦАП 12 бит, 1 канал
  • Интерфейсы: USART (IrDA, синхронный режим), SPI, I2C, SWIM
  • Контроллер ЖК дисплея: 4 разряда по 17 сегментов
  • Максимальная частота: 16 Мгц
  • Диапазон напряжений питания 1.8 – 3.6 Вольт
  • Часы реального времени (RTC). Кварц 32.768кГц установлен на плате.

 
(далее…)

Read More »

ARM. Учебный Курс. Прерывания и NVIC — приоритетный контроллер прерываний

Стандартной плюхой ядра Cortex M3 является NVIC — контроллер приоритетных векторных прерываний. Сейчас я разжую что это такое и с чем это едят.
 

Прерывания и события
Вообще, если пошерстить мануал, то везде при разборе периферии рассматриваются interrupt/event. Может сложиться ощущение, что это одно и то же. Но это не так.
 

Interrupt — это прерывание. При прерывании обычно программа пакует регистры в стек и бросается по вектору, а оттуда через JMP сигает уже в обработчик прерывания. В кортексах все немного не так. Тут вектора прерывания это просто вектор-адреса лежащие в нужном месте. В виде констант. А при прерывании прога не прыгает на вектор, а берет этот вектор-адрес и сразу же пихает его в програмный счетчик, тем самым переходит сразу на обработчик. Так быстрей, исчезает лишняя операция по переходу на вектор.
 

Event — это аппаратное событие. Опустел буфер UART — держи event, натикал таймер — еще один event. Событие может вызвать прерывание, может запустить какую-либо периферию, например пнуть DMA, чтобы оно выгрузило данные. Но событие далеко не всегда может вызвать прерывание. Каждое прерывание вызывается событием, но не каждое событие вызывает прерывание. Вот. Так что надо отличать.
 

Как и в AVR в STM32 существуют вектора прерываний. Это особые адреса, куда контроллер бросается если происходит прерывание. Они записаны в таблицу и располагаются вначале памяти. Впрочем, система гибкая и переконфигурировав NVIC можно засунуть ее куда угодно. Если вы пишите на Си, то по дефолту, в стартовом файле, вектора прерываний забиты затычками которые ведут в бесконечный цикл. Так что если вызывать прерывание не указав ему обработчик контроллер тупо повиснет. Что является максимизацией ошибки и это хорошо.
 

(далее…)

Read More »

О хороших поставщиках

Есть такой магазинчик радиодеталей chipster.ru я с ним сотрудничаю вот уже год как. Что у него на сайте я особо не смотрел, о уровне его цен на розницу тоже судить не могу — мне они не интересны потому средних цен по рынку на мелочевку не знаю. Смотрите сами и сравнивайте. Знаю только, что чего нет на сайте — можно дозаказать в личной переписке.
 

Но речь не о рознице, я больше угараю по мелкому и среднему опту. Контроллеры треями, дисплеи ящиками и тыды. И вот тут Дмитрий рулит по черному. Фактически он заменяет мне отдел снабжения. Я скидываю ему что мне нужно, в каком количестве, какова вилка по цене/количеству и в какой срок. И больше не забиваю себе этим голову зная, что теперь это не моя проблема, а его :) За год плотного сотрудничества не было еще случаев, что он что то не нашел или где то сильно прокололся, а с мелкими косяками мы разбираемся быстро и без особых проблем. Все очень быстро, четко и по приятным для меня ценам. Идеально для мелкого производства вроде моего.
 

Мои оперативные нужды решает Элемент, но это только для Челябинска. Тоже рекомендую. Впрочем, для Челябинска Элементу и альтернатив то особо нет :)

Read More »