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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

Пришло время опробовать вложенные прерывания в STM8 (обещал тут написать о результатах).
Задачка тут у меня такая - сделать приборчик простенький для простеньких измерений (подробности не важны). В приборе есть семисегментный индикатор, индикация сделана с помощью таймера на прерываниях. Основная задача сделать оцифровку сигнала с помощью АЦП в течении некоторого периода времени, результаты оцифровки помещаются в буфер, потом обрабатываются по формуле и выводятся на индикатор. Главное - оцифровка должна производится строго через равные промежутки времени (100мкс). Так как динамическая индикация будет мешать процессу оцифровки, а выключать индикацию на время измерения не вариант, было решено использовать вложенные прерывания. Понятно, что приоритет прерываний оцифровки должен быть выше приоритета прерываний индикации. Для проверки задействовал один таймер для динамической индикации с периодом 1мс, второй для отсчета промежутков времени, вызывающий прерывания каждые 100мкс - в этом прерывании просто дрыг ногой микроконтроллера. Почитал документацию - вроде приоритеты прерываний можно просто задать регистрами ITC->ISPRx. Попробовал посмотреть дрыганье ногой без приоритета - дрыгает как попало, прерывания таймера индикации мешают. Задал приоритеты прерываний для таймеров (второй выше приритет) - ногодрыг стал идеальным - ничего не дребезжит, период ногодрыага строго 100 мкс и на индикации не заметно никаких артефактов. Похоже все работает, что то правда слишком просто получилось - может где ошибся.
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 952
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

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

Сообщение GARMIN »

Вообще-то всё правильно.
Обычно я настраиваю прерывания как мне удобно:

Код: Выделить всё

/*******************************************************************************
* настройка приоритетов прерываний
*******************************************************************************/
inline void interrupt_init (void)
{
   ITC->ISPR6 = (ITC->ISPR6 & ~ITC_SPR6_TIM4OVF_MSK) | ITC_SPR6_TIM4OVF_LVL3;   // установить высокий приоритет прерывания системного таймера
   ITC->ISPR4 = (ITC->ISPR4 & ITC_SPR4_TIM1CC_MSK) | ITC_SPR4_TIM1CC_LVL2;      // прерывание для вывода индикации
   ITC->ISPR4 = (ITC->ISPR4 & ~ITC_SPR4_TIM2CC_MSK) | ITC_SPR4_TIM2CC_LVL2;   // Прерывание на управление реле - высокий приоритет
   ITC->ISPR3 = (ITC->ISPR3 & ~ITC_SPR3_SPI_MSK) | ITC_SPR3_SPI_LVL2;         // SPI отправляет по одному байту
   ITC->ISPR6 = (ITC->ISPR6 & ~ITC_SPR6_ADC1_MSK) | ITC_SPR6_ADC1_LVL1;      // В АЦП проводится много вычислений, пусть они смогут прерываться
   ITC->ISPR7 = (ITC->ISPR7 & ~ITC_SPR7_FLASH_MSK) | ITC_SPR7_FLASH_LVL1;      // прерывание записи во флеш может подождать
}
Аватара пользователя
vmalush
Родился
Сообщения: 5
Зарегистрирован: Пт мар 09, 2012 12:03:52

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

Сообщение vmalush »

Прикупил STM8S003F3P 0,5$ за штуку решил попробовать что и как, до этого юзал пик и авр, с компиляторами разобрался, а вот с прошивкой встал вопрос, покупать отладочную плату за 25$ или комплектацию 10$ не серьезно, решил попробовать STMflashloader, но нигде не могу найти что куда подключить, TX; RX -UART понятно, Reset - тоже, для STM32 пишут Boot0 + питания, но в STM8, такого нет.
Если кто сталкивался пожалуйста подскажите на какой пин тыкать этот + , есть подозрения на UART_clock но не уверен. :dont_know:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

vmalush писал(а):покупать отладочную плату за 25$ или комплектацию 10$ не серьезно

В микроконтроллерах STM8S003 нет бутлоадера, поэтому покупать или паять ST-LINK придется - зато это будет и программатор и отладчик (для STM8 и STM32), чего для пик и авр по такой цене ни спаять ни купить.
http://ru.aliexpress.com/item/FREE-SHIP ... 75269.html
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Сразу же остужу.
Данный огрызок может работать только с 3v, в то время как STM8S - 2.95 to 5.5 V operating voltage.
И дабы не пришлось потом кусать локти - задавите жабу и купите полноценный STLink v2.
http://ru.aliexpress.com/item/ST-LINK-V ... 29194.html

Тем более что STM не ограничивается одной линейкой STM8S ,
и в L серии питание Operating power supply range 1.8 V to
3.6 V (down to 1.65 V at power down)

Да и после STM8x всяко захочется STM32 ...
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

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

Сообщение Serj_K »

oleg110592 писал(а):Данный огрызок может работать только с 3v, в то время как STM8S - 2.95 to 5.5 V operating voltage.

На сколько он там внутри ОГРЫЗОК нам не ведомо - корпус не прозрачный. Мой клон без выходного буфера нормально работает с STM8S, которая питается от 5В. Резисторных ограничителей достаточно.
robot
Родился
Сообщения: 6
Зарегистрирован: Ср ноя 25, 2009 22:52:00
Откуда: Тольятти

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

Сообщение robot »

подскажите, пин SWIM у STM8S003, чтобы пользовать как IO - надо что-нибудь менять в настройках проца или как?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

не надо, только учесть:
The PD1 pin is in input pull-up during the reset phase and after internal reset release
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

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

Сообщение RusikOk »

для STM8 есть программа аналогична STM32CubeMX или что нибудь облегчающее старт?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

RusikOk , все что необходимо :
1) Знание языка + умение читать и понимать документацию.
2) Знание основ электроники .
4) Опыт в программировании .

Без вышеперечисленного даже нет смысла начинать и никакие облегчалки не помогут...
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

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

Сообщение RusikOk »

dosikus писал(а):RusikOk , все что необходимо...
я это понимаю. все это имеется в наличии)
просто немного протоптав путь от AVR к STM32 призадумался а стоит ли осваивать STM8 ведь AVR-ы никто не отменял и в общем-то всем устраивают (особенно корпусами)))))

P.S.
хотел поковырять STM8 вечерка два а там уже и решить
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

RusikOk писал(а):призадумался а стоит ли осваивать STM8

При наличии STM32F0 смысла в STM8 нет. А AVR пора забыть давно...
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

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

Сообщение RusikOk »

dosikus писал(а):При наличии STM32F0 смысла в STM8 нет
STM8 в наличии тоже есть)
dosikus писал(а):А AVR пора забыть давно...
ну это если следовать модным тенденциям. а по факту AVR мне ничего плохого не сделали, чтоб от них отказываться. цена правда слегка раздута из за их популярности...
pity
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср сен 17, 2014 21:43:30

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

Сообщение pity »

Здоров ребята ! Кто может подсказать мне готовую простую прогу на stm8s003f3p6 АЦП ? уже неделю голову об стену бью и безрезультатно . Спасибо !
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

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

Сообщение Serj_K »

Возникла проблема.
При попытке изменить OPTIONS BYTE через ST-Link в STVP произошёл сбой.
В ИАРЕ при попытке записать прошивку через ST-Link вылетает следующее сообщение:

Код: Выделить всё

Errors while setting configuration with MCU name STM8S105S6: gdi-error [40701]: Option bytes read error: not complemented; please use a programmer 

При этом в STVP прошивку записать могу, но при попытке доступа к OPTION BYTES считывает 44% и выдаёт ошибку, что байты не комплементарны. И похоже, что сбросились OPTION BYTES, связанные с загрузчиком - не могу по UART соединиться - не определяется чип.
Что можно сделать?
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

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

Сообщение RusikOk »

Serj_K писал(а):Возникла проблема.
какая версия ИАРа?
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

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

Сообщение Serj_K »

RusikOk писал(а):какая версия ИАРа?
1.40.1, а какая разница, ведь и в STVP нет доступа к opton byte и оба говорят о некомплементарности.
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

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

Сообщение Serj_K »

Проблему решил установкой последней версии STVP.
RingQ
Родился
Сообщения: 12
Зарегистрирован: Ср окт 14, 2015 12:16:40

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

Сообщение RingQ »

Так вышло что сначала подсел на стм32 , стм8 привлекли STM8S003F3P6 за 20руб на сей день. минусы только 100 кратное флэшперепрограммирование, и что нет своего бут-прошивальщика. В загашнике нашел STM32F103C8 на ней наваял свой простенький ST_LINK упрощенный развел один только swim прошил его через бут, обновил прошивку ST шной утилитой. и вуаля. STM8003 шьется очень быстро. На днях долго мучил ENC28J60 все же удалось запустить. Можно посмотрет теперь ь в сторону дешевейшего ip телефона и прочего
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

RingQ писал(а):Так вышло что сначала подсел на стм32 , стм8 привлекли STM8S003F3P6 за 20руб на сей день. минусы только 100 кратное флэшперепрограммирование,

Минусы? Стократная перезапись -- это не сказать, что совсем уж мало. Не каждое устройство на МК в процессе разработки требует такого большого числа перезаписей. Кроме того, даташит утверждает, что производитель не гарантирует сохранность содержимого флеша, если число перезаписей превысило цифру 100 и устройство эксплуатировалось при температуре 55 градусов двадцать лет. 55 градусов -- это довольно горячо. Температура на грани ожога, если описывать ее на уровне ощущений. И при таком нагреве МК должен отбарабанить не менее двадцати лет без перерыва. Чтобы соблюсти все условия для возможной порчи флеша через двадцать лет -- это еще надо постараться хорошенько. Но опять же, производитель не утверждает, что порча наступит обязательно. Вот и выходит, что для подавляющего большинства применений на данный параметр можно наплевать и забыть.
Ответить

Вернуться в «Разные вопросы по МК»