Отладочная плата для контроллеров STM8S в корпусе LQFP32

STM8S105K4T3C в корпусе TQFP32Развёл и заЛУТил первую версию отладочной платы для контроллеров STM8S105 в корпусе LQFP32 (у меня распаян STM8S105K4T3C с 16Кб флеш-памяти):

  • Размером с визитку
  • Все порты выведены и на штырьки, и на цанговые разъёмы (кому как удобно)
  • Отдельно выведен UART
  • Для подключения питания есть клеммы, цанговые разъёмы и штырьки на выбор
  • SWIM-разъём, кнопка сброса
  • Кварц на 16МГц с конденсаторами

Для прошивки контроллера нужен программатор: ST-LINK или STM8S-Discovery с выпаянными перемычками SB1 и SB2 и соответствующий кабель.

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

Плата в дикой природе :)

Сразу отвечу на возможные вопросы:

Зачем эта плата, если есть STM8S-Discovery? Перед тем, как делать что-то на новом для меня контроллере хотелось убедиться, что я смогу его запаять (ага, первый раз паял LQFP) и попробовать собрать его обвязку. Ещё на Discovery всё выведено на штырки, мне их неудобно подключать к беспаечной макетке.

Почему именно этот контроллер? 32 ножек для меня пока достаточно, линейка STM8S103 у нас не намного дешевле, а STM8S105K6xxx с 32Кб флеш-памяти в момент покупки в наличии не было.

А готовых плат не нашлось? Кроме, собственно, STM8S-Discovery нашел вот такие платы от Wave Share и вот этот пример для Eagle (в нём 0,1uF конденсаторы стоят все в куче, а по аппноутам должны быть как можно ближе к пинам питания, или я чего-то не понимаю?). На идею использования формата визитной карточки натолкнули платы для AVR от Evil Mad Scientist.

Схема:
Схема

Плата:
Плата

Сейчас уже вижу несколько моментов, которые можно исправить и вопросов:

  • Дорожки питания можно сделать и потолще
  • Не нашел в наших краях никаких цанговых разъёмов, кроме DIP-панелек, пришлось их нарезать, может, есть специальные разъёмы?
  • В документе AN2752 Getting started with the STM8S в референсной схеме нет подтяжки на RESET, хотя страницей раньше в списке компонентов она есть. Я поставил, не уверен, что она нужна, но вроде бы и не мешает :)
  • Конденсатор на Vcap у меня выводной, SMD не смог купить
  • Может, чего ещё добавить? Место-то осталось...
  • Советы по разводке платы и уменьшению количества перемычек радостно принимаются :)

Файлы в формате Eagle CAD прикреплены к посту.
  • +4
  • 05 июня 2011, 00:39
  • artvolk
  • 1
Файлы в топике: stm8devboard.zip

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

RSS свернуть / развернуть
Цанговые разъемы конечно есть
<ahref=«www.brownbear.ru/catalog/view202.html»>
0
Спасибо, теперь хоть знаю как они называются. Судя по фотографиям от тех, что в DIP-ах используются они не отличаются?

И ещё глупый вопрос: ответные части со штырьками для них бывают? Обычные PLS не до конца вставляются…
0
Ответных вроде не бывает.
0
Бывают, но цена на них очень уж конская. По 50р линейка чтоль.
0
тут
15 рублей планка получается
0
Ага, только не совсем понял, какая у них сторона в плату запаивается? Если та, которая короче — то получается что отличие от обычных нет?
0
Та, которая с утолщение в гнездо не входит, поэтому логично что запаивается она. Фото сделать?
0
Спасибо, уже понял кажется. И в цанговый разъем штырёк входит до упора, верно?
0
Да. Именно так.
0
Спасибо!
0
Дорожки питания можно сделать и потолще
Я бы еще и постарался оптимизировать их разводку. Особенно земли, ее вообще бы сделал полигоном по возможности. Хотя на пинборде такие же узоры.
Алсо, если кондеры 1206 — под ними вполне можно протянуть дорогу. Так, например, можно подтянуть поближе к микре С4, выведя Vcap под ним. Насколько я вижу по фотке, зазор между площадками можно несколько увеличить. Конденсатор, который на Vcap — под заливкой представляет собой SMD с припаянными ножками. Можно попробовать выколупать, когда-то у меня получалось.
Может, чего ещё добавить? Место-то осталось...
Может, лучше перекомпоновать, чтобы покомпактней была?
0
  • avatar
  • Vga
  • 05 июня 2011, 01:09
Я бы еще и постарался оптимизировать их разводку. Особенно земли, ее вообще бы сделал полигоном по возможности.
Наверное, так и сделаю, если вторую копию буду делать, предыдущая плата с полигоном паялась плохо (поставил маленький отступ от полигона), на этой решил перестраховаться. А питание есть смысл делать толще? Сейчас там всё 16mil (0,4мм).

Алсо, если кондеры 1206 — под ними вполне можно протянуть дорогу.
1206 там только кондёры под кварцем (опять же, не нашел мельче), вообще план был всё сделать в 0805 :)

Может, лучше перекомпоновать, чтобы покомпактней была?
Вдохновение бралось с этих платок для AVR, очень уж форм-фактор понравился, в любой бумажник влезает :)
0
А в чем там потаенный смысл кучи закороченных дырок, не подключенных никуда? А плату вашу разводил автотрассировщик?) Ее наверное на треть, если не больше получилось бы сделать меньше. Уж что-то совсем она какая-то нелогичная. Если уж используете второй слой, то используйте его не для 2х перемычек, а несколько больше. Вот что сразу в глаза бросилось (естесвенно, дорожками надо обойти отверстия):
0
Ах да. Некоторые ваши переходные отверстия можно было бы смело выкинуть и вместо них использовать дырки для разъемов.
0
А как припаивать штыри к контактным площадкам на верхней стороне? Если бы плата была двухсторонней.
0
Разводилась плата руками (да, такими корявыми :))

Второй слой = перемычки кинутые поверху, это не медь. Да, можно перемычки кинуть напрямую, но т.к. это провода, лежащие поверх платы, они не лягут под кнопку и на UART разъём, нужно будет огибать, некрасивенько :)
0
Ах да. Некоторые ваши переходные отверстия можно было бы смело выкинуть и вместо них использовать дырки для разъемов.

UPD. Загрузилась картинка с перемычками. Не бойтесь двухсторонних плат, они значительно упрощают жизнь и позволяют существенно уменьшить площадь, по сравнению с односторонней. Кэп.
0
Двусторонние в очереди на освоение стоят, нужно решится :)
0
Да они белые и пушистые. Пару раз промажете, смоете тонер и порядок будет :)
0
Питание всегда есть смысл сделать потолще. Индуктивность уменьшится, сопротивление и все такое. Помех будет меньше.
1206 там только кондёры под кварцем (опять же, не нашел мельче), вообще план был всё сделать в 0805 :)
И под 0805 думаю можно. Разве что придется дорогу тоньше делать…
Вдохновение бралось с этих платок для AVR, очень уж форм-фактор понравился, в любой бумажник влезает :)
Меньше не больше, тоже влезет.
0
под 0805 дорога в 0,5 вполне хорошо проходит
0
Хорошая платка, плюс вам :). Только я бы сделал кварц отключаемым, еще две ноги при встроенном хорошем резонаторе иногда нужны.
0
Такой план изначально был, но потом отказался от этой идеи, т.к. нужно было ещё кидать две перемычки поверху. Кстати, достаточно было бы отключать джампером кварц от земли, чтобы он не мешал использованию ног?
0
Думаю недостаточно. Сколько видел, все либо цанговый зажим под кварц ставят, либо две перемычки. Кстати, даже немного подправив текущий лэйаут это можно сделать — три штырька буквой Г, два штырька в разрыв дорожки к кварцу, один — к пину. Тогда при помощи перестановки джампера можно будет переключать вывод с кварца.
0
Вот тут у китайцев один джампер переключает кварц, второй день думаю как он стоит :)
www.wvshare.com/img/preview/EX-STM8-Q48a-105-Standard_l.jpg
0
Гм. Да, загадка. Надеюсь, знатоки прояснят этот вопрос :). Уже и самому интересно.
0
Отключает один из выводов кварца от пина.
0
А другой вывод при этом использовать нормально можно? Или все же два джампера надо?
0
Нормально, думаю.
0
Хотя, если корпус заземлен, то возможно у пина емкость увеличится на несколько pF.
0
сенсорных кнопок пару штук.
0
Напечатанных на плате, таких как тут?
www.wvshare.com/img/preview/EX-STM8-Q48a-105-Standard_l.jpg

При одностороннем ЛУТе, я так понимаю, их на top не сделаешь?
0
сделай на боттом и жми их сквозь текстолит. Какая разница то?
0
Да, действительно. Оффтопиковый вопрос — нигде не нашел на сайте пока ответа, какую процедуру должен пройти пост, чтобы попасть в блог STM8, например?
0
А «справочная» в шапке? Если на блог подписан, а в списке «куда пишем» он не появился — значит не хватает рейтинга.
0
Спасибо, всё получилось :)
0
Кстати, кто как позиционирует слои при двухсторонней ПП?
0
Я по отверстиям и кусочкам проволки, вставленным в эти отверстия. Главное — точно и вертикально просверлить отверстия.
0
Мне кажется, или после перенесения надписей на противоположную сторону платы остался белый налет от бумаги?
Да, он такой, коварный… Хорошо въедается в стеклотекстолит. Зато неплохо удаляется металлической щеткой для обуви.
0
Мне кажется, или после перенесения надписей на противоположную сторону платы остался белый налет от бумаги?

Да, так и есть, я его удалял в предыдущие случаи каким-то средством для ванны, но оно кончилось и поэтому в статью выше пришлось писать отмазку:

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


Кстати, металлической щёткой буковки не сдираются?
0
Нет. Они прижариваются покруче самой бумаги =). Хотя иногда мизерные кусочки тонера все-таки отлетают, но на читаемость это никак не влияет.
0
Спасибо за совет, проволочная щётка как раз в хозяйстве есть и не должна кончиться в неподходящий момент :)
0
Он хорошо убирается обычной зубочисткой, пока мокрый
0
Ну или обычной губкой для мытья посуды (грубой стороной)
0
Ну или обычной губкой для мытья посуды (грубой стороной)
На мой это не действует почему-то :)
0
Конденсатор С7 — полярный или нет?
Зачем выпаивать перемычки SB1 и SB2?
0
Конденсатор С7 — полярный или нет?
У меня керамика, неполярный.

Зачем выпаивать перемычки SB1 и SB2?
Перемычки SB1 и SB2 нужно выпаять на STM8S-Discovery, чтобы отключить RESET и SWIM сигналы от встроенного на плату контроллера (описано тут: www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/CD00250600.pdf стр.8). Я ещё снимаю джампер выбора питания встроенного на плату контроллера на всякий случай, не уверен, что это нужно.

Альтернатива — можно разломать STM8S-Discovery там, где это предусмотрено, эффект будет тот же.
0
Просто у меня STM8L-Discovery, там в инструкции пользователя написано, что нужно разомкнуть два джампера для разрыва программатора с распаянным на плате МК. Я думал, что тут также.
0
Кстати, вроде бы STM8S-Discovery STM8L шьёт (только без преобразования уровней, т.е. или 3.3В или 5В), а наоборот не пробовал?
0
Ну вот наоборот не получается, пробую STM8L-Discovery прошить STM8S103F3P6, программатор не видит МК. Надо бы как-нибудь убедится, что МК стартует.
0
Действительно, как можно понять, что он стартанул, если программатор его не видит?
0
Короче разобрался. Конденсатор, который нужен для преобразователя 1.8в, оказался дохлым. Сделал связку из 4х керамических 0,22 — все подцепилось. STM8L-Discovery в этом плане как-то поудобнее, не надо перемычки перепаивать.
0
Для программирования контроллера на STM8S-Discovery я просто накидываю два проводочка — RESET и SWIM, которые были соединены перемычками (чтобы не паять туда-сюда). Хотя да, согласен, STM8L — удобнее.

Кстати, твой целевой контроллер питался от 5В? Как к этому отнеслась STM8L-Discovery?
0
Кстати, твой целевой контроллер питался от 5В? Как к этому отнеслась STM8L-Discovery?
да как-то пофигистически. Я его запитывал от пина 5v на дискавери, но в реальности там было около 4,2в.
0
Да, туплю, если чип программатора (который STM32xxx) на STM8L-Discovery такой же как на STM8S-Discovery, то он 5V tolerant и он может шить целевые контроллеры, запитанные от 5V
0
> перемычками SB1 и SB2 и соответствующий кабель.

Не самый лучший, но простой вариант — это
совсем вытащить джампер питания (3.3/5.0в)
(для STM8S демки)
0
Я снимаю джампер питания всегда, но при подключении к target-плате дискавери всё равно запитывается…
0
> всё равно запитывается…

разве что святым духом «запитывается» или от себя соплю…

Открываешь UM0817, ищешь figure 12, изучаешь увиденное
после изъятия перемычки JP1, пины PD1 и NRST без питания
находятся как бы в высокоимпендансном состоянии.
0
Смотри: на целевой плате на Vcc пин SWIM-разъёма подведено питание целевой платы (в описании ST-Link это именно target Vcc, который использует полноценный ST-Link для определения лог. уровней схемы), соответственно при выдёргивании перемычки и подключении SWIM шнурка часть дискавери с контроллером STM8 запитывается от целевой платы через SWIM-разъём.

На указанной тобой схеме в UM0817 это шина Vdd. На следующей схеме figure 13 Vdd подценлена к первому пину SWIM-разъёма.

Таким образом в моём случае всё выглядит так:

1. Если на целевой плате нет питания — нет питания и на STM8-части дискавери
2. Если подать питания на целевую плату с выдернутой перемычкой JP1 на дискавери — целевая плата запитает и STM8-часть дискавери

Что будет, если перемычку оставить на месте, не пробовал, скорее всего кому-то поплохеет.
0
Вопрос сложный. Питать с цели — подстава имхо.
Ди писал где-то про паразитное питание,
здесь похожий случай. для USB питание лучше
свое и земля соответственно. у меня только
1,5 платы именно так и шьют друг-дружку.
0
У DI в статье именно паразитное питание, здесь же мы явно питаем по шине питания.

Насколько я понимаю, в полноценном ST-Link стоит какой-то буфер, наподобие этого из USBTinyISP: www.nxp.com/documents/data_sheet/74AHC_AHCT125.pdf

Таким образом, когда на пине Vcc с target идёт его Vcc, то этот буфер позволяет программатору работать с логическими уровнями, отличными от его собственных.

Это в теории, если же в качестве программатора используется STM8S-Discovery (как у меня), то его ST-Link'овая часть всегда работает на 3.3 с соотв. лог. уровнями, а входы контроллера STM32 просто 5V tolerant.

Вроде бы так, поправьте, если где ошибаюсь…
0
Ребят, насколько тяжко будет перейти на STM? Просто читаю все и понимаю что AVR дорого. Да, статей, библиотек для AVR туча, только лентяй не разберется, но мне кажется пора начинать параллельно что то другое.
0
Не сложно. Я гарантирую это :)
Для безболезненного перехода нужна дискавери и пачка примеров. Реально мне пришлось еще и вкуривать в си при изучении СТМ. и ничего, жив :)
0
Эх, дискавери. Нет у меня ее. Опять деньги тратить.
А что там с библиотеками? Ну с основной периферией
0
Есть библиотеки от производителя. Вполне себе не плохие. На них-же идут примеры по работе с периферией.

сама периферия хоть и чуть более сложная, чем АВР, но работать с ней довольно просто. Процитирую ZiB:
Вы не поверите, но для “стандартного” режима обмена (восемь бит данных, один стоп бит и т.д.) достаточно разрешить работу передатчика и задать скорость обмена
0
Спасибо, если что начитаюсь до чертиков. Было даже такое, что после выкуривания книги по МК и написания на асме, ночью во сне видел биты, байты, а потом проснулся от крови из носа))) После Z80 уже ничего не страшно)))
0
Тяжко переходить с х86 на МК — ОЗУ мало) А так разница малосущественна, в зависимости от задач — от часа (а то и меньше) курения мана и вперед. Ну, если писать на асме — придется еще полдня потратить на изучение его команд и архитектуры. Если на С — тока покурить интересующую периферию и основные блоки, вроде клока.

Вот тока, как я понял, с самопальными погроматорами для стм8 туго, нуна дискавери покупать ради него.
0
У некоторых моделей есть бутлоадер на UART1. Подробее тут
0
Так я начинал с Радио 86РК, потом плотно Z80, состоял в группе разработчиков и демостроителей, потом x86, длительное время состоял под статусом фрикер и крякер в одной из групп, потом AVR. Постарел)))
ST-Link же прокатит вместо дискавери? Ну естественно спаяю какаю нибудь платку с стм
+1
Радио 86РК… Эээх) Как же он мне нравился.) *Ностальгия* )
0
Прокатит конечно, да еще и STM32 зашьет. Но он стоит дороже, ЕМНИП.
Логика была такой: «В цикле всего 100 итераций, так зачем лишнюю память под счетчик расходовать» :)
На ПК как раз таки память без нужды экономить смысла нету. Проц все равно работает с 32-битными единицами, так что Integer/int будет оптимальнее. К тому же, циклы нередко расширяются, а вот размер счетчика при этом проверить забывают) Вот при сохранении в файл или при хранении в памяти дохрена однотипных данных — там уже стоит подумать. Причем тщательно подумать, чтобы потом не выяснилось, что 640кб таки хватило не всем, а файлы бывают более чем в 2ГБ размером.
0
А есть смысл с STM8 начинать или сразу на 32 позариться?
0
ИМХО, есть. По крайней мере 8 мне проще кажутся. Да и не нужны мощности стм32 мне.
0
А вот фиг его знает) Но на 32 есть самопальные прошиваторы. Разве что среди STM32 можно найти корпус побольше (SOP), ног поменьше и цену чуть ниже.
0
спасибо за консультацию!
0
Недавно, когда писал программу под винду, поймал себя на мысли, что выделяю байт под счетчик цикла. Логика была такой: «В цикле всего 100 итераций, так зачем лишнюю память под счетчик расходовать» :)
0
Да это фигня))) главное чтобы в сексе ты не стал придумывать устройство которое измеряет частоту)))
0
Кто-либо пытался делать отдельное батарейное питание для STM8S?
Хочется чтобы только один проц продолжал работать без периферии,
браундаун опять же съэмулировать…
0
я смотрю никто не подтягивает резистором вывод SWIM. Нужно ли его подтягивать вообще? После программирования он остается висеть в воздухе ведь.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.