Прошивка МК при помощи STM8L-Discovery

Сегодня я буду Капитаном Очевидность!
Вроде нет ничего сложного в том, чтобы подключить свою плату к дискавери и отлаживать через SWIM. Но когда делаешь это в первый раз, хочется иметь под рукой хоть какой-то мануал. Лучше всего пошаговый. Вот тут на помощь и приходит К.О. :)



Итак, первая партия очевидностей или "что нужно вывести на плате для прошивки".

Напомню, что на дискавери есть обрубок ST-Link'а, который умеет отлаживать по протоколу SWIM. Для этого используется одна линия (ну и земля, естественно). Вход в режим программирования осуществляется через подачу хитрой пачки импульсов на пин SWIM. Может возникнуть ситуация, когда на эту пачку контроллеру будет пофиг — например МК спит, или SWIM отключен программно. В таком случае поможет RESET, который тоже можно вывести на разъем.

Проще говоря, для подключения к дискавери обязательно нужны:
1) Пин SWIM от программируемого МК
2) Земля


Опционально:
3) Питание
4) RESET

Теперь, про подключение. Цепляем нашу плату к разъему SWIM на дискавери.

Земля отлаживаемой платы к земле дискавери (третий пин на разъеме SWIM).

Пин SWIM ко второму пину на одноименном разъеме на дискавери.

Питание на 3.3V или 5V. Работает одинаково и там, и там. Пины у МК, реализующего ST-Link должны быть толерантны к +5V. Если отлаживаемое устройство имеет свой источник питания, то соединять линии питания не нужно.

RESET не использовался. На плате он подтянут к питанию резистром. Но если он нужен — подключается к четвертому (ближе к LCD) пину на разъеме.

Не забываем отключить SWIM от МК на дискавери (положение слева):


В настройках проекта выбираем нужный МК — в моем случае это был STM8S103F3P. Все остальное тоже, что и для дискавери.

На этом все. Аккумулятор в недобуке уже почти сел. Пора его зар
  • +1
  • 10 сентября 2011, 22:33
  • dcoder

Комментарии (16)

RSS свернуть / развернуть
Какая максимальная длина провода от программатора до целевой платы?
0
  • avatar
  • tank
  • 11 сентября 2011, 07:10
у меня сантиметров 40, пока проблем с программированием не было.
0
  • avatar
  • ZiB
  • 11 сентября 2011, 08:34
Както странно с землей получилось. Она у Вас прозваниваеться с землей на демоплате?
У меня такой же комплект и нормально работает.
1 — VDD from application
2 — SWIM data input/output
3 — GND
4 — SWIM reset
0
Действительно напутал с подключением. Сейчас исправил. Спасибо за замечание.
0
а что за платка с индикатором?
0
Для того чтобы не думать про длину кабеля программирования сделал так.
1. Отпиливаем ST-Link от Дисковери и кладем его в коробочку G404013. В коробочке пропиливаем окошко для USB.

Закрываем крышкой, в которой пропилено отверстие для кабеля.

Присоединяем кабели. Теперь эту конструкцию можно укладывать прямо на отлаживаемую плату — токоведущих частей снаружи — нет.

Наслаждаемся процессом отладки.

0
адъ и израиль!))
0
Товарищи, помогите советом!
2ю ночь с помощью ST-Link от STM8S-Discovery пытаюсь прошить хоть 1 контроллер:
STM8S105C6T6 (попробовал 2), STM8S103F6P6 (все контроллеры новые, только купленные в Космодроме)
Пробовал:
— Просто 2 провода к земле и SWIM (42я нога в LQFP44)
— 4 провода с питанием и резетом
— 4 провода + Подтягивающий конденсатор на VCAP (попробовал 1мкф и 2,2мкф электролиты живые + к VCAP)
— 4 провода + «Полная обвязка» (Кварц 12Мгц + 20Пф керамика, подтяжка резета 10Ком к "+" и кондер 100нф к земле)

На ST-LINK правда, после отпиливания от макетки пришлось закоротить внизу платы +5в с выводом VDD на разъеме SWIM (в оригинале он коротился джампером на макетке, выбирая 3,3 или 5в)

Но! Родную макетку (отрезанную) с помощью ST Visual Programmer он шьет через VDD, VSS, SWIM, RESET, а вот внешние контроллеры шить не хочет!
Свою макетку прозвонил вдоль и поперек! И на КЗ и даже сопротивления промерял!
Ну так и без макетки, в воздухе на 2х проводах тоже ж не шьет! :(

Собственно, пациенты:


Прошивка оригинальной макетки:


Прошивка моей макетки:
0
  • avatar
  • Azzoo
  • 15 сентября 2012, 17:04
Конденсатор на Vcap надо керамический, на 680нФ (кажется). Может в этом все дело
0
Apnote от ST
В разделе 7.2 Schematics
Стоит электролит 1мкф

Также на самой дисковери стоит полярный кондер на 680нф.
Вообще там допустимо от 680нф до 3,3 мкф вроде.
0
К тому же у вас написано, что достаточно только 2х проводов! без питания.
т.е. какую роль тогда VCAP играет?
0
Проблема решилась! Спасибо! Да, дело было в конденсаторе! Он — гадюка, чуть пошевелишь, коротил.
Но без кварца и прочей обвязки, контроллер не шьется.
И только по 4м проводам.
Речь о новых контроллерах, только с завода.
Такие уж они — заводские контроллеры видать.
0
Но без кварца и прочей обвязки, контроллер не шьется.
Кто-то в этом сомневался? Хотя кварц по идее необязателен — они стартуют на HSI вроде.
0
  • avatar
  • Vga
  • 16 сентября 2012, 01:23
я сомневался, после этих слов:
Проще говоря, для подключения к дискавери обязательно нужны:
1) Пин SWIM от программируемого МК
2) Земля
Выяснил, опытным путем, что из обвязаки нужен только Vcap емкостью от 0,68 до 1,2 Мкф

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

Спасибо комменту dcoder! он по крайней мере указал направление где искать! :)
0
Это ISP/отладчик, а не программатор. А они всегда подразумевают, что МК включен в целевую схему и обеспечен всей необходимой обвязкой. А для связи целевой схемы и программатора-отладчика — да, достаточно двух проводов. Таргет при этом, разумеется, должен иметь свое питание и не мешать отладчику/ISP.
0
  • avatar
  • Vga
  • 16 сентября 2012, 14:29
Да, буду помнить, спасибо, мне еще внутрисхемной отладки предстоит.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.