Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

STM8S103F3P6 как прошить контроллер?

Пн дек 14, 2015 19:42:31

Здравствуйте! У меня вопрос по прошивке контроллера STM8S103F3P6. Прошивал AVR, PIC контроллеры, а вот с этим контроллером столкнулся впервые.
Прочитал в интернете много статей, в голове полная каша и так я ничего и не нашел объяснительного как и с помощью чего прошить этот контроллер.
Если у кого есть терпение, объясните пошагово.

Re: STM8S103F3P6 как прошить контроллер?

Пн дек 14, 2015 20:04:29

В этом контроллере нет встроенного загрузчика, поэтому прошивка записывается только при помощи ST-LINK. Саму прошивку зашивать или при помощи ST-LINK utility или в самой среде программирования, если там это реализовано(например в IAR). ST-LINK можно купить готовый или сделать его клон самому.

Re: STM8S103F3P6 как прошить контроллер?

Пн дек 14, 2015 20:22:23

Попробую пошагово.
1) купить железку, можно такую:
http://ru.aliexpress.com/item/Free-Shop ... eb201560_4
а можно "фирменную", типа такую:
http://ru.aliexpress.com/item/FREE-SHIP ... eb201560_4
можно самому спаять - все для этого есть в интернете.
Это не только программатор а и полноценный отладчик-дебагер и не только STM8, а и STM32.
2) Скачать ST MCU Toolset тут: http://www.st.com/web/en/catalog/tools/PF210568#
установить, запустить ST Visual Programmer (STVP), настроить, загрузить HEX для прошивки, защиту от считывания установить, если надо во вкладке OPTION BYTE - ROP (остальное в OPTION BYTE можно пока не трогать), прошить и вуаля - готово.

Re: STM8S103F3P6 как прошить контроллер?

Пн дек 14, 2015 21:03:22

Спасибо за ответ! http://ru.aliexpress.com/item/Free-Shop ... eb201560_4
Уже наверное к дому моему подъезжает, выписал месяц назад.
Программу скачал. Загрузчика как я понял нет в контроллере. Как установить загрузчик?

Re: STM8S103F3P6 как прошить контроллер?

Пн дек 14, 2015 21:29:28

Никак. Только что написать свой загрузчик. Есть апликуха на эту тему и есть для этого место во флэш UBC называется. У других СТМ8 просто есть уже встроенный от рождения. В этом его нет.

Re: STM8S103F3P6 как прошить контроллер?

Вт дек 15, 2015 16:07:46

Может ли идти прошивка вместе с загрузчиком? Имеется к схеме прошивка с расширением S19.
Вложения
avmeter3.rar
(1.69 KiB) Скачиваний: 853

Re: STM8S103F3P6 как прошить контроллер?

Вт дек 15, 2015 17:05:34

Может идти если этим озадачивался разработчик устройства.
Как телефон можно воткнуть в комп, нажать магическую комбинацию клавиш, запустить спец. программу и перешить. Также и здесь нужна какая-то прога загрузки для компа.
Если этот чип новый, то никакие загрузчики не помогут без программатора. Только заливать ST-Link-ом.
Ну как у ПИКов или АВР.

Re: STM8S103F3P6 как прошить контроллер?

Вт дек 15, 2015 18:10:30

Да это все понятно, программатор скоро приедет. Еще сейчас нашел немного информации. По сути я понял так, что прошивка этого контроллера ни чем почти не отличается от прошивки AVR допустим.
В отличие от AVR fuses, у STM8 запись в Option Bytes доступна из программы. Достаточно сделать в своей программе при старте проверку на разрешение Bootloader и если он запрещен, записать в Option bytes нужные значения. Также можно включить и альтернативные функции. Изменения в Option Bytes актуализируются только после Reset.
Уже кое что нашел на свой вопрос. Хотя пока все равно темный лес.
- актуализируются только после Reset. Мне не понятно это.

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 11:58:33

По сути я понял так, что прошивка этого контроллера ни чем почти не отличается от прошивки AVR допустим.


Я вообще не знаю контроллера, программирование которого сильно отличалось бы от других. :) Логически управление периферией везде реализовано на одном и том же принципе - запись в регистры, физически заливаем прошивку либо через бутлоадер, либо подключая программатор. Это везде так. :) Только разъемы бывают разные и протокол программирования обычно везде свой, но последнее неважно, если только мы сами не делаем программатор.

СпойлерКстати, SWIM, через который прошиваются STM8, достаточно прост. На уровне передачи бит он напоминает 1-Wire. На уровне протокола в нем есть всего три команды: сброс системы, писать память по адресу, читать память по адресу - все. Писать и читать можно любую память, даже регистры процессора. Так реализуется и отладка, и программирование. Прошивка заливается прямым взаимодействием с FLASH через чтение-запись в адресном пространстве.


- актуализируются только после Reset. Мне не понятно это.


Ну так, измененные настройки вступают в силу после первого сброса системы.

Достаточно сделать в своей программе при старте проверку на разрешение Bootloader и если он запрещен, записать в Option bytes нужные значения.


А вам надо менять option bytes на лету из своей программы?

Что вам непонятно? Стоит задача залить прошивку? Есть три подхода.

1. Купить ST-LINK v2 (обязательно v2, первая версия глючная) или его клон. Поставить его драйвера, поставить ST Visual Programmer.

Подключаем пины RESET и SWIM (ну и землю, есесно) к программатору, запускаем STVP. Все. Можно писать/читать память, выставлять option bytes - все, что душа пожелает.

2. Надо прошивать МК без ST-LINK? Нужен бутлоадер.

Все МК STM8 с объемом FLASH от 16 кБ имеют бутлоадер "из коробки", причем он записан в ROM, то есть не тратит FLASH, доступен всегда и стереть по неаккуратности его нельзя. Про то, как с ним работать, написан аппноут. Более того, для работы с ним тоже есть программа-пример от ST.

3. Надо самому реализовать запись во FLASH? Тогда вперед читать Reference Manual, разделы, посвященные памяти. Там, на самом деле, все не так сложно.

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 19:11:36

Я как-то прошивал STM8L152 через плату Discovery для STM8S. Там на плате уже реализован программатор/отладчик, с помощью которого можно прошивать и отлаживать код в МК вне платы Discovery.
Изображение

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 21:38:10

Я как-то прошивал STM8L152 через плату Discovery для STM8S.


Так там тот же ST-LINK разведен, только урезанный. Кстати, туда чудесно встает прошивка от "настоящего" ST-LINK v2.

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 22:14:41

Пока жду ST-LINK v2. Видимо его из Китая на собаках через Аляску везут. полтора месяца едет. :(

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 22:58:02

Спасибо, YS, полезно будет знать. Моё знакомство с STM8 далее одного проекта тогда так и пошло, видимо и не пойдет уже. А на остальные случаи у меня уже есть Segger Jlink.
Demo65 - Вам почта, наверное, новогодний подарок готовит. Удачи!

Re: STM8S103F3P6 как прошить контроллер?

Сб дек 26, 2015 23:19:24

Да, почта наша "готовит подарок". У меня куча деталей из Китая буквально ползет по вине нашей почты. И так отложил несколько недоделанных плат из-за отсутствия деталей.

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 12:45:31

Спасибо, YS, полезно будет знать.


Не за что, не за что. :) :beer:

Я STM8 активно ставлю в те устройства, куда обычно ставил меги, не в последнюю очередь по той причине, что STM8 сейчас почти в два раза дешевле даже в розницу. Увы-увы, приходится констатировать, что с Atmel случилось что-то не то. В ближайшем ко мне магазине ATtiny13 стоит 52 р/шт, ATmega48 - 98 р/шт, при этом STM8L051F3P6 стоит 56 р/шт. А надо сказать, что STM8L051F3P6 будет покруче даже меги - он имеет такие интересные блоки, как таймер с поддержкой квадратурного энкодера (да-да, аппаратно получаем позицию энкодера в регистре таймера), двенадцатибитный АЦП, RTC, причем ток потребления в режиме сна с включенным блоком RTC составляет менее 2 мкА. Понятное дело, что стандартная периферия типа простых таймеров и UART/SPI/I2C там тоже присутствует.

Так что увы-увы, я все реже ставлю AVR в свои изделия. Вообще, у меня ситуация какая-то такая: AVR дорог, MSP430 еще дороже, чипы на ARM-ядрах тоже подороже и для простых изделий сильно избыточны. Так что в какой-то момент я обнаружил, что использую STM8. Сейчас у этих МК самое оптимальное соотношение цена/возможности. Единственный минус - проблема с компилятором. GCC для STM8 почему-то нет, нынешний IAR имеет долбанутую систему регистрации. Остается Cosmic, но он, э-э-э, странноват - например, в стандартной поставке демо-версии нет stdint.h (или я до сих пор не разобрался). Тем не менее, пока мой выбор - STVD + Cosmic. Перешел на эту связку с IAR. Бесплатная версия Cosmic имеет огранчение в 8KB сгенерированного машинного кода, но у того же STM8L051F3P6, например, памяти как раз 8KB. :) Так что ограничений фактически нет. Еще у них есть какая-то акция про то, чтобы получить бесплатные версии компиляторов для STM8 и STM32 с ограничением поболее, 32 KB, но там уже регистрироваться надо, так что я пока не заморачивался.

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 19:38:04

YS писал(а): AVR дорог, MSP430 еще дороже, чипы на ARM-ядрах тоже подороже и для простых изделий сильно избыточны.

Насколько??? STM32F030F4P6 дороже на четверть копейки... по сравнению с STM8L051F3P6... а ресурсов больше... и возможностей тоже...
А избыточность... чем меряли... китайским мультиметром???

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 20:04:05

Да, похоже по ценам на МК Вы правы - STM8/STM32L0 весьма разумное решение. Однако, если возможности 32-битной архитектуры для простого проекта кажутся избыточными, с вышеупомянутыми может конкурировать силлабовская серия C8051, которые еще дешевле, и их новая серия EFM8. У IAR для них бесплатный компилятор без ограничения кода, как и для CM0 от ST. YS - a не пробовали писать код для STM8 на ASMe? Свой единственный проект я так и сделал, да и IAR не имеет ограничения для проектов на ASMe. Если портирование не нужно, для простых проектов на МК с 8КБ флеша код на АСМе не сложнее чем на С.

Сам я "сижу" на Kinetis серий KL и К2. По цене первые сравнимы с низшими моделями MSP430. Да, они дороже чем STM32, но для меня +/- доллар за МК роли не играет. А что играет роль - так это "нежные и трогательные" отношения с производителем и дистрибъюторами. ST в этом плане для меня сильно позади TI, Freescale/NXP и других. В серии КL имеются модели в 16/24/32-выводных корпусах, как и сейчас у STM32L0. Кстати, в 2016 ST планирует выпуск бюджетной серии STM32G по цене в 1.5 раза ниже чем нынешние STM32L0, именно около 30 центов в куче. У Kinetis весьма разумное оснащение периферией для моих проектов, но они не делают СМ3. Зато у них есть СМ4 модели серии К2 в 32-выводных корпусах с FPU, что для меня также решающий фактор (а судя по мнению ряда разработчиков и не только для меня). Я не знаю изделий других производителей СМ4F в таких корпусах. Может таковые и есть, если знаете - дайте и мне знать. Очень мне нравится СМ3 серия EFM32TG от Energy Micro. Однако, у них чрезвычайно много выводов в 24/32-корпусах для блокировочных конденсаторов в цепи питания. Это единственное, что меня останавливает у них. Да и по цене они несколько дороже чем Kinetis.

В самое последнее время я бросил всё и разбираюсь с PSoC/RSoC от Cypress. Они недешёвые, но мне нужен встроенный BLE блок. По сравнению с Anaren/Broadcom (моя последняя статья здесь) у этих более просто и естественно конфигурировать GATT/GAP уровни стека для реализации стандартных профилей. Следующая моя статья будет про них.

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 20:25:17

Ser60 писал(а):в 2016 ST планирует выпуск бюджетной серии STM32G по цене в 1.5 раза ниже чем нынешние STM32L0, именно около 30 центов в куче.

Вы явно что-то путаете... STM32L0xx не самая дешёвая... а STM32F030F4 и сейчас стоит 0,456$...

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 20:50:05

Да, Вы правы. Я имел в виду, что эта бюджетная серия G будет ещё где-то в 1.5 раза дешевле чем нынешняя дешёвая серия F0. По крайней мере так нам объявили на семинаре и я потом с ним разговариал отдельно. Так что, за что купил... Было это где-то в Октябре или Ноябре (не помню) и на то время представитель фирмы не был уполномочен давать какие-либо дополнительные детали по этому (пока) секрету фирмы.

Re: STM8S103F3P6 как прошить контроллер?

Вс дек 27, 2015 20:56:54

И по поводу Силабса... Ну вот... "Умерла, и умерла!"(С)... Ну не пользуется эта шняга популярностью... да хоть ты тресни... В местном ларьке... даже для приличия... в списке отсутствует напрочь...
Устройства от Silicon Laboratories не пользуются широкой популярностью в любительских кругах, им далеко до таких флагманов, как Atmel. Однако у них есть и вполне доступные простому смертному микроконтроллеры основных линеек в корпусе TQFP

А подобное... ну просто умиляет...
Наиболее тонким местом является то, что библиотека закрыта, и узнать насколько надежным является это решение невозможно, к тому же доступен только BULK режим передачи данных.

http://habrahabr.ru/post/116709/
Ответить