Открыть список
Как стать автором
Обновить

Комментарии 64

Можно было ксором тушить/зажигать.
Изучающий тоже это первым делом увидит, напишет ксор, прошьёт МК и порадуется, что он внёс изменения и ничего при этом не сломал.
Плата дискавери и программирование происходит через ЮСБ?
Чипы в LQFP классные, но разводка не радует. Если мне нужно изготовить 30 плат, как их программировать правильно?

Все что у меня есть это куча макетных плат и ноутбук, у которого нет СОМ/LPT портов :(

За статью спасибо и +
Да, программирование и питание через USB. Разводка не сильно тяжеловата, при желании можно всё уместить на односторонном текстолите:
LQFP48

Только я тут схалтурил, надо обязательно еще керамические конденсаторы по углам.

Программировать — что значит как. Как обычно. Готовим 30 плат, выведя интерфейс SWD на штырьковый разъём. Впаиваем чипы. Прошиваем программатором (можно тем, что находится внутри Discovery). Готово.

Макетки не подойдут, разве что специализированные под LQFP48 (LQFP64) корпус.
а можно еще подробнее вот это
>> Готовим 30 плат, выведя интерфейс SWD на штырьковый разъём. Впаиваем чипы. Прошиваем программатором (можно тем, что находится внутри Discovery)

Я только учусь :)
Купил несколько этих контроллеров. А что бы Хелло ворлд. купил Ардуино УНО
Программирование здесь внутрисхемное, т.е. контроллер прошивается уже сидя в распаянной плате, а не как с DIP микросхемами, которые можно вставить в панельку, прошить и вытащить. Здесь надо на плате предусмотреть разъём для интерфейса программирования. Таким интерфейсом является SWD (две ножки — SWDIO и SWDCLK, не считая земли и питания). Так что при разводке выводишь этот разъём, изготавливаешь плату, впаиваешь чип (пустой), затем подключаешься к этому разъёму и прошиваешь чип. То есть разъём понадобится всего один раз на этапе сборки. Если на плате катастрофически не хватает места даже под 4 штырька SWD, можно найти другие методы программирования контроллера (вывести контактные площадки и придумать к ним что-то типа штекера). Но суть от этого не меняется.
Огромное спасибо, за ответ
Еще вопрос — как это сделать через ЮСБ?
Ну Вам же сказали, там 2 ножки «две ножки — SWDIO и SWDCLK, не считая земли и питания».
image
это на плату подключать?
Ну так наверняка же программатор нужен, если конечно там нет (что вряд ли) прошитого bootloader'a. Например вот: easyelectronics.ru/category/arm-uchebnyj-kurs
Discovery содержит в себе программатор ST-Link (на фото — всё, что выше горизонтальной черты, это программатор). Его можно использовать для прошивания любых контроллеров через интерфейс SWD, достаточно снять перемычки CN3 и можно использовать плату как обычный ST-Link.
Спасибо, теперь все понятно.
НЛО прилетело и опубликовало эту надпись здесь
Вот чего не знаю, того не знаю. Могу только сказать, что в нём нет распаянного JTAG'a, только SWD. А насчет совместимости с STM8 только гуглить…
Бутлоадер есть во всех STM32 Зашит аппаратно.
Чтобы прошить свою плату со своим контроллером при помощи Discovery — подключаем Дискавери по USB, снимаем две перемычки CN3 (на фото справа), соединяем проводами разъём SWD со своей платой (земля, SWDIO, SWDCLK, и, если нужно, питание) и прошиваем. Распиновку разъёма SWD надо смотреть в документации к discovery, ссылка в конце поста есть. Главное не забудь снять перемычки CN3.
Discovery работает как программатор?
Да, Discovery может работать как программатор. И она, кстати, дешевле чем ST-Link.
спасибо
теперь новичку все понятно :)
Ищу где заказать это чудо на Украине
в Харькове на радио рынке. Магазин Космодром, у них возможно даже доставка есть.
Ага! Обожаю их. Всегда и все можно найти, только вот цены у них слегка завышены мне кажется.
спасибо
уже включил в следующий заказ. у них там и 8 и 32 бит платы
Да именно так, я взял STM32L Discovery с сегментным дисплеем и 4 сенсорными кнопками. Вообще у них там очень много интересного, они расширили магазин теперь от витрин не оторваться.
L — это которая для STM32L?
А статья про STM32F. Отличия есть. Но с L-ками дел не имел и про них не знаю.

Дискавери полностью называется STM32VL-Discovery (VL — Value Line), сейчас поправлю это в статье, чтобы не было путаницы.
STM32L-Discovery описание у него такое — «STM32L-Discovery – недорогой способ познакомится с микроконтроллерами STM32L на ядре Cortex-M3, которые отличаются ультранизким энергопотреблением (к примеру, 270нА в спящем режиме)». Так что видимо да
Что это за свастика? о_О Вообще лучше землю полигоном заливать, а не дорожкой вести
Если число слоев больше одного — однозначно полигоном. Но я рисовал любительский вариант для одностороннего текстолита.
И на одном тоже полигоном. Будет стабильнее работать и травящего раствора будет меньше расходоваться
А, если речь о квадратике в центре — да, его можно расширить до полигона и заполнить всё пространство под микросхемой (только это будет питание, а не земля). Но я этого не сделал т.к. ЛУТом как правило плохо получаются сплошные залитые полигоны. Разве что сеточкой нарисовать. Хотя я думаю это всё не принципиально, т.к. ответственные платы все равно делаются на производстве, и они там как минимум двухсторонние, а это сразу избавляет от всех проблем с разводкой.
Я понял, что квадратик в центре относится к питанию =) И кога говорил про полигон — этот квадратик вообще не имел ввиду. Зачем он вообще?
Ну 4 вывода питания надо же было как-то соединить. Вот так и соединил. Не принципиально.
Вам руки оторвать за такую разводку =)
Это хорошая разводка, не шаришь.
Сам не видишь? Земля и питание приходит из одной точки. Питание изолировано от всей цепи. Т.е. все силовые линии питаются с одной точки фактически. Более того, в этом же закутке стоят (точнее можно поставить без проблем) все блокирующие кондеры, которые срежут весь цифровой срач МК в зародыше прям в его же силовой цепи. Наружу не выйдет ничего. Кратчашие пути замыкания этих иголок созданы. Плюс это все сделано ПО ОДНОЙ стороне. Что очень большой плюс для колхозников самодельщиков.

Разве что землю в общую кучу я бы подвел отдельной дорожкой со свободного угла в центральную плашку. Ну и наложил там полигон под весь камень почти.
Если так загоняться, то и дорожки нельзя под 90 град. прокладывать. А тут это избыточно. Для такого девайса пофигу из скольких точек питание идёт — не те частоты.
Налицо плохое знание матчасти. Частота и линия питания это вещи совсем из разной оперы. Большое кольцо в питании, а еще хуже в земле, работает как виток-антенна, ловящий всякое говно из воздуха. Искранула розетка в полуметре — получите иголки в питание. А если иголка наносекундная, то она может переклинить проц и он повиснет на ровном месте или сделает что то совсем не то. А длинные шины питания могут давать градиенты напряжений при заряде-разряде конденсаторов. От этого может плавать земля, давая опять же те же самые наносекундные иголки, которые гробят всю малину. Поэтому то и надо блоки запитывать звездой, разводя сигнал от источника, чтобы все это говно загнивало каждое в своей ветви.
Я говорил что против петли? Я же говорю — у него дорожки под 90 град., что тоже не хорошо. Но тут это не играет роли, я ничего не говорю против трассировки звездой, я пишу про конкретно идиотский квадрат под мк. Хватит троллить)))
Налицо плохое знание матчасти. Частота и линия питания это вещи совсем из разной оперы. Большое кольцо в питании, а еще хуже в земле, работает как виток-антенна, ловящий всякое говно из воздуха. Искранула розетка в полуметре — получите иголки в питание. А если иголка наносекундная, то она может переклинить проц и он повиснет на ровном месте или сделает что то совсем не то. А длинные шины питания могут давать градиенты напряжений при заряде-разряде конденсаторов. От этого может плавать земля, давая опять же те же самые наносекундные иголки, которые гробят всю малину. Поэтому то и надо блоки запитывать звездой, разводя сигнал от источника, чтобы все это говно загнивало каждое в своей ветви.
Это рассово правильная разводка. Питание из одной точки, легко заблокировать кондерами. И земля одним полигоном заливается.
Тут питание не из одной точки идёт, а из замкнутого квадрата.)))
И про технологию разводки я, как бэ, в курсе.
Говорю же не шаришь. Замкнутый этот квадрат или нет пох. Его можно и залить. Главное что не с разных участков цепи нахватано питание и не с радиальной дорожки опоясывающей всю плату, как я тут недавно увидел у кого-то.
Тыж смотри как извернулся. Зачет! И кондеры есть куда воткнуть.
отлично развел — порты ввода-вывода все открытые
У дискавери встроенный usb-jtag который можно использовать и в своих проектах
не JTAG, а SWD.
JTAG у дискавери не распаян. Но контроллером он поддерживается, и при большом желании можно его вручную распаять.
поделитесь ссылкой где почитать толково про JTAG и SWD
Даже не знаю, что и посоветовать. Про JTAG см. википедию, а SWD это коротко говоря то же самое, но по двум проводам (а не по четырём). Подробностей я и сам не знаю. Не интересовался. Оба интерфейса предназначены для программирования и отладки. В контроллерах STM32 есть оба, т.е. их можно программировать и отлаживать при помощи любого из этих интерфейсов. На дискавери распаян только SWD.
JTAG предназначен не для отладки, а для граничного сканирования. Отладка это побочный продукт.
Есть повод наконец-то серьезно задуматься о переходе с AVR…
Жаль только их не возят во все деревни в отличии от AVR, придется с инета заказывать.
Чтото ничего о потребляемой мощности на нашел, часто бывает критично…
Электрические характеристики можно найти в даташите на контроллер. Только не Reference Manual на всю линейку, а именно на контроллер. Вкратце — примерно пол миллиампера на МГц, в спящем режиме — микроамперы. Всё как обычно.
Прочитал эту статью сегодня в свежем номере журнала «Современная электроника». Вы автор?
(комментарий см. ниже, прошу прощенья, не ту кнопочку нажал)
Что? О_О_О
Нет, я эту статью вчера вечером написал специально для инвайта (это моя первая статья). Сейчас найду журнал и сравню статьи.
Понятно, на сайте свежих номеров нет. А можете сами сравнить? Мне интересно, насколько статьи похожи.
Хорошо, завтра пришлю скан.
Посыпаю пеплом голову, прошу прощения. Смутило похожее начало и общая структура статьи.
Вы бы сделали ещё обзор прикладных задач, которые можно решать на этом контроллере. Вообще для чайников в контроллерах, типа меня :)
а есть мануалы по работе с usb(для чайников)?
Для чайников не нашёл. Но в STM32 USB FS Device Library есть примеры создания USB устройств: виртуального COM-порта, HID устройства, Mass Storage (съёмный диск) и др., эти примеры можно запустить, поковырять, изучить таким образом «на живом примере».

Библиотеку и User Manual по USB Device Development Kit можно найти на st.com на странице определенного контроллера (например, STM32F103RB) во вкладке Design Support.
Оказывается в CoIDE уже есть средства программирования и отладки через ST-Link, и заливать программу в контролер можно через меню Flash — Download (предварительно выставив в настройках соответствующий отладчик). А ST-Link Utility вообще не при делах. На днях исправлю статью. Спасибо некоему coracio, не имеющему аккаунта и ждущему инвайта от меня, как только я его заработаю.
У меня Discovery с микроконтроллером STM32F051R8T6. Какие манипуляции с кодом нужно произвести, чтобы он успешно компилировался для моего камня?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.