8-900-374-94-44
[email protected]
Slide Image
Меню

Программирование stm8s003f3p6: STM8 — программирование, прошивка и всё-всё-всё

Содержание

первые шаги в среде IAR

21 октября 2013

Портфель микроконтроллеров компании STMicroelectronics в его нынешнем виде сформировался несколько лет назад (рисунок 1). Исключая различные узкоспециализированные устройства, в нем выделяются 2 семейства контроллеров — 8-битное STM8 и 32-битное STM32. В то время, как последнее основано на ядрах Cortex-Mx производства компании ARM, STM8 — это архитектура собственной разработки. Несмотря на то, что в нашей стране словосочетание «контроллер от SТ» твердо ассоциируется с приборами семейства на ядре Cortex, 8-битные контроллеры удерживают устойчивое лидерство по количеству проданных микросхем, которое составляет около 240 миллионов шт. (по информации за 2011 год).

 

 

Рис. 1. Портфель контроллеров STMicroelectronics

Микроконтроллеры STM8 изначально были ориентированы на автомобильный рынок, однако успешность архитектуры позволила вывести данное семейство на широкий рынок. Но лучшие черты, свойственные Контроллерам, ориентированным на автомобильную промышленность, семейство сохранило. Это, в первую очередь, то, что вся память, как Flash, так и Eeprom, построена по технологии Еeprom, благодаря этому энергопотребление слабо зависит от температуры кристалла. Технологический процесс 130 нм гарантирует низкое потребление. Кстати, можно упомянуть, что STMicroelectronics занимает 40% рынка Eeprom-памяти и является неоспоримым лидером в этой нише, происходит это благодаря самым передовым технологиям. А то, что память занимает до 95% кристалла контроллера, гарантирует, что изделия будут отвечать наивысшим требованиям качества.

В данной статье мы рассмотрим более подробно архитектуру контроллера, научимся создавать проект в среде IAR, конфигурировать его под выбранную платформу.

За несколько лет существования микроконтроллеры на ядре STM8 стали де-факто лидером на рынке 8-битных устройств. Ежегодное производство составляет несколько сотен миллионов штук. Микроконтроллеры этого семейства можно найти повсеместно: в бытовой и промышленной электронике, компьютерах, медицинском оборудовании.

 

Архитектура STM8

Архитектура STM8 настолько проста для программиста, что не требует глубоких знаний для того, чтобы начать работать с контроллером. Очень многое было взято от контроллеров STM32 (читай ARM). В то же время набор команд CISC гарантирует высокую плотность кода, а то, что команды в большинстве 1-тактовые и 16-битные — высокую производительность. Среди разработчиков зачастую бытует мнение, что STM8 — это инкарнация 51 архитектуры, однако это совершенно не верно. Наличие команд относительной косвенной адресации явно говорит о том, что система инструкций оптимизирована под язык «Си» для быстрой обработки условий case. Следует так же отметить, что знаний ассемблера для решения подавляющего числа задач промышленного управления не требуется.

С практической точки зрения, в первую очередь следует обратить внимание на единое 24-битное адресное пространство, в котором замечательно разместилась Flash-память, ОЗУ, Eeprom, а также регистры периферии. Это существенно упрощает написание кода, например, функции для работы с массивами из ОЗУ и Flash-памяти не требуется писать в нескольких экземплярах. Коды различных стеков и библиотек легко портируются, так как в основном рассчитаны на архитектуру фон Неймана (в смысле адресного пространства). При этом шины для доступа к разным типам памятей разделены, что говорит нам о наличии Гарвардской архитектуры.

Для того, чтобы многобайтные команды и данные поступали в ядро без задержек, реализован 3-ступенчатый конвейер. Команды вычитываются из памяти по 32-битной шине, соответственно, за 1 обращение — 2 команды. Код можно выполнять так же из памяти данных, но, так как шина к памяти данных 8-битная, то конвейер будет заполняться гораздо медленнее и производительность будет ниже, однако о такой возможности нужно знать.

Система прерываний реализована в ядре. Прерывания вызываются через вектора, которые расположены в начальной части кода. При этом контекст сохраняется автоматически. Однако для выхода из прерывания требуется инструкция, отличная от инструкции выхода из обычной подпрограммы, потому пользователь должен в том или ином виде сообщать компилятору о том, что функция является обработчиком прерываний. Количество прерываний — до 32, из которых 29 пользовательские, с задаваемым приоритетом, остальные — системные, включая RESET.

 

Выбор среды программирования

Наиболее популярные средства программирования STM8 это среды ST Visual Develop с компилятором производства компании Raisonance и IAR Embedded Workbench. В таблице 1 приведено их краткое сравнение.

Таблица 1. Краткое сравнение сред разработки IAR EW и ST VD   

Параметр ST VD IAR EW
Поддержка ST7  да  нет  
Ограничение по коду на бесплатную лицензию, Кбайт  32  8  
Многоплатформенность компилятора  нет  да  
Встроенный дебаггер-отладчик  да  да (ST-LINK)  
Уровень оптимизации кода  высокий  высокий  

В нашем случае мы выберем среду производителя IAR, так как контроллер, который мы будем программировать содержит всего 8 Кбайт памяти программ и по остальным параметрам он не проигрывает ST VD, зато более известен российскому разработчику, так как многие пользовались им для программирования контроллеров других архитектур.

 

Выбор отладочной платы микроконтроллера

Как уже было упомянуто выше, мы рассмотрим контроллер с 8 Кбайт Flash-памяти, это контроллер линейки Value Line. Почему? В первую очередь потому, что данное семейство позиционируется как самое эффективное в плане цены и не имеет конкурентов со стороны STM32. Данные микроконтроллеры предназначены для создания на их основе различных датчиков, контроллеров управления для бытовой и промышленной аппаратуры. То есть там, где мощность 32 бит не востребована, а стоимость и энергопотребление играют наиважнейшую роль.

Итак, остановим выбор на контроллере STM8S003K3T6. Компания STMicroelectronics для данной линейки выпустила средство для быстрого старта под названием STM8SVLDISCOVERY. Рассмотрим вкратце, что предлагает данная отладочная плата (рис. 2).

 

 

Рис. 2. Отладочная плата STM32VLDiscovery

Данная отладочная плата уже содержит встроенный отладчик ST-Link, который впоследствии можно использовать для программирования пользовательских систем.

 

Программная поддержка микроконтроллеров


на ядре STM8

Периферия микроконтроллеров STM8 очень гибкая и для того, чтобы настроить тот или иной блок в требуемый режим, понадобится настроить до нескольких конфигурационных регистров. Для того, чтобы защититься от мелких ошибок, на исправление которых, как правило, теряется большая часть времени, STMicroelectronics предлагает стандартную периферийную библиотеку. С ее помощью инициализация превращается в запуск функции с несколькими понятными параметрами.

Структура библиотеки приведена на рисунке 3.

 

 

Рис. 3. Структура стандартной периферийной библиотеки

Из этой структуры видно, что все обработчики прерываний собраны в одном файле. За каждый периферийный блок отвечает отдельный файл и существует конфигурационный файл, в котором пользователь должен выбрать, какие модули периферии будут включены, а какие не будут. К файлу приложения пользователя подключается единственный файл stm8s.h, а все остальное делается автоматически.

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

Данная библиотека свободно скачивается с сайта www.st.com.

 

Работа с микроконтроллером в среде IAR

Во первых, с сайта http://www.iar.com/ следует скачать и установить среду разработки IAR Embedded Workbench для STM8 в редакции Kickstart (рисунок 4).

 

 

Рис. 4. Вид проекта в среде IAR EW

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

Мы же, для того, чтобы упростить себе задачу, возьмем периферийную библиотеку с шаблоном проекта именно для этой платы [1] и в этом архиве найдем файл STM8SVLDISCOVERY_DiscoverProjectsProject_templateEWSTM8Project.eww

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

Как нетрудно заметить, пользовательские файлы выведены в отдельные папки и их можно быстро найти, чтобы открыть и что-либо изменить. Библиотека периферии выделена в отдельную папку и в нее можно смотреть только для ознакомления, так как все включенные в нее файлы имеют статус «только для чтения». Итак, перед нами классический вид проекта в среде IAR, где главным является файл main.c, в котором содержится функция входа в пользовательское приложение void main(void). Второй пользовательский файл — это stm8s_it.c, в котором содержатся пустые обработчики всех возможных прерываний. Эти обработчики, в случае их использования, останется заполнить собственным кодом.

Рассмотрим подробно настройки проекта. Для этого следует зайти в меню, и выбрать

ProjectOptions. Пожалуй, основные опции мы рассматривать подробно не будем, так как они понятны и одинаковы для всех версий IAR. А вот опции, которые разрешают работать с библиотекой мы обсудим подробнее (рисунок 5).

 

 

Рис. 5. Свойства компилятора

Для этого найдем закладку Preprocessor в опциях С/С++-компилятора. В первую очередь обратите внимание, что подключена папка с файлами описаний (*.h) стандартной периферийной библиотеки. Далее требуется обратить внимание на наличие глобального макроса-определения STM8S003. Библиотека работает с разными линейками сери STM8S, потому этот макрос помогает ей понять, с чем ей конкретно придется работать.

В опциях дебаггера по умолчанию уже выбран ST-Link и для того, чтобы загружать проект в плату, достаточно подключить ее по USB и нажать кнопку «Download and Debug» на панели инструментов (рисунок 6).

 

 

Рис. 6. Часть панели инструментов с кнопкой запуска

 

Написание своего приложения

Итак, мы вплотную приблизились к написанию собственного кода. Мы напишем программу, которая будет конфигурировать вывод порта, к которому подключен светодиод, и поуправляем им Перед тем, как приступить к программированию, необходимо скачать принципиальную схему, ее, а также другую полезную информацию по данное плате, можно найти здесь: [2].

Светодиод катодом подключен к PD0, анод подключен через токозадающий резистор к питанию. Таким образом, чтобы включить светодиод, необходимо подать на вывод порта логический 0.

В первую очередь изучите файл-шаблон main.c. Вы найдете в нем, кроме самого основного приложения, интересную функцию void assert_failed(u8* file, u32 line). По умолчанию она отключена макросом USE_FULL_ASSERT. Данная функция позволяет отследить некорректное использование библиотеки в том случае, если вы задали какой-то параметр неверно или перепутали порядок следования параметров. Эту опцию рекомендуется активировать для режима отладки, включив в список преопределенных символов компилятора.

Начинаем модификацию void main(void).

Для того, чтобы понять, какую функцию нужно взять для инициализации из библиотеки, нужно открыть список функций файла stm8s_gpio.c, и станет очевидно, что нужна функция GPIO_Init (рисунок 7).

 

 

Рис. 7. Функции драйвера периферийного модуля GPIO

Тут же можно посмотреть, какие аргументы принимает эта функция. Для этого не нужно открыть толстые справочники, а достаточно просто посмотреть описание функции, расположенное над ней самой в виде комментария (рисунок 8).

 

 

Рис. 8. Функция инициализации GPIO

Соответственно, первый аргумент станет очевидно понятными, это GPIOD. А вот для понимания того, что должны из себя представлять остальные, требуется отправиться к определениям GPIO_Pin_TypeDef и GPIO_Mode_TypeDef. И сразу станет ясно, что это GPIO_PIN_0 и GPIO_MODE_OUT_PP_HIGH_FAST соответственно.

Итак, мы получили функцию

GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST)

Включим ее в основной код. Вот и вся инициализация. После этого остается только воздействовать на состояние вывода. Для этого также обратимся в файл библиотеки и найдем наиболее подходящую функцию void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal). Аналогичным образом найдем, какие должны быть у данной функции аргументы для того, чтобы включить или выключить светодиод.

Итак, в итоге мы получим следующий вид функции void main(void) (рисунок 9):

 

 

Рис. 9. Функция void main(void)

После этого загрузим код в контроллер и по шагам (клавиша F10) пройдем все команды для того, чтобы убедиться, что код работает.

 

Заключение

Микроконтроллеры семейства STM8 — это мощные и, в то же время, недорогие устройства, на которых можно строить различную домашнюю и промышленную автоматику. Крайне невысокая цена контроллеров линейки Value Line делает их весьма конкурентоспособными на рынке средств для построения различных датчиков (дыма, газа) там, где массовость, компактный размер и цена важны в равной степени. А то, что контроллер очень удобен в использовании как в электрическом, так и в программном смысле, делает возможным окончить разработку в кратчайшие строки.

 

Литература

1. http://www.st.com/web/en/catalog/tools/PF257969  

2. http://www.st.com/web/en/catalog/tools/PF252276#.

Получение технической информации, заказ образцов, поставка — e-mail: [email protected]

 

 

•••

Наши информационные каналы

Как я прокачал STM8S-Discovery | Embedder’s life

Для тех, кому лень читать целиком: В STM8S-DISCOVERY отлично заливается прошивка от ST-LINK/V2 и все работает.

Тех, кто хочет узнать, что довело меня до жизни такой, приглашаю под кат.

Несмотря на то, что я порядочный ретроград, прогресс таки докатился и до меня — в текущей разработке у меня будет стоять новый модный STM8S103F3P6 по причине выдающейся цены оного. А, кстати, о ретроградах…

Так вот, у меня возникла необходимость программировать STM8. Посему я достал с полки упомянутую в заголовке плату, сдул с нее пыль и попытался запрограммировать контроллер. Не вышло. Надо сказать, что у меня и до этого были проблемы с ST-LINK (V1), и тогда я даже нашел решение; тем не менее, сейчас не прокатило и это. Не знаю в чем дело, но факт — ST-LINK окончательно отказался работать на моей системе.

В общем, я задумался о том, как бы материализовать себе ST-LINK/V2. В принципе, такие программаторы у меня были на платах STM32-Discovery — но на отладках, как известно, стоит урезанная версия, которая может программировать только то семейство, для которого эта отладка предназначена. Купить — вариант понятный, но это надо еще из дома выходить, да и программатор мне был нужен вотпрямщас. Грустно блуждая по интернету, я в очередной раз наткнулся на человека, который сделал ST-LINK/V2 сам. Посмотрел я на это, посмотрел, и вдруг понял, что схема, приведенная в статье, совершенно не противоречит схеме программатора STM8S-DISCOVERY (стр. 16)! Собственно, в программаторе и там, и там канонично используется STM32F103C8T6, включение значимых ножек по схеме совпадает…

В общем, я запаял хедеры разъема JTAG’а программатора на STM8S-DISCOVERY и подключил к нему сигналы SWD (они находятся на тех же пинах, что и JTAG) от программатора с платы STM32-VLDISCOVERY, после чего с помощью STM32 ST-LINK Utility снял защиту, стер кристалл и залил бинарник прошивки, который взял из архива, скачанного по ссылке из той статьи, где человек самостоятельно собирал программатор. После подключения к компьютеру подопытный девайс определился как ST-LINK/V2. Далее я штатно обновил прошивку с помощью ST-LINK Upgrade Tool и в качестве теста попробовал подключиться к STM8S103F3P6 из STVP. Бинго! Все заработало!

Программировать STM32 через мой новый ST-LINK/V2 и использовать JTAG на нем я пока не пробовал, но, судя по схеме, это возможно через тот же самый выведенный порт JTAG’а.

Так что, если у кого-то есть STM8S-DISCOVERY с ST-LINK V1 и какая-нибудь из плат STM32-DISCOVERY, с помощью последней можно легко залить прошивку ST-LINK/V2 в первую и получить полноценный ST-LINK/V2.

Подарок от Гика — делаем кухонный таймер / Хабр

Выбираем подарок


У бабушки моего сына скоро будет день рождения. Так как я его увлёк микроконтроллерами, то пришла идея подарить какой-то прибор, естественно, на микроконтроллере и сделанный своими руками. Как и все бабушки, наша бабушка не является продвинутым пользователем всяких устройств, и в принципе у нее ничего особенного из электроники нет. Так что, можно сделать любой, не очень сложный прибор.

Когда мы приезжаем к ней в гости, нас всегда встречает богатый стол, с большим количеством блюд. Поэтому, мы сразу решили делать прибор, полезный на кухне. Вместе мы часто играем в различные настольные игры — лото, различные игры с кубиком. Значит, наш прибор должен и тут помогать.

Подумав немного, сын решил делать продвинутый кухонный таймер. Я ему немного помог со схемой. Основные функции нашего подарка:

  • Режим таймера до 3 часов
  • Режим секундомера
  • Громкий сигнал
  • Компактный размер
  • «Вечные» батарейки — аккумуляторы, зарядка как у телефона, по micro usb
  • Ну и конечно игры — кубик (случайное число от 1 до 6), лото, бомба (очень веселая игра)

Подбираем компоненты


В качестве индикатора, мы выбрали светодиодный трех-разрядный индикатор с общим анодом — у него всего 11 выводов, очень удобно. Купить не сложно, и в принципе, довольно экономично в энергопотреблении (но конечно не LCD).

Микроконтроллер — STM8S003F3P6 — с ним мы уже работали, так что все знакомо. ST-link уже есть.

Микросхема заряда и вся обвязка у МК, как у велокомпьютера.

В качестве пищалки, очень компактная и громкая пищалка HC0903A

Аккумулятор — LIR2032. Всего 45 mAh, но этого хватит на 40 часов непрерывной работы таймера. От кварцевого резонатора решили отказаться (нужны выводы), особенная точность нам не нужна, ну и у STM8 довольно точный внутренний генератор. Микросхема заряда — TP4056.

Управление — 2 тактовые кнопки. Прибор все время находится в спящем режиме, потребление меньше 5 мкА, спать может долго. Плату защиты для аккумулятора делать не стали, особенно не нужна. У МК нижний предел 3В, так что сильно не просядет. При включении идет музыка, включается индикатор (бросок тока), и если аккумулятор севший, то МК перегрузится и перейдем в спящий режим, что является сигналом к зарядке. Заряжается он током 100 мА около 40 минут, что в принципе очень быстро. Схему и программу можно скачать на github, ссылка в конце.

Корпус сын решил делать сам из монтажного короба 40 х 16 мм. Раскрасил акрилововыми красками, в качестве стекла вырезали кусок из DVD диска. Получилось очень симпатично.

Трассировку платы сын делал сам в Kicad. Расположение компонент придумал он же. Кнопки по бокам от индикатора, пищалка внизу, аккумулятор на ней. Все вошло плотно, ничего ни куда не болтается. Плата двухсторонняя. Делали из одностороннего стеклотекстолита толщиной 0.8мм с помощью метода холодного переноса тонера. Две половинки платы соединили и зафиксировали перемычками. Из разъемов — micro usb, питание и программирование.

Программа


Данный индикатор имеет общий анод, соответственно выводить в один момент времени можно только один разряд. Для вывода одновременно трёх разрядов необходима динамическая индикация.

Программно это делается очень просто. Задействуется таймер, и через равные интервалы времени, с большой частотой, например каждые 300 мкс, будем выводить по одному разряду по кругу — 1-2-3-1-2-3. Нам будет казать что цифры светятся одновременно, как в кино. Если дополнительно добавить еще пустые разряды, то можно управлять яркостью. То есть, будет такая схема вывода информации — 1-2-3-пусто-пусто-пусто-пусто-1-2-3-пусто-пусто… Управление яркостью нужна для того, чтобы снизить энергопотребление. Таким образом, например без применения яркости, один разряд потребляет 24 мА, а с применением можно сократить до 1-2 мА. При этом цифры все еще четко и далеко видно. Сын поигрался с частотой, яркостью, когда все перестало мерцать, ему понравилось. Оказалось, программировать такой типа индикатора довольно легко и удобно.
Второй сложный момент — это придумать простой, как говорится, интуитивно понятный интерфейс, когда у нас 3 разряда индикатора и 2 кнопки. Но я считаю, ему это удалось.

Придумали с кнопками так:

  • Правая кнопка — долгое нажатие, смена режимов, их три — Таймер, Секундомер, Игры
  • Правая кнопка — одиночное нажатие, смена подрежима. У таймера — это выбор предустановленных времен, у секундомера — выбор обычного секундомера и с подтверждением, у игры — соотв. Различные игры
  • Левая кнопка — одиночное нажатие — старт/стоп или ход в игре, долгое нажатие — режим настройки, программирования

С индикатором так:
  • Когда выбран таймер — то сразу выводится некое число из предустановленных настроек (Например 5,15,30 минут), их можно перепрограммировать, хранятся в ПЗУ
  • Когда выбран секундомер — то 000
  • Когда игры — L — лото, 6 — бомба, С — кубик.
  • На индикатор цифры выводятся хитро, так как разряда только три, то выводим максимальное число значащих элементов. Например, таймер — 200 минут 30сек — то выводим 200., если таймер 10мин 15с, то выводим 10.1, если 1 минута 25с, то 1.25. При этом чтобы понимать, что таймер или секундомер запущен, точка мигает в такт секундам.
  • Когда секундомер остановлен, например на 10 мин 25с то показываем попеременно 10. и .25, раз в секунду, чтобы видеть и секунды тоже.

Программа оказалась не такой простой, сын писал ее почти 3 недели в школьное время, с небольшой моей помощью. Очень много условий, разные флажки — старт, стоп, работа с памятью и т. д. Но результатом он был очень доволен.

Испытания


Первые испытания прошли в школе. Вместо кубика, гадание на оценках. Гадал весь класс. Потом бомба — супер игра. Прибор загадывает случайное время от 5 до 20секунд и начинает тикать каждую секунду. Вы его передаёте по кругу. Когда таймер дойдёт до нуля — сигнал взрыва. Тот, у кого в руках прибор, проиграл.

Первые испытания секундомера и таймера прошли на ура. Засекали разное время, сверяли с точными часами, ошибка 1-2 секунды на час. Отрабатывали звук сигнала.

Вручение подарка


Наступил день рождения. Бабушка быстро прошла обучение и была очень рада. Все вместе испытали Лото, полностью автоматизированное. Каждые 5 секунд прибор пищит и выдает новое число, из оставшихся в мешке. Играют все, водит прибор! Кто не успел тот опоздал.

Итоги


Итак, прибор получился просто отличный. Практика программирования очень интересная. Если вам тоже интересны микроконтроллеры, то можете сделать себе (или в подарок) такой же и попрограммировать. Вы обязательно научитесь:
  • делать платы
  • паять smd компоненты
  • программировать STM8
  • работать с аккумуляторами
  • обрабатывать кнопки
  • издавать различные звуки
  • работать с таймерами и обрабатывать временные события
  • бороться с энергопотреблением

На github выложена схема и плата в формате Kicad. Выложен начальный проект для STM8, там самое сложное — динамическая индикация, инициализация микроконтроллера, сложная обработка кнопок — короткое, двойное, долгое нажатие. Остальную программу предлагаю написать самостоятельно, это ведь так интересно!

Отладочная плата STM8 STM8S на базе STM8S003F3P6 STM8S103F3

Описание

Минималистичная плата для разработки и прототипирования на микроконтроллере STM8S003F3P6. Помимо микроконтроллера на плате имеются: разъем SMIM-интерфейса, кнопка для перезагрузки, контактные площадки для распайки выводов МК, стабилизатор 3.3 В, место для установки внешнего кварца и разъем Mini-USB, через который может осуществляться питание схемы.

Теxнические характеристики

  • Микроконтроллер: STM8S103F3
  • Напряжение питания: 5 В
  • Тактовая частота: 16 МГц
  • Флеш-память: 8 КБайт
  • ОЗУ: 1 КБайт
  • EEPROM: 128 байт
  • Интерфейсы: SPI, I2C, UART, 10-бит АЦП, ШИМ
  • Размер: 36.5 x 21.6 мм

Информация для покупки

Для покупки регистрация не обязательна! Если хотите сделать заказ, — просто добавьте нужные вам товары в корзину, укажите свои данные и нажмите кнопку «Оформить заказ». Мы свяжемся с вами в ближайшее время.

Оплата
— перевод на карту ПБ
— онлайн без комиссии через Приват24 (система LiqPay)
— безналичный расчет без НДС для юридических лиц
— наличными или картой при доставке (только при заказе от 100 грн)
— наличными в офисе

Нашли дешевле? Напишите нам об этом в чат — кнопка в левом нижнем углу экрана. В сообщении укажите ссылку на активную страницу такого же товара в украинском интернет-магазине и мы пересмотрим цену.

Доставка
— Новая Почта
— Укрпочта (только при предоплате)
— Самовывоз (также при необходимости можем отправить на такси по Ивано-Франковску)

Отправка товара происходит каждый рабочий день. Заказанный товар в большинстве случае выезжает в тот же день. Заказы самовывозом можно забрать в нашем магазине. После покупки позвоним вам и скажем, когда посылка с заказом будет готова к выдаче.

Гарантия и возврат
— возврат в течение 14 дней, если товар не подошел
— гарантия до 6 месяцев на товары собственного изготовления

Почти Arduino, почти недорого

В некотором смысле этот текст — продолжение рассказа про ATtiny85 с USB. Тогда мне, с одной стороны, правильно указали, что я не совсем точно определил назначение продукта. С другой же говорили и о том, что цена немного неразумна.

При таком раскладе по обеим позициям, опять же, на мой взгляд, оказывается довольно привлекателен чип ATmega328p без лишних деталей. То есть, практически совсем без деталей — что не меняет главного: куча цифровых и аналоговых пинов и достаточно скорости много для чего.

Причем мне глубоко симпатична идея использовать контроллеры в корпусе TQFP-32 с распайкой на плате-адаптере, о чем и пойдет речь.

Итак, делать будем простейшую Arduino на частоте 8 МГц. Не самая высокая скорость, зато достаточно практически голого чипа.

Главный плюс такой конструкции в том, что плата-адаптер может выполнять и роль простейшей макетной платы для каких-то несложных изделий. Альтернатива — ATmega328 в DIP-корпусе — в этом случае будет выглядеть не так хорошо. Или так же хорошо, но тоже на плате-переходнике.

С самого начала хочу обратить внимание, что в заголовке указаны цены за 10 штук контроллеров ($11) и десять же плат-переходников ($2,78), что дает нам примерно $1,4 за готовый комплект.

Про контроллеры ничего особенного сказать не могу, кроме того, что все их свойства подробнейшим образом описаны в соответствующем техническом документе Atmel. При этом также надо понимать, что ATmega328p — тот же самый контроллер, который применяется в популярных платах Arduino начального уровня: UNO, Pro Mini, Nano.

Начальный уровень, тем не менее, пугать не должен, поскольку 32 КБ под код, 2 КБ на исполнение и чертова дюжина цифровых пинов плюс семерка аналоговых, да еще разведенные там же специальные интерфейсы — настоящий, в общем-то клад, даже если ограничиться только средой Arduino.

Если не верите, то продолжаю хвастаться тем, что крутится на Arduino Uno.

Что касается идеи с платами-переходниками, то она у меня в голове с тех пор, как в поисках простого способа использовать купленные по случаю ATtiny85 в корпусах SOIC8, наткнулся на подходящие переходники в бутике Чип-и-Дип. Ценник там все знают, но ждать месяц Китая ради пары контроллеров не хотелось.

Но раз это есть в ЧиД, значит есть и в том же Китае. Причем, что характерно, в различных вариациях: односторонние, двусторонние, квадратные, прямоугольные.

Я выбрал переходник только с TQFP-32, разведенным на выводы с шагом, по-моему, 2 мм. По крайней мере то, что показал штангенциркуль, на 2,54 не совсем тянет. Хотя могу и ошибаться.

Еще одна важная характеристика переходника — шаг контактных площадок под контроллер. Насколько я понял, в данном конструктиве это 0,8 мм, однако контроллер существует и в других ипостасях (QFN) с шагом 0,5 мм. В дальнейшем речь идет именно о корпусе TQFP-32 с шагом 0,8 мм.

Особенность (ну, на мой вкус) переходника в том, что на оборотной стороне сквозные отверстия с металлизацией дублируются обычными площадками. Кроме того, по внутреннему периметру напротив каждой площадки вывода микроконтроллера расположены соединенные между собой контактные площадки, которые также выведены на пару сквозных отверстий по центру коротких сторон платы-адаптера.

Вот это на самом деле очень крутое решение, поскольку так и просится на подключение к минусу (земле), что еще более упрощает макетирование. Подключать можно, разумеется и к любой другой цепи, которую требуется развести на как можно большее количество контактов.

Размеры платы при этом следующие:

Качество изготовления, на мой взгляд, неплохое. Но мне не понравилась довольно тонкая маска (или как называется слой краски поверх проводников?), которую умудрился местами сцарапать паяльником, пока распаивал контроллер.

С контроллером на борту, те самые царапины:

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

В принципе, этого уже достаточно, чтобы начать пользоваться контроллером, как Arduino-совместимой платой. Однако я решил пойти немного дальше (чуть-чуть) по совету уважаемого Ника Гаммона и добавил подтягивающий резистор к пину Reset и пару конденсаторов на 0,1мкФ по питанию и пину AREF. Пин AREF по его же совету соединил с VCC.

При этом обратите, пожалуйста внимание на тот факт, что распиновка ATmega328p в DIP, которую поминают на каждому углу, отличается от TQFP.

Поэтому сообщаю, что резистор 10К стоит между пинами 4 и 29, конденсаторы — между 3 и 4, а также между 20 и 21. При этом VCC — это пин 4, а GND — пин 3. Это все, что касается наиболее критичного.

В целом все хорошо видно по замечательной картинке от Hobbytronics:

Когда все готово, остается последний шаг для превращения в Arduino: загрузка, простите, загрузчика. Для того можно использовать программатор, которого у меня нет. А кроме программатора подойдет другая плата Arduino. Я использую свободную на данный момент Arduino Mega 2560.

Для программирования необходимо, во-первых, добавить в среду Arduino описание контроллера. Для этого идем на официальный сайт Arduino и скачиваем оттуда подходящий для установленной у вас версии среды архив описаний.

Например:


Содержимое архива следует извлечь в папку hardware папки среды Arduino. В дальнейшем я описываю происходящее на примере среды 1.0.3, которой пока пользуюсь.

Когда описания скопированы, следует запустить Arduino и загрузить скетч программатора в Arduino, которая будет использоваться в качестве этого самого программатора. Скетч находится в меню Файл — Примеры — ArduinoISP.

Разумеется, следует выбрать свою плату и порт. Я выбираю Mega, потому что у меня она и есть:

После загрузки скетча программатора необходимо переключиться на целевую плату. Т.е. в нашем случае — ATmega328 с частотой 8 МГц и внутренним задающим генератором. Она будет в списке плат, если описания, о которых говорил выше, скопированы правильно:

Теперь нужно соединить линии MISO, MOSI и SCK платы-программатора и платы с будущей Arduino, а также подключить RESET, GND и VCC. Плюс питания лучше именно в последнюю очередь.

Исходя из приведенной выше инфографики и описания Arduino Mega, вырисовывается следующая картина:

SPI — Arduino Mega — ATmega328p

MISO — 50 — 16
MOSI — 51 — 15
SCK — 52 — 17
SS (RESET) — 53 — 29

Физическое подключение на ваш вкус, я применил исключительно варварский метод — обычные макетные провода прямо в отверстия платы, без пайки и изоляции:

Если все готово — записываем загрузчик. Сначала убеждаемся, что выбран правильный программатор (Сервис — Программатор — Arduino as ISP):

Потом делаем Сервис — Записать загрузчик:

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

В моем случае загрузчик прошился нормально. Как получить подтверждение более материальное, чем сообщение среды? Ну как — конечно, нужно Blink.

Открываем скетч из Файл — Примеры — 01. Basics — Blink:

Код не меняем, плату не меняем. Но теперь плату с контроллером подключаем через адаптер USB-Serial, а не Arduino, для чего крест-накрест соединяем RX и TX адаптера и контроллера. Напоминаю, что по распиновке описанного корпуса RX — 30, TX — 31. Не забываем соединить адаптер и плату общей землей и подать питание на плату (можно от того же адаптера).

Теперь в среде Arduino выбираем порт, к которому подключился адаптер и заливаем скетч. Хочу сказать, что про RESET я не забыл: изначально подключил, и следил за поведением USB-Serial адаптера, чтобы успеть сбросить контроллер перед загрузкой скетча. Однако этого не понадобилось — скетч загрузился без дополнительной перезагрузки контроллера.

Возможно, что это только в первый раз, тогда напоминаю, что RESET у контроллера — пин 29. Также напоминаю, что нумерация пинов на плате-переходнике — это не Arduino-нумерация. Поэтому упомянутый в скетче пин 13, к которому подключается светодиод — физический пин 17 чипа и, соответственно, платы-переходника.

Ну а что получилось — уже видели 🙂 Лично я доволен и попробую теперь вставить плату в некое устройство, о котором, если получится расскажу немного позже.

Спасибо за внимание.

Вторая жизнь паяльника Tomizawa FZ-880B

Здравствуйте!

В этом обзоре предлагаю вам, уважаемые читатели, статью о «воскрешении» сгоревшего паяльника Tomizawa FZ-880C. Травка, лужение, пайка и программирование микроконтроллера в комплекте. Кому интересно — добро пожаловать под кат.

Сначала хочу предупредить, что если вы попытаетесь повторить описываемую в статье процедуру ремонта этого устройства, то я не несу никакой ответственности за возможный вред, нанесённый вашему здоровью и имуществу, возникший из-за или в процессе вашего вмешательства и изменения электрической схемы оригинального устройства, а также из-за несоблюдения последовательности прошивки микроконтроллера устройства. Не забывайте, низковольтная часть гальванически не развязана от высоковольтной, посему все действия по ремонту и прошивке микроконтроллера устройства необходимо производить при отключенном шнуре питания!

Итак, начну.

Как-то однажды зашёл ко мне друг на кружечку чая и притащил с собой небольшой пакетик с целью подарить его мне. В том пакетике оказалось несколько жал для Hakko-совместимого паяльника. Надо сказать, что до того времени я пользовался только отечественными паяльниками с медным жалом, посему они мне были без особой надобности, но тем не менее я их взял с благодарностью, другу-то они точно были ни к чему, у него даже паяльника-то нет. Посмотрел я на них, покрутил в руках, и решил всё же попробовать перейти на пайку необгораемыми жалами. Но, разумеется, для этого мне нужен соответствующий паяльник. Просмотрев несколько обзоров паяльников на Муське, я решил взять недорогой паяльник с керамическим нагревателем, совместимый с 900-ми жалами — Tomizawa FZ-880C. Заказал его на Tmart-е, 3 недели ожидания, и он передо мной. И вот я уже мчусь домой с почты, быстро-быстро его распаковываю (кстати фото упаковки не будет, изначально я не планировал писать обзор, сам паяльник находился в простом полиэтиленовом пакете), нахожу переходник, включаю в розетку — работает! Загорелись светодиоды, начало накаливаться жало. Решив попробовать паяльник в более удобных условиях, я взял удлинитель электрической сети, настольную лампу, припой, старую плату от магнитофона в качестве подопытного, и, собственно, героя обзора, я расположился за столом, предвкушая удовольствие от работы хорошим инструментом. Ан нет, фортуна в этот день была не на моей стороне, включив паяльник в сеть, я услышал слабый щелчок откуда-то изнутри корпуса паяльника, все светодиоды на долю секунды загорелись и погасли, жало не грелось вовсе. С тех пор паяльник больше не включался…

Решив узнать в чём дело, я вскрыл его корпус и был шокирован: отвратительный монтаж, неотмытый флюс, и вообще мне паяльник показался крайне кустарной поделкой. Ну что ж, надо ремонтировать, не выбрасывать же… Прежде всего, нужно было найти причину выхода устройства из строя. Как оказалось впоследствии, паяльник сгорел по причине пробоя, приведшего к короткому замыканию конденсатора C2 (большой жёлтый элемент на фото).

Общий вид платы


Для того, чтобы узнать причину выхода паяльника из строя и оценить последствия, я начал исследовать его плату и искать вышедшие из строя элементы. Их было немало, это операционный усилитель, и дешифратор на плате светодиодов, россыпь транзисторов, резисторов, несколько диодов, электролитический конденсатор и стабилитрон, фильтрующие питание цифровой части схемы, а также микроконтроллер. Обнаружив, что на ножках питания микроконтроллера имеется короткое замыкание, я практически впал в уныние. В устройстве стоял микроконтроллер Holtek 46R01B, найти его в продаже не удалось, а если бы даже и удалось, то непонятно откуда взять прошивку и чем его, собственно, прошивать. Я уж мысленно похоронил паяльник и решил купить какой-нибудь другой, возможно немного подороже, но моё внимание привлёк один результат поисковой выдачи Гугла. Это была ссылка на Github, перейдя по которой я попал на страничку проекта, разработанного пользователем под ником alsav, и посвящённого переделке платы точно такого же паяльника на использование в нём другого, куда более распространённого, микроконтроллера STM8S003F3P6. Автором данной схемы переделки заявлены следующие функциональные возможности:
  • Термостабилизация ПИД-регулятором. Точность 5-10С.
  • Предварительный прогрев до температуры режима n+1 для сокращения времени нагрева жала.
  • Индикация выхода на рабочий температурный режим миганием светодиода.
  • Отключение паяльника длинным нажатием.
Связавшись с автором этого проекта и расспросив его о некоторых деталях реализации схемотехники, я приступил к изготовлению миниатюрной печатной платы и исправлению косяков производителя, а также заказал на АлиЭкспрессе всё необходимое для реализации этого проекта (микроконтроллер, а также ST-Link v2 для его программирования).

Расскажу чуть подробнее об одной гадости, которую подстроили производители сего паяльника. Посмотрите внимательно на фото

Перемычка!


Мало того, что SMD-резистор R24 имеет размер больше, чем посадочное место под него, и его второй вывод просто болтается в воздухе, подключенный лишь к резистору на 1 МОм, припаянному навесным монтажом, так ещё после его выпаивания оказалось, что под ним имеется дорожка, замыкающая его контакты накоротко. Основное предназначение этого резистора — ограничение тока в цепи питания цифровой части схемы. Но во-первых, он не припаян одним выводом к плате, а во-вторых даже если бы и был припаян, как я уже говорил, под ним находится перемычка. В результате вместо вот такой схемы…

по факту мы имеем вот такую:

Вот уж действительно «сопротивление бесполезно» 🙂

В процессе ремонта паяльника я эту перемычку перерезал, а сопротивление токоограничивающего резистора повысил до 150 Ом, как рекомендовал автор переделки. Также я выпаял стабилитрон и вместо него впаял широко известную микросхему-стабилизатор TL431 с делителем из резисторов, подобранных так, чтобы напряжение стабилизации составляло 3,3 Вольта (в моём случае делитель состоит из двух резисторов на 1 и 3 кОм). Схема этого блока выглядит так:

Отдельно стоит сказать про замену конденсатора C2. В оригинале, на плате паяльника припаян малогабаритный овальный плёночный конденсатор CBB20 0.47 мкФ х 450 В производства Shenzhen Surong Capacitors Co., Ltd., однако мне найти такой или подобный в радиомагазинах города так и не удалось, другие же с такой же ёмкостью и рабочим напряжением, будучи установленными на плату, банально не влезали в корпус паяльника. Но мой взгляд случайно пал на 2 конденсатора 0.22 мкФ х 630 В, приобретённые для другого моего проекта (который, к слову сказать, я надеялся осуществить с помощью этого паяльника). Оказалось, что такие конденсаторы имеют достаточно малые габариты, чтобы быть установленными в паре с двух сторон платы, и при этом успешно влезать в корпус паяльника. Общая ёмкость их, как несложно посчитать, составила 0.44 мкФ, чего, как оказалось, вполне достаточно для нормальной работы низковольтовой части паяльника.

Также были выпаяны и заменены на исправные все дохлые резисторы, диоды, транзисторы, электролитический конденсатор фильтра питания низковольтной части, дешифратор 74HC138D, а также был выпаян микроконтроллер. Но время шло, ремонт силовой и низковольтной части схемы я уже закончил, а микроконтроллер и ST-Link пока ещё не пришли в моё почтовое отделение, а проверить паяльник очень хотелось, возможно где-либо ещё таились не замеченные мною неисправности. Вот только как это сделать? Решение подсказал alsav в переписке по электронной почте, оказалось, что для включения нагревателя достаточно всего лишь подать на 10 вывод посадочного места под старый микроконтроллер напряжение 3,3 Вольта, что приведёт к открытию транзистора, управляющего светодиодом оптосимистора, тот, в свою очередь, откроет тиристор, и через нагреватель потечёт ток. Я сделал так, и о чудо, случайно обжёгся об нагревшийся нагреватель! Никогда ещё не был так рад обжечься :)))

Убедившись, что всё работает, в куда более бодром состоянии духа я приступил к изготовлению печатной платы под новый микроконтроллер. Изготавливать плату было решено старым-добрым ЛУТом, травить в перекиси водорода. Я скачал все файлы с GitHub’а проекта в одном ZIP-архиве, распаковал его и нашёл файл ctrl-brd_reduced-F_Cu.ps, затем распечатал его. Если вы пользователь Ubuntu Linux, то открыть файл формата PostScript не составит проблем, встроенное приложение Evince, также известное как «Просмотр документов» позволит вам это сделать без малейших проблем. Для распечатывания этого файла в Windows можно использовать GSview, предварительно установив интерпретатор/обработчик формата Postscript — GPL Ghostscript. Я распечатал файл на фотобумаге, при помощи утюга перевёл изображение на фольгу, размочил и снял фотобумагу, а затем отправил плату травиться в раствор для травления. Далее — лужение платы, припаивание двух конденсаторов и ожидание появления в моём почтовом ящике почтового извещения для последующего получения в почтовом отделении двух мелких пакетов: одного с микроконтроллером, а второго — с ST-Link v2.

Подготовка платы


И вот тот день наступил, и я принёс эти два небольших пакетика домой. В одном находились 10 штук микросхем STM8S003F3P6, а во втором — китайская версия ST-Link v2. Пришли они в обычных жёлтых пакетах с пупыркой, чтобы не загромождать статью, фотографировать их я не стал.

STM8 и ST-Link v2


Во втором пакете, кроме, собственно, самого ST-Link, находился вот такой вот листочек:

Листочек



Признаться, первый раз мне китайцы шлют комиксы 🙂

Припаяв микроконтроллер к самодельной плате, я приступил к его прошивке. Для этого к плате микроконтроллера нужно припаять несколько проволочек, при помощи которых дальнейшем плату можно будет подключить к ST-Link’у. Прежде всего нужно сказать, что для прошивки контроллеров семейства STM8 используется стандарт SWIM, так что нужно найти на плате и на программаторе соответствующие выводы для обмена данными. Кроме того, микроконтроллер нужно запитать напряжением 3,3 Вольта, поэтому находим на программаторе соответствующие выводы и тоже их подключаем. Нужно подключать вывод RST или нет — я точно не знаю, у меня и без него всё неплохо прошилось.

Подготовка к прошивке


Далее, я скачал с сайта ST и установил в систему драйверы ST-Link v2, а также приложение ST Visual Programmer. После этого я запустил ST Visual Programmer, выбрал микросхему, с которой будет производиться работа, выбрал файл прошивки (firmware_v0.2.hex), и нажал на кнопочку записи в микросхему.

Программирование STM8


После окончания прошивки программатор нужно отключить, проволочки для его подключения отпаять и припаять плату с микроконтроллером…

… к заранее подготовленным тонким проводкам (в идеале МГТФ, только у меня его не было под рукой), припаянным в нужные точки платы паяльника…

Точки припаивания



… чтобы в итоге получилось вот так:

Итог сборки


припаял провода шнура питания, включил его в сеть и… Заработало!

Заработало!


Паяльник буквально обрёл вторую жизнь! Заявленные автором прошивки функции паяльника работают, и всё бы хорошо, и можно было бы пользоваться им без проблем, но…

Ещё косяки производителя


Это дикий ужас, после нескольких часов работы (причём не на самых высоких температурах) немного подплавилась резьба на пластмассе корпуса паяльника, на которую накручивается гайка, удерживающая нагревательный элемент. На фото это не очень заметно, но резьба довольно сильно «замята», и та часть корпуса, где она нарезана, немного сократилась в диаметре, поэтому теперь эта гайка просто-напросто болтается и отваливается от паяльника. Ещё через некоторое время из самой гайки выпрессовался внутренний цилиндрик, через который проходит жало, и теперь в собранном состоянии вся конструкция болтается. Даже наклейку на корпусе, через которую нажимается кнопка и просвечивают светодиоды, невозможно приклеить ровно, поскольку тогда кнопка нажиматься не будет (поскольку выпуклость на наклейке при нажатии будет давить в корпус), и светодиоды будут светить не в свои сегменты.

В завершении повторюсь, вся конструкция паяльника напоминает дичайший самопал, не знаю уж, это мне так повезло, или TMart всем отправляет такие паяльники, но в итоге даже после переделки мне он всё равно не нравится. Скорее всего буду покупать другой, а этот «допилю» и отложу в резерв. Кстати, может кто-то в комментариях сможет посоветовать мне проверенный хороший и не очень дорогой паяльник или паяльную станцию с керамическим нагревателем, поддержкой жал Hakko 900M и мощностью не менее 50 Вт? Я был бы очень признателен! Пока облизываюсь вот на это или, как вариант, на это.

В качестве итога всему сказанному могу посоветовать лишь одно — не связывайтесь с этим паяльником, проблем с ним больше, чем удовольствия от работы.

Небольшое примечание

P.S. По всей видимости мне (похоже как и многим другим) Tmart прислал адовые подделки отвратительного качества. Вот обзор, тест, и разборка «нормального» паяльника Tomizawa FZ-880B.

Просто сравните увиденное с моими фотографиями.


Зверушки никакой нету, извините уж…

Практическая электроника — Cчетчик витков

Счетчик витков для намоточного станка.

Знакомство с STM8 мне хотелось начать с какого нибудь полезного устройства. Им оказался счетчик витков для ручного намоточного станка.

 Мне хотелось сделать устройство с батарейным питанием от двух микропальчиковых батарей, потребляющее мало энергии в рабочем режиме, имеющее простое кнопочное управление-«Сброс»,»Вкл/Выкл». Счетчик должен уметь реверсно считать. Иногда приходится отматывать витки, или бывают не штатные ситуации.

В наличии  были STM8S003F3P6 и STM8L051F3P6 в корпусах TSSOP-20. Выяснилось что S003 не годится для моей задумки-у нее питания 3-5в, и скорее всего при 50% разряде 3вольтовой батареи микроконтроллер работать не будет. Поэтому выбор пал на STM8L051F3P6. По даташиту питание у нее от 1,8 до 3,6в. В качестве дисплея решено было использовать МT-10T7 Российского производителя МЭЛТ. Данный ЖК был куплен лет 7 назад, с тех пор достойного применения так и не нашел.Выкинуть его было жалко. 

Начнем с датчиков. В начале решено было использовать интегральные датчики Холла,формирующие  логический сигнал на выходе. Они мне достались с платы подводного фонаря. Оказалось что они не воспринимают короткие изменения магнитного поля. Даже при не больших оборотах, счетчик отказывался считать. Это меня огорчило. Пришлось изобретать свой велосипед. Решил использовать датчики холла от мотора cd-rom привода и lm358. Крайне сомнительно была работа этой затеи от 3в. Но попытка не пытка. На мое удивление схема отлично заработала при таком питании.

Схема проще не придумаешь. R5-задает ток через датчики Холла U1,U2. На DA1, сделан усилитель с КУ=50.К его выходам подключены транзисторы Q1,Q2 представляющие  преобразователя уровней.Входы микроконтроллеров подтянуты через резисторы к плюсу,поэтому дополнительный огород городить не стал. Сигналы с выходов DA1 не соответствуют логическим уровням STM8. Зачем на плате предусмотрены элементы С1,С2-уже и не помню.Очевидно собирался бороться с помехами. Транзисторы на самом деле bc817-40. Но и те что на схеме должны работать. Датчики холла hw-101A(маркировка D).

Питание на датчик, и дисплей приходят  с вывода PB1 микроконтроллера. Нагрузочной способности для этих целей более чем достаточно.

 R1 это перемычка. Номинала «0»(пофигистора) у меня не нашлось,поэтому поставил самый мелкий что был.

Максимальное значение для счета это 65535. Кнопка «RESET» используется для сброса показаний счетчика, «ON/OFF» -вкл/выкл устройства.

Так как это  мой второй проект на STM8, печатную плату можно назвать скорее отладочной.

Фото готового устройства.

В качестве датчика оборотов выступает стеклотекстолитовый диск, с приклеенным на нем ниодиевым магнитом диаметром 5мм,толщиной 1мм, и плата с датчиками Холла.Растояние между магнитом и датчиками около 5мм. Половина знакомест на дисплее осталась не задействована. Ни чего умнее не придумал-как показывать там напряжение питания. Контрастности индикатора не достаточно,поэтому пришлось наклонить всю плату под 45градусов. На фото датчик прикреплен скотчем, потом я его прикрепил несколькими витками изоленты. Конструкция получилась не шибко эстетичной, но этого мне вполне достаточно. Сам намоточный станок-ничто иное как старый механизм для перемотки кинопленки.Ни знаю   какие манипуляции  он был призван производить, но на него надевается бобина с пленкой. Индикатор,батарейный отсек, плата микроконтроллера приклеены к куску текстолита термоклеем.

Потребляемый ток во включенном состоянии 12,8мA , в выключенном 1,71мкА.

Программное обеспечение.

На звание гугу программирования ни коем разе не претендую, для спецов этот момент не будет интересен.

Код написан в среде IAR Embedded Workbench IDE. Микроконтроллер работает от встроенного RC генератора HSI с частотой 16мгц. Подсчетом числа витков занимается таймер общего назначения TIM2. Он имеет 16битный счетный регистр, и возможность работы с экодером(encoder mode). Это существенно облегчает задачу. Достаточно настроить таймер, и забыть. Он сам по себе будет считать значения, и реализовывает возможности реверсного счета. Правда значения там в два раза больше реальных получаются,из за оссобеностей работы этого режима.

Конечно же значения из TIM2 нужно как то извлекать, и выводить на экран. Этим занимается 8битный TIM4, генерирующий прерывания, по которому происходит эта операция. Прерывания приходят каждые 8мс.В обработчик засунут  опрос кнопки «сброс»,и манипуляции по выводу информации от АЦП и TIM2 на экран.

Измерением напряжения батареи занимается АЦП.  Вход опорного напряжения, внутри соединен с плюсовым источником питания микроконтроллера. Выбрать внутренний источник нельзя(как это например сделано в AVR). Зато можно измерить напряжение этого самого источника. Напряжение источника VREF измерено на заводе и записано в VREFINT_Factory_CONV byte,его можно считать. 

Что бы основной программе не было скучно, она смотрит-не завершено ли преобразование АЦП и на основе 16 выборок вычисляет среднее.

Включение/выключение схемы реализовано на основе внешнего прерывания по нажатию на кнопку. По приходу прерывания меняем переменную, и сидим ждем пока кнопку отпустят.

Если пользователь хочет выключить устройство,то основная программа сохраняет значение счетного регистра TIM2  в ОЗУ. Все не задействованные выводы делает выходами,устанавливает на них нуль. Если этого не сделать у меня ловит помехи. Отключаем источник эталонного напряжения VREF и АЦП и засыпаем. Использован самый экономичный режим halt. Проснется микроконтроллер от нажатия кнопки «On»,по внешнему прерыванию(External interrupts).

Прошивка микроконтроллера.

Это отдельная история. Когда покупал  STM32F0 Discovery, думал что программатор на ней умеет шить STM8.Оказалось что нет. Тратить деньги на отдельный программатор не хотелось, а возможности прошивки по USART меня не впечатлила(не всё 8битное семейство умеют это).

По  ссылке нашел  полноценный ST-Link. Внимательно посмотрев на схему,и на  Discovery,  выяснилось -можно допаять недостающие детали,обновить ПО, и получить почти полноценный программатор. Что  и сделал. Все заработало. Теперь мой  Discovery умеет шить STM8. Фото, без комментариев. 

Файлы проекта.

 

 

 

Программирование микроконтроллера STM8 с использованием ST-LINK V2 | Учебники STM8

В этой части руководства я расскажу о программировании и отладке микроконтроллеров STM8. Под программированием я подразумеваю перенос программы с вашего ПК во флэш-память микроконтроллеров STM8 . Этот процесс является жизненно важным шагом в обучении использованию любых микроконтроллеров. Поэтому четкое знание того, что требуется и как успешно выполнять программирование, является обязательным.

Большинство современных микроконтроллеров поддерживают какой-либо последовательный канал для программирования и отладки.Под последовательным я подразумеваю, что им не нужно много проводов для этой связи, нужны только два или три провода. В микроконтроллерах серии STM8 он называется SWIM. Это расшифровывается как однопроводной интерфейсный модуль. Это высокоскоростной канал связи между MCU и программатором / отладчиком . SWIM требуется только один провод для передачи данных. Этот вывод обозначен как SWIM на схеме выводов микроконтроллера.

Этот вывод также обозначен на плате разработки .

этот вывод должен быть подключен к выводу SWIM программатора / отладчика.Также должны быть подключены заземляющий контакт и контакт NRST (Resent). На этом подключение завершено. На изображении ниже показан программатор / отладчик, вы можете увидеть маркировку. Плата для разработки также должна получать питание с помощью кабеля micro-USB.

Программное обеспечение для программирования

Последнее программное обеспечение, которое будет работать на чипе STM8, будет представлено в виде файла HEX. Вы могли получить его из Интернета или от человека, которого наняли для разработки программного обеспечения, или вы могли создать его самостоятельно, используя один из инструментов разработки.Программное обеспечение программатора считывает программу из этого HEX-файла и записывает ее во флэш-память микросхемы STM8, чтобы она могла ее выполнить.

Я использую программное обеспечение ST Visual Programmer или STVP, оно доступно бесплатно от ST. Вы можете скачать его отсюда и установить на свой компьютер. Он также устанавливает драйверы для ST-LINK V2.

Когда вы запускаете его в первый раз, вы получаете диалоговое окно конфигурации, как показано на изображении ниже. Он позволяет вам выбрать оборудование для программирования, режим программирования и целевой микроконтроллер.Выберите ST-LINK в качестве оборудования и режим программирования как SWIM.

Главное окно STVP показано ниже. Вам просто нужно выбрать файл HEX с помощью команды открытия, а затем нажать кнопку «Программа».

Я прикрепляю файл HEX, который мигает светодиодом на PB5 STM8S103F3. Это обычное крепление светодиода к макетной плате, показанное на изображении выше. Вы можете попробовать описанную в этой статье процедуру записи, используя этот HEX-файл.

Мы сердечно благодарим следующих людей, которые поделились этой страницей в различных социальных сетях и вдохновили нас на разработку более качественного контента!

Маджид Куябади, Бипин Кумар Синха, Клаудиу, Григоре Ман, Эльман, Анисио, Ларс Мадсен, Рахул, Ким Кёнхан, Хенти, Махди Хоссейни, Мадеш, Уттам Дутта, Авинаш, Авинаш Гупта,

ST STM8 — последняя документация PlatformIO

Конфигурация

платформа = ststm8

STM8 — это семейство 8-битных микроконтроллеров от STMicroelectronics, расширенный вариант архитектуры микроконтроллеров ST7.Микроконтроллеры STM8 особенно дешевы для полнофункционального 8-битного микроконтроллера.

Для получения более подробной информации посетите сайт производителя.

Отладка — решение «в один клик» для отладки с нулевой конфигурацией.

Вы можете переключаться между стабильными выпусками платформы разработки ST STM8 и последней апстрим-версии с использованием платформу в «platformio.ini» (файл конфигурации проекта), как описано ниже.

Конюшня

; Последняя стабильная версия
[env: latest_stable]
платформа = ststm8
доска =...

; Кастомная стабильная версия
[env: custom_stable]
платформа = [email protected]
доска = ...
 

Восходящий поток

 [env: upstream_develop]
платформа = https://github.com/platformio/platform-ststm8.git
доска = ...
 

Имя

Описание

framework-arduinostm8

API-интерфейс программирования, подобный Arduino, для микроконтроллеров STM8

framework-ststm8spl

Стандартная периферийная библиотека для микроконтроллеров ST STM8S / A

инструмент-openocd

Открыть встроенный отладчик.Бесплатная и открытая отладка на кристалле, внутрисистемное программирование и тестирование границ

инструмент-stm8binutils

Набор инструментов STM8 с отладчиком GDB

инструмент-stm8flash

stm8flash — приложение для программирования устройств stm8 с помощью SWIM / stlinkv (1,2).

инструмент-stm8gal

stm8gal — это приложение для программирования или чтения памяти STM8 с использованием встроенного загрузчика ПЗУ (BSL) через интерфейс UART или SPI

инструментальная цепочка-SDCC

Компилятор C для малых устройств

Предупреждение

Пользователи Linux :

Пользователи Windows:

Убедитесь, что у вас правильно установлен драйвер USB с платы производитель

Имя

Описание

Ардуино

Arduino Wiring-based Framework позволяет писать кроссплатформенное программное обеспечение для управления устройствами, подключенными к широкому спектру плат Arduino, для создания всех видов творческого кодирования, интерактивных объектов, пространств или физического опыта

Стандартная периферийная библиотека

Стандартная периферийная библиотека ST предоставляет набор функций для работы с периферией микроконтроллеров семейства STM32.

STM8 Development Board STM8S003F3P6 Philippines …

STM8 Development Board STM8S003F3P6

Эта отладочная плата представляет собой минимальную коммутационную плату для микроконтроллера STM8S003F3P6 STM8. Все контакты ввода / вывода отмечены и подключены к стандартным контактам 2,54 мм для удобного использования.

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

  • Встроенная микросхема STM8S003F3P6
  • Встроенный SWIM-разъем для программирования
  • Встроенный переключатель сброса
  • Зарезервированное место для пайки внешнего кварцевого генератора
  • .3 стабилизатор напряжения для покрытия питания от 5 В до 3,3 В
  • Разъем Mini USB для питания платы
  • Размер платы: 36,5 x 21,6 мм

БЫСТРЫЕ ССЫЛКИ:

ЧТО ТАКОЕ STM8

Недорого, 8 -битовый микроконтроллер производства ST, который может заменить Arduino / ATMEGA в простых приложениях.

ПИТАНИЕ ПЛАТЫ

На задней стороне вы можете увидеть LT1117-3.3 в SOT223, который преобразует входное напряжение с контактов RAW (левые углы) в 3.3 В. Плата также может питаться через разъем USB, но линии передачи данных, к сожалению, нигде не подключены.

Для внешних цепей можно использовать как входное напряжение, так и регулируемое 3,3 В, они доступны на нижнем коллекторе. Что сбивает с толку, вывод «5V» напрямую подключен ко входу, регулятора на 5 В нет. С подключенным USB вы, конечно, получите что-то довольно близкое к 5 В.

Если вы планируете управлять чем-то энергоемким с выходом 3,3 В, имейте в виду, что на регуляторе нет радиатора, поэтому его можно легко достать. горячий, если вы используете более высокое входное напряжение или переборщили с потребляемым током.Для Neopixels и подобных устройств я рекомендую подключать их напрямую к линии 5 В (при условии, что вы запитываете плату от USB!).

Есть еще два способа питания платы, а именно контакты в нижнем ряду и Вывод «3V3» в заголовке программирования. Похоже, вы можете просто подключить внешний источник 3,3 В к любому из контактов «3V3», и он будет работать. Я волновался, что LDO может не понравиться, но он работает нормально.

Это означает, что вы можете запитать его прямо от программатора, но будьте очень осторожны с большими нагрузками: в ключе ST-Link есть действительно крошечный регулятор (фото ниже).Легко жарить.

Примечания к разработке STM8S003F3P6 v

Taobao купил одинSTM8S003Разработка платы, всего несколько долларов, нет ничего! ! ! Такое ощущение, что его купили по такой дешевой для него цене, но опять же, дешево и нехорошо, это совсем не цена. Недавно я отладил лазерное сельскохозяйственное оборудование и купил STM32F407, который до сих пор является флагманским процессором высокого класса серии STM32 (июль 2017 г.). Я думаю о мобильных телефонах ~ ха-ха.в любом случае. .. Сделайте отступление, сегодня я хочу записать STM8S003

Давайте посмотрим на введение в новый фильм об этом мошенничестве :::

STM8S Основные характеристики основной платы:

Эта плата разработки использует линию питания MicroUSB и интеллектуальную линию передачи данных мобильного телефона совместима, линию передачи данных легко получить. это важная особенность, которая отличает этот модуль от других товаров для дома.

Сверхнизкая цена, удобный дизайн и полный набор материалов сэкономят вам деньги, время, силы и нервы!

STM8S Основные характеристики основной платы:

1. Используйте STM8S003F3P6Master управляющую ИС.

2. Вы можете использовать контакт 2,54 на плате или контактной площадке для получения питания. При использовании пэда для подачи питания диапазон входного напряжения составляет 4,5-15 В, и он может одновременно выводить 3,3 В наружу через контакт!

Примечание. Контактный разъем 5 В подключается к входному источнику питания модуля.

3. Выведите все контакты, метка контакта отмечена рядом с контактом, с кнопкой сброса, индикатором питания и индикатором демонстрации программы. Хотя воробей небольшой, у него пять внутренних органов.

4. Поддержка режима отладки SWIM.

Техническая информация:

Ссылка для скачивания:

Информация о программе STM8Series: http://pan.baidu.com/s/1dDF3QNJ
Программный инструмент STM8 IAR + STVP: http: // pan.baidu.com/s/1sjDfSLJ
STM8другая информация: http://pan.baidu.com/s/1o6Jpox0

1. Принципиальная схема основной платы (формат PDF) и программыtestSource. Запустите тестовую программу, светодиодный индикатор будет мигать после включения, поэтому вы можете проверить, нормально ли работает основная плата.

2. Обеспечить в среде разработки IAR и STVD Операция регистрации и работа функций библиотеки Два набора поддерживающих подпрограмм порта ввода / вывода, подпрограммы таймера, подпрограммы отправки UART, подпрограммы приема UART, примеры переключения часов, подпрограммы AD.

3.STM8 Приложения

4.STM8 Библиотека пакетов

5.STM8 Регистрация программирования каждого функционального модуля

6.IARD Среда разработки и программное обеспечение для программирования STVP

STM8S103F3P6 Сравнение производительности:

Как видите, суть в том, что их всего 100 раз, но я не думаю, что он будет использован один раз. ,,

Стандартная коммутационная плата STM8S103F3 (stm8blue)

Эти простые коммутационные платы доступны на aliexpress за сумму до одного человека. Доллар (я получил свой по 67 центов, включая доставку из Китая).Эти доски — моя основная платформа для разработки.

Характеристики

Аппаратные функции очень похожи на ATmega8:

Название платы stm8blue
ЦП STM8S103F3P6
Часы 16 МГц, внутренний генератор
Вспышка 8 КБ
RAM 1 КБ
EEPROM 640 байт
Напряжение ввода-вывода 3.3В
GPIO 14
последовательные соединения UART, SPI, I2C
ШИМ 4 (до 7 при альтернативном сопоставлении)
АЦП 5 каналов, 10 бит
светодиод PB5 (Arduino D3), активный низкий уровень, общий с I2C, красный
интерфейс программирования SWIM, без серийного загрузчика
Разъем USB mini, только питание (линии передачи данных не подключены)

Один (красный) светодиод подключен к GPIO PB5 (вывод 11 процессора).Этот светодиод горит низким уровнем активности. Имейте в виду, что это один из сигналов I2C и с использованием светодиода. блокирует шину I2C . Кнопка предназначена для сброса. ЦП работает от 3,3 В, а линейный регулятор встроен в плату. Разъем micro USB есть только для питания (5 В) линии передачи данных не подключены.

Все контакты ЦП легко доступны на (дополнительных) разъемах для контактов (шаг 2,54 мм, идеально подходит для макетов).

Они очень похожи на платы ESP14 Wifi и большинство программ также будет работать с этими китайскими жемчужинами.

Я использую совместимый флеш-инструмент ST-Link V2 из зеленого пластика. Корпус. Тот, что в металлическом корпусе, имеет другую распиновку.

Подключение к flashtool:

Название сигнала P3 на плате процессора Инструмент для зеленой вспышки Инструмент для зачистки металла
3V3 1 2 7
ПЛАВАТЬ 2 5 5
ЗЕМЛЯ 3 7 3
НРСТ 4 9 1

Оповещение о взломе

Из-за плохого качества производства печатных плат некоторые более свежие партии (по состоянию на 2020 г.) Платы stm8blue, похоже, не имеют рабочего подключения к GND на SWIM разъем или короткое замыкание вывода SWIM на GND.

Вывод SWIM укорочен на GND

Попробуйте подключить GND к другому контакту GND платы или запитать плату через USB.

Большинство плат поставляются с запрограммированным миганием. Если светодиод мигает, когда плата питается от USB, но не работает, когда она подключена только к флешке. инструмент, на вашей плате, вероятно, отсутствует соединение GND.

Разблокировка микроконтроллера с защитой от записи

Мои коммутационные платы поставлялись с предварительно запрограммированной программой мигания и активным бит защиты от записи.Для разблокировки перед первым использованием с помощью команды линия:

  stm8flash -cstlinkv2 -pstm8s103? 3 -u
  

То же самое можно сделать из Arduino IDE, нажав Инструменты-> Записать. Загрузчик после выбора платы на базе STM8 и правильного выбора тип программатора (ST-Link V2). Название этого пункта меню не говорит само за себя, но я не мог найти способ изменить его или добавить еще один запись с лучшим названием. (Если знаете как, откройте вопрос)

Требуемый двоичный файл для stm8flash включен в загрузку автоматическая установка.В системах Windows его можно найти в каталоге AppData \ Local \ Arduino15 \ packages \ sduino \ tools \ STM8Tools \ 2019.02.05 \ win .

Альтернативой графического интерфейса пользователя является инструмент STVP от ST, но он включает установку другой программный пакет (см. выпуск №85).

Назначение номеров контактов

Среда Arduino использует собственную схему нумерации выводов, независимую от номера контактов физического процессора. Многие скетчи и библиотеки Arduino содержат жестко запрограммированные предположения о количестве контактов со специальными функциями.В идеале все эти числа должны быть одинаковыми, и все программы могут быть скомпилирован без изменений.

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

В итоге выбрал простую геометрическую нумерацию квадрата UFQFPN20 пакет, начиная с вывода порта PA1 и считая с 0. Это приводит к это отображение:

sduino штифт STM8S103 вывод порта процессора
0-2 PA1-PA3 (PA1 и PA2 только слабые драйверы вывода)
3-4 PB5-PB4 (в обратном порядке)
5-9 PC3-PC7
10-15 ПД1-ПД6
  • серийный: 14,15
  • SPI: 2,7,8,9
  • I2C: 3,4 (истинный открытый сток.не может управлять высоким сигналом без внешнего подтягивающий резистор)
  • Аналог: 6,11,12,14,15
  • PWM: 2,5,6,12 плюс только 13 или 7-9, но не 13 (через альтернативное отображение)

плюсов такого подхода:

  • Легко и логично для использования на макетной плате
  • Очень четкий и логичный порядок выводов порта
  • TX и RX будут редко используемыми аналоговыми номерами контактов A3 / A4 в конец списка номеров аналоговых выводов
  • По крайней мере, аналоговые контакты указаны в паспорте порядка

минусов такого подхода:

  • Аналоговые контакты все еще разбросаны по
  • Все функции используют совершенно другие номера контактов, чем Arduino

Я все еще не очень доволен этим отображением.Вместо того, чтобы упрощать это только добавляет еще один уровень абстракции и путаницы. Чтобы избежать этого, я добавлены определения для обычных имен выводов ЦП, например PA1 и PD2 . в В конце концов, эти обозначения кажутся мне намного проще. Я открыт для предложений для лучшего сопоставления номеров контактов.

Выбранное отображение контактов для STM8S103 (возможная альтернативная функция в паратезов):

Phys. STM8 контакт Имя Функции Геометрическое отображение специальные функции
1 PD4 UART_CLK / T2-1 / звуковой сигнал 13 ШИМ
2 ПД5 TX / Ain5 14 Аналог A3
3 ПД6 RX / Ain6 15 Аналог A4
5 PA1 (OscIn, без HS) 0
6 PA2 (OscIn, без HS) 1
10 PA3 SS / T2-3 2 ШИМ
11 PB5 SDA LED 3
12 PB4 SCL 4
13 PC3 T1-3 / [T1-n1] 5 ШИМ, (n ~)
14 PC4 T1-4 / Ain2 / [T1-n2] 6 ШИМ, аналоговый A0, (n ~)
15 PC5 SCK / [T2-1] 7 (~)
16 PC6 MOSI / [T1-1] 8 (~)
17 PC7 MISO / [T1-2] 9 (~)
18 ПД1 (плавание) 10
19 ПД2 Ain3 / [T2-3] 11 Аналог A1, (~~)
20 PD3 Ain4 / T2-2 12 ШИМ, аналог A2

Специальные штифты

Контакты D3 / D4 (SDA / SCL, PB5 / PB4) отличаются от других, поскольку они правда открытые сливные штифтыЭто означает, что они могут только снизить выходную мощность или открыто. Чтобы поднять его на высокий уровень, им требуется внешний подтягивающий резистор. Это причина, по которой светодиод на этой коммутационной плате подключен между + 3,3 В и контакты, а не между контактом и GND, как обычно. Так это возможно для управления светодиодом путем записи нуля в выходной регистр.

D5 / D6 (PA1 / PA2, OscIn / OscOut) слабее остальных контактов. Старайтесь избегать эти контакты для светодиодов и других приложений с более высоким током.

Схема

Stm8s003f3 программирование arduino.Как программировать stm8 с arduino ide

Stm8s003f3 программирование arduino


Arduino IDE — это специальное программное обеспечение, работающее в вашей системе, которое позволяет вам писать скетчи-синонимы программы на языке Arduino для различных плат Arduino. Язык программирования Arduino основан на очень простом аппаратном языке программирования, называемом обработкой, который похож на язык C. После того, как скетч написан в среде Arduino IDE, он должен быть загружен на плату Arduino для выполнения.Загрузите программное обеспечение Arduino в зависимости от вашей ОС с официального сайта и следуйте инструкциям по установке. Структура программы Arduino довольно проста. Программы Arduino имеют минимум 2 блока. В каждом блоке есть набор операторов, заключенных в фигурные скобки :. Здесь setup — это блок подготовки, а цикл — это блок исполнения. Функция настройки выполняется первой при выполнении программы, и эта функция вызывается только один раз. Функция настройки используется для инициализации режимов вывода и запуска последовательной связи.Эта функция должна быть включена, даже если нет операторов для выполнения. После выполнения функции настройки следующий выполняется блок выполнения. В исполнительном блоке содержатся такие операторы, как чтение входов, запуск выходов, проверка условий и т. Д. В приведенном выше примере функция цикла является частью исполнительного блока. Как следует из названия, функция цикла многократно выполняет набор операторов, заключенных в фигурные скобки. Примечание: Arduino всегда измеряет продолжительность в миллисекундах. Поэтому всякий раз, когда вы упоминаете задержку, указывайте ее в миллисекундах.В процессе экспериментов с Arduino написание программы Arduino — не единственная важная вещь, не менее важно создание макетной схемы. Шаг 2: Подключите 13-й цифровой вывод Arduino к положительной шине питания макетной платы, а GND — к отрицательной. Шаг 3: Подключите положительную шину питания к клеммной колодке через резистор 1 кОм. Шаг 4: Прикрепите светодиод к портам под разъемом резистора на клеммной колодке. Шаг 5: Замкните цепь, подключив катод короткую хорду светодиода к отрицательной полосе питания макета.Это уменьшит количество итераций, необходимых для обновления номера вывода в программе при подключении светодиода к другому цифровому выводу. Принимая во внимание, что номер пина нужно изменить в 3 разных операторах в версии. Волшебство происходит, когда вы щелкаете значок загрузки в Arduino IDE. Программа будет загружена в микроконтроллер платы Arduino, и светодиод в схеме начнет мигать.

Как программировать stm8 с arduino ide


С тех пор он превратился в страницу для обмена информацией по этому вопросу и, конечно же, о STM8 eForth.Это то, чем вы не услышите хвастовства поставщиков коммерческих инструментов — просто попробуйте установить лицензию на Travis-CI! Во-вторых, доступ к исходному коду позволяет не только понять, как работают инструменты, но и улучшить инструменты или по-разному взаимодействовать с сообществом разработчиков. Качество создаваемого кода конкурентоспособное, а сообщество разработчиков очень активное. Если вы ищете прототипы оборудования, стоит посетить коммутационную плату STM8, и тогда есть недорогие платы, которые могут хорошо подойти для вашего проекта автоматизации.В некоторых случаях Forth может быть интерактивной функцией, которую вам не нужно писать. В любом случае стоит попробовать: получите двоичный файл со страницы релизов и попробуйте прошить плату STM8 — в следующих разделах вам все равно понадобится двоичный файл для практики. Маркетинговый отдел ST представляет «продуктовые линейки», и иногда за ними трудно уследить. «Строка значений» включает в себя такие же микросхемы «низкой плотности», «средней плотности» или «высокой плотности», что и другие строки. Разница в том, что гарантируется в спецификациях, включая размер памяти.STM8S имеет ту же «производительность», что и STM8S, и «значение» во многом зависит от того, сколько вашему приложению необходимо для сохранения содержимого Flash после, скажем, циклов стирания-записи. Что еще хуже, таблица данных, похоже, была отредактирована без какого-либо отношения к базовому кремнию, иногда скрывая особенности, которые, очевидно, существуют e. Если это не сработает, попробуйте разные комбинации контактов на шагах 2 и 3. Флэш-память может использоваться буквально как ОЗУ: после разблокировки флэш-памяти, когда вы записываете один или несколько байтов, мост памяти выполняет процесс чтения-изменения-записи, который останавливает ядро ​​STM8 i.Это не быстро, но очень просто в использовании! Одно время в ядре STM8 eForth была ошибка, из-за которой флэш-память использовалась в качестве блокнота в режиме интерпретатора — ошибка была обнаружена из-за необъяснимой остановки ядра, а не из-за износа! Флэш-память STM8 не будет быстро изнашиваться — микросхемы разработки выдерживают многие тысячи циклов записи без заметного эффекта, даже если в таблице данных указано «циклы записи» e. Конечно, никогда не следует превышать указанное количество циклов записи в «производственных системах», и никогда не следует развертывать микросхему разработки с большим количеством операций записи! Обычный адаптер ICP применяет последовательные резисторы в линиях управления, а при использовании 3.Ситуация, возможно, улучшилась, и я попробую еще раз в будущем.

Stm8s103f3p6 программирование

Три платы и один флэш-программатор вместе доступны по цене менее пяти долларов, включая доставку на aliexpress. Чтобы загрузить скомпилированный скетч на подключенную плату, вам необходимо установить флеш-инструмент. Некоторые библиотеки Arduino уже перенесены на C-синтаксис. Ознакомьтесь с инструкциями по миграции API. Стоит меньше доллара. Wifi-платы ESP14 очень похожи.По сути, это вариант этих плат с добавленным ESP Wifi-модулем. Почти все программы должны работать и на этих китайских драгоценных камнях с поддержкой Wi-Fi. Этих плат еще нет? Подробности см. В разделе «Ограничения» и «Рекомендации по миграции». Отсюда вы можете искать эти документы. Введите условия поиска ниже. Переключить навигацию Sduino. Включенные библиотеки Некоторые библиотеки Arduino уже перенесены на C-синтаксис. Только режим SPI. Только поддержка I2C. Управление двигателем Шаговые: Шаговые двигатели с 2, 4 или 5 фазами.Сервопривод: до 12 сервоприводов с использованием только 1 таймера. Поддерживаемые системы Linux 64 bit: проверено на Ubuntu MacOS: проверено на Требуется ручная установка. Действие клавиш? Открыть эту справку n Следующая страница p Предыдущая страница s Поиск.

Stm8s103f3p6 программирование arduino

Стоимость системы снижается благодаря высокому уровню интеграции системы с внутренними тактовыми генераторами, сторожевым таймером и сбросом при отключении питания. Предлагается полная документация, а также широкий выбор средств разработки. Дистрибьютор сообщил дату инвентаризации: обратитесь в нашу службу поддержки для получения информации о конкретных устройствах.Этот браузер устарел и не поддерживается st. В результате вы не сможете получить доступ к определенным функциям. Считайте, что современные браузеры :. Так почему бы не воспользоваться возможностью обновить свой браузер и не увидеть этот сайт правильно? Сохраните в myST. Портфель продаж. Начать. Партнерские продукты. Быстрые ссылки. Читать больше Читать меньше. Имя дистрибьютора. Заказ 1. Заказ 0. Newark Element14 Склад Мин. Элемент Farnell 14 Склад Мин. Заказ

Stm8s003f3p6 программирование

Стоимость системы снижается благодаря высокому уровню интеграции системы с внутренними тактовыми генераторами, сторожевым таймером и сбросом при отключении питания.Предлагается полная документация, а также широкий выбор средств разработки. Дистрибьютор сообщил дату инвентаризации: обратитесь в нашу службу поддержки для получения информации о конкретных устройствах. Этот браузер устарел и не поддерживается st. В результате вы не сможете получить доступ к определенным функциям. Считайте, что современные браузеры :. Так почему бы не воспользоваться возможностью обновить свой браузер и не увидеть этот сайт правильно? Сохраните в myST. Портфель продаж. Начать. Партнерские продукты. Быстрые ссылки. Читать больше Читать меньше.Имя дистрибьютора. Заказ 1. Заказ Заказ 0. Newark Element14 Склад Мин. Элемент Farnell 14 Склад Мин. Маркетинговый статус Активен. Избранные видео. Увидеть все. STM8 жив и здоров! ST во встроенном мире STM8S Value line — 8-битные микроконтроллеры. Вот возможность познакомиться с основами нашей линейки ценностей STM8S! Рекомендуется для вас. Номер части. Изображение Номер детали. Визуальное состояние IAR. Обучение поддержке и применению Изображение Номер детали. Академия IAR. ST Тренинги. Ваша загрузка скоро начнется.Описание Версия Размер Действие. А.Н. Измерение чувствительности к электростатическому разряду.

Программирование Stm8

GitHub является домом для более 40 миллионов разработчиков, которые вместе работают над размещением и проверкой кода, управлением проектами и созданием программного обеспечения. Если ничего не происходит, загрузите GitHub Desktop и попробуйте еще раз. Если ничего не происходит, скачайте Xcode и попробуйте еще раз. Если ничего не происходит, загрузите расширение GitHub для Visual Studio и повторите попытку. Веб-сайт проекта для получения дополнительной информации о поддерживаемом оборудовании и программном API.Начиная с версии 0. Это рекомендуемый способ установки. Для ручной установки без IDE, пожалуйста, ознакомьтесь с инструкциями по ручной установке. Очень медленная компиляция после использования IDE v1 «сохранить как». Выйдите из среды разработки Arduino и снова откройте ее. Раздражает, но безобидно. Обновление до выпуска v0. Большинство частей базовой системы Arduino и некоторые библиотеки Arduino уже перенесены на C-синтаксис. Подробности см. В руководстве по миграции. Это не прямая замена AVR, но благодаря некоторой магии препроцессора C программный API по-прежнему очень, очень похож, и часто бывает достаточно просто переместиться через открывающую скобку оператора создания экземпляра класса и заменить точку в вызове метода для подчеркивания.Обзор см. В руководстве по миграции. Версии Arduino IDE 1. Избегайте использования версии 1. Может потребоваться обходной путь, если вы увидите сообщение об ошибке «сначала выберите порт загрузки». Перейти к содержанию. Закрыть Присоединяйтесь к GitHub сегодня GitHub является домом для более 40 миллионов разработчиков, которые вместе работают над размещением и проверкой кода, управлением проектами и созданием программного обеспечения. Зарегистрироваться. Отрасль: разработка. Найти файл. Войти Зарегистрироваться. Вернитесь назад. Запуск Xcode Если ничего не происходит, загрузите Xcode и повторите попытку. Последний коммит. Последняя фиксация ba59 6 февраля, веб-сайт проекта для получения дополнительной информации о поддерживаемом оборудовании и программном API для отслеживания проблем github для отчетов об ошибках и других проблем, тесно связанных с содержимым репозитория. Поскольку этот проект основан на компиляторе SDCC Small Devices C, я назвал его » Small Devices -uino »или« Small-duino ».Установка Начиная с версии 0. Запустите Arduino-IDE. Включенные библиотеки Большинство частей базовой системы Arduino и некоторые библиотеки Arduino уже перенесены на C-синтаксис. Только режим SPI. Только поддержка I2C. Сервопривод: до 12 сервоприводов с использованием только 1 таймера. MacOS: проверено на Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс. Вы вышли из системы на другой вкладке или в другом окне.

Stm8s001j3 Arduino

Начните кодирование онлайн с помощью веб-редактора Arduino, сохраните свои эскизы в облаке и всегда пользуйтесь самой последней версией среды IDE, включая все добавленные библиотеки и поддержку новых плат Arduino.Примечания к выпуску Mac OS X Контрольные суммы исходного кода sha Загрузите предварительную версию будущего выпуска с самыми последними функциями и исправлениями. Эта версия НЕ должна использоваться в производстве. Все версии Arduino 00xx также доступны для загрузки. Активная разработка программного обеспечения Arduino ведется на GitHub. См. Инструкции по созданию кода. Архивы исходного кода последней версии доступны здесь. Архивы подписаны PGP, поэтому их можно проверить с помощью этого ключа gpg. Загружая программное обеспечение с этой страницы, вы соглашаетесь с указанными условиями.Веб-редактор Arduino Начните кодирование в Интернете с помощью веб-редактора Arduino. Сохраняйте свои эскизы в облаке и всегда пользуйтесь самой последней версией среды IDE, включая все библиотеки и поддержку новых плат Arduino. Приступая к работе с кодом в Интернете. Среда написана на Java и основана на Processing и другом программном обеспечении с открытым исходным кодом. Это программное обеспечение можно использовать с любой платой Arduino. Инструкции по установке см. На странице «Приступая к работе». Предыдущие выпуски. Исходный код. Другое программное обеспечение.Эти инструкции по перепрошивке базовых образов предназначены только для справки. Смотрите список изменений. Условия эксплуатации.

Stm8s003f3p6 против stm8s103f3p6

Страницы: [1] 2. Gadgeroonie Sr. Re: STM8S. Мне дали немного для моего клуба электроники. IDE не так уж и плоха — мне она очень нравится. Вы должны предоставить свой адрес электронной почты, чтобы получить лицензионный код — у меня нет проблем с этим. Начнем с мелочей. Код написан на C, и я планирую в ближайшее время загрузить несколько примеров на github. Насколько мне известно, нет поддержки с открытым исходным кодом для функций отладки.Есть руководство, но его нет, и я не нашел много исходных примеров, и мне пришлось создать свою собственную версию файлов сопоставления периферийных устройств для этого конкретного варианта STM8. В бесплатной пробной версии он ограничен скомпилированным кодом 8k, но этот вариант STM8 имеет только 8k flash, так что это не проблема. Кривая обучения с этим инструментом довольно крутая, но для него есть довольно большое руководство. Он включает в себя как программный симулятор с отладкой на уровне исходного кода, так и поддержку возможности отладки в режиме реального времени самого чипа через интерфейс SWIM.Это очень мощный инструмент и явное преимущество перед Atmel. Он также имеет программное обеспечение и инструменты для отладки цепей. Я использовал это, чтобы упростить сборку измененной версии eForth, которую я нашел, поскольку она изначально разрабатывалась в этой среде. Большой недостаток по сравнению с Arduino заключается в том, что настройка и понимание инструментальной цепочки занимает гораздо больше времени, и вы не найдете готовых библиотек и множества примеров, которые вышли из экосистемы Arduino.Чтобы заставить работать любой нетривиальный датчик, STM8 потребуется во много раз больше времени, чтобы начать работать, чем с Arduino из-за этого. Учитывая, что clone Pro Mini можно купить на ebay не намного дороже, я не уверен, что есть действительно веская причина отдавать предпочтение дешевым STM8. Это было 99 центов. Для чего это люди используют? Цитата: ieee, 09 апреля, pm. Я тоже считаю, что LowPower может быть единственным преимуществом. Но я не знаю, есть ли 3. Цитата из: MrMark, 11 апреля, pm. Значит, тогда мне не следует относиться к ним с таким энтузиазмом? Меньше ОЗУ и места для программы.

stm8s003 arduino

Первая команда Первая команда Все темы для обсуждения на выходных Обзор Показать больше новостей Продолжительность видео 03:50 Продолжительность видео 02:13 Продолжительность видео 01:11 Последние видео 28 15 24 Лестер Сити за годы: 1920-1930 Другие галереи Поделиться URL-адресом скопировано на буфер обмена. На этой неделе USGA приняла решение вернуться в традиционное место проведения US Open после нескольких лет ломки стереотипов. В 2013 году они вернулись в сложный с точки зрения логистики гольф-клуб Merion (после 32-летнего отсутствия), а в 2015 году это было совершенно новое место в Чемберс-Бей.Общая длина будет меняться в течение четырех дней с максимальной длиной 7900 ярдов — на первый взгляд устрашающее число. Поле было спроектировано только в 2006 году и представляет собой что-то вроде неизвестного объекта, еще не проводившего турнира PGA Tour, хотя на нем проводился чемпионат США среди любителей в 2011 году. Майк Дэвис, исполнительный директор USGA, отвечает за организацию открытых курсов США. Ниже приводится его краткое изложение Эрин Хиллз и того, какие уникальные свойства нам следует искать. Поле Висконсина — это продуваемая ветрами территория, обеспечивающая твердую игровую поверхность, длина которой меньше ее длины в таблице результатов.Единственная область, в которой бомбардировщики будут иметь преимущество, — это четыре пар 5, все они имеют длину более 600 ярдов и предлагают наилучшие возможности для набора очков. Стоит следить за погодой, так как на этой неделе матушка-природа, несомненно, сыграет свою роль, так как ветер может дуть с любого направления. В результате фервеи имеют большую ширину, особенно по сравнению с обычными трассами US Open, такими как Oakmont, Pebble Beach и Winged Foot. Тем не менее, ветер — не единственная его защита: фервеи с очертаниями делают очень мало плоских лжи и нескольких полуслепых и слепых бросков.Эти бункеры окружают многие зеленые лужайки, а также выбритые участки стока. Вместо того, чтобы видеть, как игроки выскакивают из толстого грунта, если они пропускают танцпол, у них вместо этого будет выбор: поставить, сыграть удар, бежать или качать. Единственная трасса US Open на недавней памяти, которая напоминала об этом, — это Pinehurst no. Это будут гладкие поверхности с множеством приподнятых или многоярусных поверхностей. Таким образом, на этой неделе будут вознаграждены превосходные навыки игры по мячу, особенно тем, кто хорошо удаляет мяч с площадки-ти.Умение стрелять, хорошо играть на ветру и любить твердые поверхности — все это плюс, а творческая короткая игра будет иметь решающее значение. Быть длинным, безусловно, кажется преимуществом, но не обязательным, хотя статистика расстояния вождения будет гораздо важнее, чем точность вождения в течение недели. Крупные игроки часто добиваются успеха на треках US Open, причем восемь из последних 11 победителей попадают в восьмерку лучших для DD в течение недели их успеха. Высокий процент зеленых в регулировании будет ключевым и, как правило, из года в год на этом крупном рынке.Открытый чемпионат США по теннису неизменно сводится к пропущенному удару здесь или ключевому удару там, но для того, чтобы участвовать в состязаниях в воскресенье, игрок должен забивать много зеленых. Средний рейтинг GIR для каждого чемпиона в этом столетии составляет всего 7. Тем не менее, с учетом множества захватывающих ответных ударов, ожидаемых на Эрин-Хиллз, он будет отдан в пользу тех, у кого есть немного чутья, и тем, кто комфортно формирует мяч в обе стороны, то есть набранные удары приближение к зеленому будет показательным показателем. Гладкая зелень подходит для агрессивных клюшек, но форма с короткой клюшкой является неотъемлемой частью успеха на большинстве турниров.На этой неделе будет сложно спасти паров от своенравных подходов, поэтому скремблирование станет ключевым параметром, который следует учитывать, и потребуется определенная креативность. Это, безусловно, пойдет на пользу молодому поколению и более спортивным игрокам в гольф. Пар 72 должен предлагать больше возможностей для набора очков, и это поле, которое вознаграждает агрессивную игру с железом. Многие известные имена стали чемпионами Открытого чемпионата США, и за последние шесть лет сливки действительно поднялись на вершину. Только Каймер до победы не входил в топ-15 в мире, но немец продемонстрировал свои качества, выиграв чемпионат PGA в 2010 году.В прошлом году DJ продолжил тенденцию недавних победителей Открытого чемпионата США провести отличные сезоны перед титулом. Он не выигрывал до своего триумфа, но зарегистрировал восемь попаданий в топ-15 из 11 событий. В результате каждый победитель с начала века до своего успеха фиксировал хотя бы один финиш в пятерке лучших, а девять победили хотя бы один раз. Последние семь победителей, в частности, все достигли высшей формы, причем шесть из них зарегистрировали как минимум четыре места в топ-10 в том году до своего успеха (исключение составлял Каймер, у которого все еще было два, один из которых выигрывал на TPC Sawgrass). .Хотя курс меняется каждый год, предыдущая форма US Open выглядит большим плюсом. За последние 20 лет или около того Ретиф Гусен, Эрни Элс, Ли Джанзен и Пейн Стюарт стали двукратными чемпионами, а Тайгер Вудс — трехкратным победителем. Более того, несмотря на то, что ни разу не выигрывал, Фил Микельсон и Колин Монтгомери неоднократно становились вторыми. DJ продолжил эту тенденцию, выиграв всего год после горя в Чемберс-Бей, а также заняв 4-е место в 2014 году и 8-е место в 2010 году. Это означает, что 19 из 27 победителей с 1990 года ранее входили в топ-10.Совсем недавно шесть из последних 10 победителей ранее входили в восьмерку лучших, в то время как суперзвезды Макилрой и Спит выиграли только с третьей попытки, но уже заняли 10-е и 17-е места соответственно. Стоит позаботиться о парнях, которые примут вызов Открытого чемпионата США. Arduino против Raspberry Pi — что лучше? — Аддомс № 7

STM8S003F3P6 8-битные микроконтроллеры 8K Flash-память для программ — лучший завод по сборке печатных плат в Китае

Описание

8-разрядные микроконтроллеры STM8S003F3 / K3 value line предлагают 8 Кбайт флэш-памяти программ, а также встроенную EEPROM с истинными данными.В справочном руководстве по семейству микроконтроллеров STM8S (RM0016) они упоминаются как устройства с низкой плотностью размещения. Устройства линейки недорогих устройств STM8S003F3 / K3 обеспечивают следующие преимущества: производительность, надежность и снижение стоимости системы. Производительность и надежность устройства обеспечивается поддержкой EEPROM с истинными данными. до 100000 циклов записи / стирания, усовершенствованное ядро ​​и периферийные устройства, изготовленные по новейшей технологии с тактовой частотой 16 МГц, надежные операции ввода-вывода, независимые сторожевые таймеры с отдельным источником тактовой частоты и система защиты тактовой частоты.Стоимость системы снижается благодаря высокому уровню интеграции системы с внутренними тактовыми генераторами, сторожевым таймером и сбросом при отключении питания.

Основные характеристики

  • Ядро
  • Усовершенствованное ядро ​​STM8 16 МГц с архитектурой Гарварда и трехступенчатым конвейером
  • Расширенный набор команд
  • Воспоминания
  • Программная память: 8 Кбайт Flash-память; сохранение данных 20 лет при 55 ° C после 100 циклов
  • RAM: 1 Кбайт
  • Память данных: 128 байт истинных данных EEPROM; выносливость до 100 тыс. циклов записи / стирания
  • Часы, сброс и управление питанием
  • 2.Рабочее напряжение от 95 В до 5,5 В
  • Гибкое управление тактовой частотой, 4 основных источника тактовой частоты Генератор с маломощным кварцевым резонатором Внешний вход тактовой частоты Внутренний, настраиваемый пользователем RC 16 МГц Внутренний маломощный 128 кГц RC
  • Часы охранная с монитором часов
  • Управление питанием Режимы низкого энергопотребления (ожидание, активная остановка, остановка) Индивидуальное отключение периферийных часов Постоянно активный, с низким энергопотреблением сброс при включении и выключении питания
  • Управление прерываниями
  • Вложенный контроллер прерываний с 32 прерываниями
  • До 27 внешних прерываний на 6 векторах
  • Таймеры
  • Таймер расширенного управления: 16 бит, 4 канала CAPCOM, 3 дополнительных выхода, вставка мертвого времени и гибкая синхронизация
  • 16-битные таймеры общего назначения с 3 каналами CAPCOM (IC, OC или PWM)
  • 8-битный базовый таймер с 8-битным предварительным делителем
  • Таймер автоматического пробуждения
  • Оконные и независимые сторожевые таймеры
  • Интерфейсы связи
  • UART с тактовым выходом для синхронной работы, SmartCard, IrDA, режим ведущего устройства LIN
  • Интерфейс SPI до 8 Мбит / с
  • I 2 Интерфейс C до 400 Кбит / с
  • Аналого-цифровой преобразователь (АЦП)
  • 10-разрядный АЦП, ± 1 младший бит АЦП, до 5 мультиплексированных каналов, режим сканирования и аналоговый сторожевой таймер
  • ввода / вывода
  • До 28 входов / выходов в 32-выводном корпусе, включая 21 выход с высокой потребляемой мощностью
  • Высокопрочная конструкция ввода / вывода, устойчивая к подаче тока
  • Поддержка разработки
  • Встроенный модуль однопроводного интерфейса (SWIM) для быстрого программирования на кристалле и ненавязчивой отладки
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *