stm8s903k3t6c чем слить прошивку

Программирование микроконтроллеров: STM8 — как прошить?

Скоро буду выкладывать материал по поделкам на микроконтроллерах STM8S003F3P6, поэтому начинающим нужно знать, как его прошить.

Для прошивки микроконтроллера советую использовать USB свисток ST-LINK V2
Купить его можно в магазинах радиотоваров, к примеру в Чип и Дипе (дорого и быстро) или на Алиэкспресс (дешево и долго).
Для поиска по названию используем фразу » ST-LINK V2 » Выглядит программатор в виде, очень похожем на УСБ флешку. С одной стороны порт УСБ, с другой стороны стандартный 10 контактный разъем пинов.
Назначение контактов есть на корпусе. Только нужно учесть, что шлепают их на фабриках Китая много кто, и порой у разных производителей нумерация контактов отличается.

Между программатором и микросхемой должен быть посредник, ибо напрямую к ножкам микросхемы программатор не подключить. Эта вещь называется отладочная плата, ее можно купить там же, где и сам программатор. Отладочная плата уже содержит сам микроконтроллер, всю обвязку достаточно подключить проводами ее к программатору и можно прошивать. Для поиска на алиэкспресс достаточно ввести название чипа микроконтроллера, например » STM8S003F3P6 » Помимо самих микросхем в поиске будут выпадать и отладочные платы на них.

Если отладочная плата не подходит, потому что есть отдельно купленные чипы микроконтроллеров, и их нужно неоднократно прошить, то используются отладочные платы с панельками микросхем. В такую плату вставляется микроконтроллер и прошивается. Стоимость таких плат достаточно дороже, ищется на Алиэкспресс по фразе » TSSOP20 Burning «

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

Для этого под программатор выводится 4 ноги микроконтроллера, это ножки:

7 ножка чипа VSS к минусу GND программатора
9 ножка чипа VDD к 3.3V или 5.0V программатора
18 ножка чипа PD1 к контакту SWIM программатора
4 ножка чипа NRST к контакту RST программатора

Особенности использования ножек при самостоятельной разработке:
Если линия 4 ножки сброса тянется дорожкой далеко от микроконтроллера к разъему, то подтяните ее резистором к плюсу питания резистором на 10 килоом.
Порт PD1 (18 ножка чипа) можно использовать на свои нужды, помимо вывода на разъем программатора, но в этом случае ее нельзя использовать с емкостной нагрузкой.

В качестве софта для прошивки можно использовать нагугленное для STM, я же покажу, как пользоваться родной софтиной «ST Visual Programmer» которую можно найти на сайте www.st.com, забив в тамошний поиск фразу » STVP-STM8 » Для скачивания на официальном сайте нужна регистрация, но можно воспользоваться моим скачанным оттуда архивом без регистрации umat.ru/files/en.stvp-stm8.zip (версия архива 42.0.0 конца 2018 года)

При установки софта установится все необходимое, драйвера программатора и сама программа. Название приложения «ST Visual Programmer» Запускаем его.

Теперь можно открыть файл прошивки. File>Open…

В области описания (выделено красным) в разделе PROGRAM MEMORY будет указаны сведения файла прошивки. В поле главной вкладки PROGRAM MEMORY (синим) будет массив данных прошивки, в поле лога внизу (зеленым) будет этот самый лог загрузки. Поподробнее о нем: Последняя строка «Файл успешно загружен. Контрольная сумма …». Но перед этим куча ошибок с указанием строки, адреса и «выход за пределы — проигнорировано». Это нормально. Файл прошивки содержит всю область памяти, включая адреса с 0х4000 по 0х407F, этот диапазон является проигнорированной ЕЕПРОМ памятью, который относится а следующей вкладке «DATA MEMORY», на который нужно теперь перейти (нажать, где красным, ниже на картинке)

Загружать данные в «DATA MEMORY» необходимо, если область памяти ЕЕПРОМ содержит эти самые данные. Проверяем, открыв тот же самый файл прошивки. Загрузка будет идти подольше, большая часть файла прошивки будет проигнорирована, но область памяти ЕЕПРОМ будет успешно загружена:

Если в поле массива данных видны какие либо шестнадцатеричные значения, то значит прошивать их нужно. Если там все будет по нулям, то шить их нет необходимости. Я, к примеру, зачастую, если даже в описание поделки описано, что «настройки сохраняются в энергонезависимой памяти», не заполняю область ЕЕПРОМ данными, делая первичную инициализацию ЕЕПРОМ при первом запуске микроконтроллера. То есть микроконтроллер сам прошивает ЕЕПРОМ, поэтому сам файл прошивки не содержит этих данных.

Вкладка «OPTION BYTE» это те же самые фьюзы, как у микроконтроллеров АТтини, но менять их значения, как правило, нет никакой необходимости (фух!) — поэтому описывать их и не буду. После загрузки прошивки в программу можно подключать программатор и сам микроконтроллер или отладочную плату с ним. Для загрузки прошивки в микроконтроллер, необходимо нажать кнопку «загрузить все» (красным)

Читайте также:  а закат был ал как коленочки что это

Если все прошло успешно, то быстро «проскачут» шкалы выполнения (зеленым) и в логе пробегут данные выполнения (синим) Если логи содержат фразы » completed» «successfully» то все успешно прошилось.
Если что то пойдет ни так, и логи закраснеют красными ругачками, то что то пошло не так. Подробнее о ругачках:

» Нет соединения с микроконтроллером…» Проверьте, правильно ли контачат провода программатора и жив ли сам чип.

«Чип залочен». Если залочить чип (заблокировать ему возможность записи и чтения прошивки), то нужно сначала снять защиту ( прошивка в памяти контроллера конечно потеряется).
Нужно перейти на вкладку «OPTION BYTE»( синим), убедится, что значение параметра защиты выключено (красным) и нажать на кнопку » записать данные» (зеленым).

Источник

Наряду с Arduino у любителей микроконтроллеров сейчас популярна и линейка продуктов от компании STMicroelectronics, включающая 8-разрядные микроконтроллеры STM8 и 32-разрядные микроконтроллеры STM32 (на ядре Cortex).

Отладочную плату с микроконтроллером STM8 на борту можно приобрести за 1 (!) доллар и даже дешевле. Я приобрел несколько таких плат на основе микроконтроллера STM8S103F3P6 на торговой площадке ebay:

контакт назначение
D4 PD4 / UART_CLK
D5 PD5 / TX
D6 PD6 / RX
RST сброс
A1 PA1 / Oscin
A2 PA2 / Oscin
GND земля
5V вход стабилизатора
3V3 выход стабилизатора
A3 PA3 / SS
D3 PD3 / Ain4
D2 PD2 / Ain3
D1 PD1 / SWIM
C7 PC7 / MISO
C6 PC6 / MOSI
C5 PC5 / SCK
C4 PC4 / Ain2
C3 PC3
B4 PB4 / SCL (шина I2C)
B5 PB5 / SDA (шина I2C)

Микроконтроллер STM8S103F3P6 содержит 8 КБайт флэш-памяти с ресурсом стирания 10 000 раз, 640 байт EEPROM и 1 КБайт RAM. Тактовая частота 8-битного процессора серии STM8S составляет 16 МГц.

Для питания платы можно использовать следующие варианты:

Использование компилятора SDCC

Пишем код программы в файле TST.c:

Выполняем компиляцию программы командой

При компиляции создается hex-файл TST.ihx:

Для прошивки платы я приобрел на торговой площадке ebay программатор ST-LINK V2:

При первоначальном подключении к USB-порту компьютера программатор определяется как «неизвестное устройство» с VID 0483 и PID 3748:

После его установки при повторном подключении программатор распознается как «устройство USB«:

Разъем программатора имеет 10 контактов:

Номер Название Назначение
1 RST сброс
2 SWIM SWIM-интерфейс (для STM8)
3 GND земля
4 3.3V + 3,3 В
5 5.0V + 5 В
6 SWCLK синхронизация (SWD-интерфейс, для STM32)
7 SWDIO данные (SWD-интерфейс, для STM32)
8 GND земля
9 3.3V + 3,3 В
10 5.0V + 5 В

Для прошивки я использую утилиту stm8flash, для запуска которой следует выполнить команду:

Бинарная версия проекта для ОС Windows (можно взять здесь) содержит два необходимых файла:

После запуска утилиты она выполняет прошивку программы в память и отчитывается о числе записанных байт:

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

Работа в редакторе Visual Studio Code

Для написания исходного кода программы, а также для автоматизации процесса компиляции и прошивки удобно использовать бесплатный редактор Visual Studio Code от компании Microsoft (страница загрузки).

Вот как выглядит исходный код программы в Visual Studio Code:

Для удобства работы следует создать папку (например, sdcc), в которой будут располагаться файлы проектов для STM8. Затем следует добавить эту папку в рабочую область. В эту же папку помещаем файлы:

В этой папке следует создать папку .vscode, в которой разместить файл tasks.json с таким содержимым:

Этот файл описывает две задачи:

Выбирая соответствующую задачу («Задачи» > «Запустить задачу. «)

можно запустить:
компиляцию

прошивку

Полезные подсказки

задание базовых адресов портов:

настройка вывода N порта X (PXN) на выход

настройка вывода N порта X (PXN) на вход

установка вывода N порта X (PXN) в состояние «1» :

установка вывода N порта X (PXN) в состояние «0» :

подключение заголовочных файлов

Вот как выглядит собранная схема из микроконтроллера, USB-UART преобразователя и программатора:

(1/16000000)*65536*предделитель = интервал в секундах
10 секунд = 2441 0x0989

Пример простейшего проекта, мигающего светодиодом

Разработка в среде IdeaSTM8

Установка среды разработки

Для загрузки дистрибутива следует перейти по этой ссылке: http://cosmicsoftware.com/download_stm8_32k.php.
При этом для использования кросс-компилятора от Cosmic Software перед скачиванием необходимо пройти регистрацию, указав имя (Name), название компании (Company), страну (Other), адрес электронной почты (E-mail), а затем нажав для отправки сведений кнопку «Submit».
В версии 4.4.6 объем дистрибутива (cxstm8_FSE_stm32_32K.exe) составляет 20,7 МБайт.
Для получения годовой (затем продляемой) бесплатной лицензии при инсталляции необходимо нажать кнопку «Register on the Web», что приведет к отправке файла лицензии на адрес электронной почты, указанный при регистрации. Лицензия привязывается к компьютеру, на котором установлен компилятор (с помощью HOSTNAME, HOSTID и т.п.).
После получения файла license.lic следует разместить его в папке \COSMIC\FSE_Compilers\CXSTM8\License:

В качестве примера создадим программу мигания светодиодом (Hello, world! в мире микроконтроллеров) TEST, размещенным на плате и подключенным к контакту PB.5.

Создаем новый проект, выполняя команду New Application:

Выбираем в качестве целевой платформы микроконтроллер STM8S103F3:

Копируем в папку проекта заголовочный файл с определениями stm8s.h, предварительно раскомментировав в нем определение используемого микроконтроллера STM8S103:

Создаем новый файл (tst.c) с исходным кодом:

Читайте также:  какие упражнения надо делать в спортзале чтобы похудеть

создаем файл:

Добавляем созданный файл в проект:

Пишем код программы в созданном файле:

Для компиляции и сборки проекта следует нажать клавишу F7 или выполнить команду Build:

Полученный hex-файл (TST.hex) содержит информацию, необходимую для прошивки микроконтроллера:

Для прошивка этого файла в память микроконтроллера можно использовать описанный выше программатор ST-LINK V2.

Мои проекты на STM8

Преобразователь для проекта cpm4nano позволяет подключать PS/2-клавиатуру через последовательный порт (UART).

Дистанционно управляемая аэролодка

Микроконтроллер STM8 принимает сигнал ИК-пульта и управляет движением модели аэролодки.

Источник ультрафиолетового излучения из лампы ДРЛ

Микроконтроллер STM8 управляет питанием ультрафиолетовой лампы.

Продолжение следует

Источник

Stm8s903k3t6c чем слить прошивку


STM8S103F3P6 и ST-Link2

Если в прошлый раз я писал о работе с STM8 из под Linux, то сейчас мне бы хотелось раскрыть этот вопрос с позиций Windows.

В качестве ОС я выбрал «старушку» Windows XP SP3, а в качестве «подопытного» чипа, так же как и в прошлый раз, у меня STM8S103F3P6 распаяный на плате как на картинке слева. Используемый мною программатор, это китайский клон ST-Link2.

Этот пост можно назвать «быстрым стартом» STM8в Windows.

1. Драйвера

Первым делом нужно будет поставить драйвера для программатора ST-Link2. Для этого заходим на домашний адрес компании ST в раздел данного программатора:

Проматываем страницу книзу, в раздел ПО:

после чего следует щелкнуть по STSW-LINK009. В результате попадем на страницу драйвера:

Как видно, драйвер предлагается для OC: Windows XP, Windows7, Windows8. Десятка похоже, что в пролете 😉

Кликнув по кнопке Download, получаем zip архив. Но т.к. как я уже говорил, что фирма ST сурова, то и никаких инсталятов со слайд-щоу и словами благодарности «за то что выбрали наше предложение», в архиве вы не найдете. Поэтому ставятся они по-другому.

Нужно вставить ST-Link2 в USB порт и дождаться когда запуститься мастер установки драйверов. В появившемся диалоговом меню следует отказаться от соединения с Window Update и в качестве источника драйверов указать распакованную папку скачанного архива.

После чего система сама найдет подходящие для себя драйвера и установит их:

Т.о. программатор начнет отображаться в диспетчере устройств:

2. Флэшер

На данный момент для разработки и отладки программного обеспечения для STM8 существует четыре среды: ST Toolset от STMicroelectronics, Ride7 от Raisonance (www.raisonance.com), CXSTM8 от Cosmic software, IAR Embedded Workbench от IAR Systems. Сравнительный анализ средств разработки программного обеспечения представлен в таблице1 Таблица 1. Сравнительный анализ бесплатных средств разработки программного обеспечения

Инструментарий Среда разработки Си-инструментарий Си-инструментарий других производителей Ограничение Си-иструментария, Кбайт Программатор-отладчик
STMicroelectronics ST Visual Develop Нет Cosmic software, Raisonance Нет ST-Link R-Link STICE
Raisonance Ride 7 Есть Нет 16 R-Link
Cosmic software CXSTM8 Есть Нет 32 Нет
IAR Systems IAR Workbench Есть Нет 8 или полная версия на 30 дней ST-Link STICE

Пакет ST Toolset включает в себя среду разработки ST Visual Develop и отдельную программу для более функционального внутрисхемного программирования flash-памяти микроконтроллеров ST Visual Programmer. Среда разработки ST Visual Develop имеет встроенный инструментарий для разработки программного обеспечения на языке assembler, но у нее также имеется возможность подключения и использования Си-инструментария от Raisonance и Cosmic software. Стоит заметить, что все четыре среды с Си-инструментарием предоставляют возможность использования с некоторыми ограничениями, а именно– по загружаемому коду во flash-память. УRaisonance оно составляет 16Кбайт, у Cosmic software– 32Кбайт, а у IAR– 8Кбайт или полную версию с 30-дневным ограничением.

Сейчас нужно будет скачать ST Toolset в состав которого входит флешер ST Visual Programmer. Его домашняястраница:www.st.com/web/en/catalog/tools/PF210568

Промотав cтраницу книзу и кликнув на Download получите zip-архив ST Toolset. После распаковки и установки у вас появятся ST Visual Developer и ST Visual Programmer. Первый нас не интересует, а второй следует запустить, это флешер. При запуске появиться окно конфигурации:

Выбрав тип микроконтроллера и программатор, попадаете в главное окно программы.

Читайте также:  какие фрукты созревают в мае

Важный момент: микроконтроллеры STM8 имеют единую шину памяти(адресная шина). Т.е. нет разделения на flash память и оперативную. Т.е. разделение есть на внутреннем уровне т.к. архитектура микроконтроллера все-таки гарвардская, но внешне, архитектура выглядит как фон Неймовская. Чтобы вспомнить, чем отличается одно от другого, приведу цитату из википедии:

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

Т.е. благодаря гарвардской архитектуре в AVR одна команда выполнялась за один такт.

Скриншот ST Visual Programmer:

Оперативка нас пока не интересует, на скриншоте красными стрелками помечены кнопки чтения и заливки прошивки.

Попытка прочитать что-то без программатора приведет к ошибке:

С программатором, но без микроконтроллера, тоже приведет к ошибке:

Пример успешного чтения прошивки:

Полученную прошивку можно тут же обратно записать в микроконтроллер или сохранить в файл. Можно открыть любую другую прошивку в формате ihex и из программы прошить микроконтроллер.

3. Среда разработки IAR

После того, как с прошивками разобрались, осталось узнать в чем эти STM8 программировать. Своего инструментария для разработки на Си у ST нет, а имеющиеся компиляторы или платны или доступны с ограничениями. Часто как наиболее оптимальное решение предлагается COSMIC, но без лицензионного ключа вы ничего в нем не сделаете, а он выдается спустя несколько дней с момента запроса (я ждал три дня). IAR имеет ограничение 8Кбайт, но лицензионный ключ выдается сразу. Причем ключ может выдаться на полностью функциональную версию, с ограничением в 30дней использования. Т.к. STM8S103F3P6 имеет как раз всего 8Кбайт, то большего как бы и не надо. В любом случае пока идет ключ для COSMIC, можно воспользоваться IAR. Скачать его можно с сайта IAR: https://www.iar.com/iar-embedded-workbench/#!?architecture=STM8

После установки, вам предложат заполнить анкету и выбрать тип лицензии. После чего на email придет ссылка с лицензионным ключом. Введя этот ключ при первом запуске IAR вы попадаете в главное окно программы.

По второй ссылке, хоть речь идет и о IAR для ARM, большая часть посвящена самой среде разработке IAR. Я не буду повторять описанного там материала, а буду на него опираться.

Сейчас наша задача составить простой Blink, скомпилировать его и загрузить в микроконтроллер. Для этого сначала нужно создать новый проект:

затем, задать параметры проекта:

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

Но прежде, чем что-то компилировать, следует сначала настроить проект. Поэтому в браузере проекта следует щелкнуть правой кнопкой по названию проекта, и открыть Options

где первым делом, во вкладке target следует выбрать целевой микроконтроллер:

а в качестве отладчика ST-LINK

Так же полезно будет зайти в опции IAR в настроить окно вывода сообшений:

После чего можно уже будет нажать на кнопку компиляции:

В нижнем окне логов появится отладочная информация.

Плата STM8S103S103F3P имеет два светодиода Один выполняет роль индикатора питания, другой подтянут к пину PB5(да, как в Arduino pin13).

Попробуем написать программу для мигания этим светодиодом:

и попадем в окно отладчика. Справа будет ассемблерный листинг программы загруженной в микроконтроллер, слева на панели инструментов появятся кнопки для управления пошаговой отладкой. Нажимая «Step over» раз за разом, светодиод будет на плате будет то загораться то, гаснуть.

Раскомментиров delay, скомпилировав и загрузив прошивку еще раз в микроконтроллер, на панели отладки можно будет нажать на красный крестик. Тогда программа запустится на выполнение и светодиод начнет периодически мигать с интервалом примерно 1/5 сек.

Резюмируя можно сказать, за небольшую сумму (170 руб за ST-Link2 + 68 руб за плату STM8S103F3P6) получили в свои руки достаточно профессиональную связку железа и софта, с которыми можно сделать многое.

Источник

Информ портал о технике и не только