Страница 1 из 1
STM32 Hardware Development - Getting Started
Добавлено: 04 апр 2012, 19:05
Proletariat
Поковырялся с Discovery и наконец созрел для собственного проекта, сел разводить и натолкнулся на кучу вопросов (ну как кучу, так кучку). Может быть мне помогут здесь?
Сначала изучил я доку'мент: AN2586_Hardware_Development_Getting_started.pdf
Также тщательно прочитал описалку на сам дискавери с его схемами.
Первый вопрос который появился: а как я это буду программировать? Вроде как ответ сразу и появился: используй SWD разъем с ST-Link, встроенного в дискавери. Ответ очевидный, стал искать в интернете: какие проблемы могут появится. Узнал, что ресет мне не нужен, а нужно реально 2 провода+земля. При этом вот тут:
http://we.easyelectronics.ru/GYUR22/stm32-swd-misteriya.html говорят о том, что нужно запараллелить вход через емкость на землю!!!! И вот это мне совсем непонятно. Расскажите пожалуйста, кто знает как правильно использоваьть SWD разъем с выхода дискавери для программирования других stm32.
На будущее мне нужен будет bootloader. О чудо, в stm32 есть встроенный бутлодырь, работающий по UART. Но есть сложности с его работой: во первых мне нужно уметь ресетить контроллер, + нужно выставить правильные уровни на ногах BOOT0, BOOT1. Итого, мне в конечном устройстве нужно иметь 2 джампера, для включения правильных уровней на ногах BOOT и кнопка сброса. В случае, когда мне надо обновить прошивку, я должен буду лезть внутрь устройства, выставлять джамперы и нажимать на кнопку. И это плохо. На авр у меня было сделан собственный бутлодырь, который всегда включался при запуске, ждал правильную команду по UART, если не дожидался, то переходил на 0 адрес, а если дожидался, то переписывал всю память постранично.
Хотелось бы реализовать такой же процесс и в stm32.
Собственно вопрос мой заключается в том, как можно переписать память stm32 (а с линкером я уже разобрался, т.е разнести бутлодырь и основную программу я сумею)
Re: STM32 Hardware Development - Getting Started
Добавлено: 04 апр 2012, 19:23
BSVi
1. Для использования SWD никаких емкостей не нужно. Просто цепляешь его в выводам контроллера и все.
2. Как переписать память написано в секции "Embedded Flash memory" Reference manual'а
Re: STM32 Hardware Development - Getting Started
Добавлено: 04 апр 2012, 20:36
Proletariat
Еще вопрос в кучу. О стабильности внутреннего генератора 8МГц, достаточно ли его стабильности для UART, лишние кварцы лепить не хочется.
Re: STM32 Hardware Development - Getting Started
Добавлено: 04 апр 2012, 20:47
BSVi
Да, для UARTа точности с головой.
Re: STM32 Hardware Development - Getting Started
Добавлено: 06 апр 2012, 18:03
uschema.com
В инете где-то есть версия (у мя в букмарках линка была) бутлодыря, который по юсб прикидывается FAT, туда просто льете свой бинарик и он зашивает чип.
Правда там помоему все это еще както связано с SD карточкой, иль я чтото спутал, забыл уже ))
погуглите на предмет STM32+FAT+bootloader
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 13:36
Proletariat
Таак, вот я сделал простенькую приблудину на STM32F101C8 для управления экранчиком типа WF43xxxx (используется драйвер SSD1963). (Если будет кому интересно, позднее могу выложить все картинки) Поскольку это мой первый опыт разводки под STM32 (да и опыта работы с этим микроконтроллером немного) я столкнулся со всякими забавными вещами.
Во-первых SWD заработал сразу же и это хорошо, я тут же подергал ножкой PB2 контроллера, которая выведена наружу для игрищ с бутлодырем.
Организовано у меня все следующим образом: PORTA - выведен как 16-битный датапорт, тут будут слать данные в SSD1963, а PORTB частично сделан для управления драйвером (всего задействовано 7 ног).
После подергивания PB2, я решил сразу же переписать исходник (а чего ждать?), который у меня был написан для STM32VLDiscovery (там я работал с 8-битной шиной данных и в качестве порта данных использовал PORTC). Все вроде бы шло нормально, но результата на экране 0. То есть ничего не рисует. И тут до меня дошло, часть битов PORTA используется под SWD, а точнее PA13 и PA14 и они естественно не дергаются после загрузки программы в контроллер, посему надо запретить использовать портA всяким альтернативным функциям типа JTAG.
И еще странность, загрузил программу в которой дергаю PA0 и PB2, с использованием SWD ножки дергаются. После этого отключаю SWD, перезагружаю котроллер, PB2 дергается на ускоренной скорости, PA0 молчит. Я просто в замешательстве, хотя скорее всего сказывается маленький опыт работы с этим контроллером. Жду вашей помощи.
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 14:16
BSVi
Что значит, на ускоренной скорости?
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 15:16
Proletariat
А вот что это значит:
в тексте написано примерно следующее,
Код: Выделить всё
while(1)
{
GPIOA->BSRR = GPIO_BSRR_BS0;
GPIOA->BSRR = GPIO_BSRR_BS1;
GPIOA->BSRR = GPIO_BSRR_BS14;
GPIOB->BSRR = GPIO_BSRR_BS2;
GPIOA->BSRR = GPIO_BSRR_BR1;
GPIOA->BSRR = GPIO_BSRR_BR0;
GPIOA->BSRR = GPIO_BSRR_BR14;
GPIOB->BSRR = GPIO_BSRR_BR2;
}
Это я так проверяю щелкают ли ножки. Так вот, после перезагрузки (снятия-подачи питания), такое ощущение, что инструкции связанные с портом A просто пропускаются, зато PB2 переключается быстрее.
upd. Агаа, оказывается без SWD клок по другому инициализируется. С этим я буду разбираться еще, но, что важно 14 нога все еще не телепается
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 16:52
uschema.com
GPIO_BSRR_BSхх это с дефайнов.
http://www.st.com/mcu/modules/Splatt_Fo ... TM32F10x.hпохоже что
GPIO_BSRR_BSхх - set bit, GPIO_BSRR_BRхх - reset bit
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 17:17
Proletariat
Это понятно, что с дефайнов, вопрос не в этом, и это понятно, что S-set, R-reset.
Вопрос не в этом.
Обнаружил новую странность:
1. Экран отключен, SWD отключено, подключаю питание - ножки B2, A0, A1 - дергаются, A14 не дергается
2. Экран подключен, SWD отключено, подключаю питание - ножки вобще ни одна не дергается.
2. Экран подключен, SWD подключен, запускаю из IAR - ножки B2, A0, A1 - дергаются, A14 не дергается, ибо SWDCLK
чип STM32F101C8T6, датапорт на порту А (альтернативные функции порта PA0-WakeUp, PA13 - SWDIO, PA14-SWDCLK, PA15-JTDI)
к порту B подключено лишь часть управляющих выводов, причем все они должны быть с высоким импедансом со стороны индикатора (то бишь просто входы индикатора), использую ноги 3,4,5, 12-15. Альтернативные функции порта B (PB3-JTDO, PB4-JNTRST)
Весь в загадках и затруднениях, а все почему: опыта мало с STM.
upd. проблема была в питании. Толи некачественный кабель, толи какая то такая же проблема, но камень тупо не заводился. Сейчас бьюсь дальше.
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 21:43
Proletariat
upd2. Продвинулся дальше. Но как говорила Алиса, чем дальше тем страньше.
Итак, для того чтобы PB3, PB4 ожили нужно отключить JTag. Его я благополучно отключил! SWD оставил включенным. И урра, экран ожил, причем как надо ожил. Правда я пока умышленно использую 8-битный интерфейс, но об этом дальше.
Натолкнулся на трудность. По совету Сергея (см. выше в ветке) в плату я не завел RESET с ST-LINK и вот теперь мучаюсь. Для того чтобы перезалить прошивку контроллера я должен сделать такое шаманство: 1 Подцепить Boot0 к +, отключить, питание, подключить питание, запустить download прошивки. Утомляет.
Вопрос по существу: как вновь подключить JTAG. Ну то есть, я его отключил, попользовался его ногами и снова подключил (Как сделать вторую операцию)
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 21:55
BSVi
Я не понимаю, зачем тебе ресет? Не нужно никакого шаманства, прошивка вполне себе заливается через SWD.
Подключить JTAG можно обратнов установив биты remap'а.
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 22:11
Proletariat
Вооот, а можно конкретнее? Как? с куском кода если можно
Re: STM32 Hardware Development - Getting Started
Добавлено: 24 апр 2012, 22:26
BSVi
AFIO->MAPR &= ~AFIO_MAPR_SWJ_CFG;
Re: STM32 Hardware Development - Getting Started
Добавлено: 07 апр 2014, 21:47
vovanxp
ST-link использую с stm32vldiscovery, на discovery ST-LINK Utility конектится.
Подключаю внешнюю плату не конектится. Перемычки на stm32vldiscovery убираю, внешний МК stm32f407. Питание на МК подается.
Re: STM32 Hardware Development - Getting Started
Добавлено: 07 апр 2014, 23:31
vovanxp
Проблема в том что что хочет ресет “Can’t connect to target”.
Питание использую на тарждете отдельное, если питание питание от stm32vldiscovery тогда работает.
Re: STM32 Hardware Development - Getting Started
Добавлено: 02 май 2014, 23:02
N1X
Блин, вот наткнулся в даташите на такую фигню... Это что, у них на 3й группе питания что-то мощное висит? И кто-нибудь придерживался этой фигни? )
Re: STM32 Hardware Development - Getting Started
Добавлено: 22 май 2014, 10:17
Proletariat
Я ставлю прямо как написано. А что не так? На каждую ногу питания вблизи ее ставится 100nF + общее >4.7мкФ на все питание. Конечно, это все зависит от реально используемого чипа и количество ног питания может отличаться от чипа к чипу
Re: STM32 Hardware Development - Getting Started
Добавлено: 22 май 2014, 16:20
N1X
Так в том и смысл, что написано конкретно "4,7мкф должен быть подключен к Vdd3", т.е. из контекста я понимаю, что не куда-то там, а ближе именно к Vdd3, вот и стало любопытно - может кто в курсе к чему именно так?
Re: STM32 Hardware Development - Getting Started
Добавлено: 26 май 2014, 07:57
Proletariat
Нет, имеется в виду именно это, что куда то там, но близко от микросхемы.
Re: STM32 Hardware Development - Getting Started
Добавлено: 19 апр 2025, 11:22
yaachii
Re: STM32 Hardware Development - Getting Started
Добавлено: 02 май 2025, 11:43
yaachii