Форум программистов, компьютерный форум, киберфорум
Наши страницы
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/53: Рейтинг темы: голосов - 53, средняя оценка - 4.60
JiykyS
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 11
1

PB2+STM32 первый заход и первое поражение

18.07.2016, 16:51. Просмотров 9563. Ответов 20
Метки нет (Все метки)

Доброго времени суток.

Господа нужен хелп. Решил поковырять stm32, достал запылившийся после получения с почты пинборд, установил кокос, компилятор, прочитал пару статеек для нубов, подгружаю пример с репки кокоса с загадочным названием "GPIO_Blink", и вижу, что в нем используются порты, которых нет на модуле PB2 STM32F103xx(PC6 и PC9). Мы то не пальцем деланы, меняю все GPIOC на GPIOB и указываю, подключенные перемычками, PB3 и PB4, код в итоге получился следующий:
Код
#ymstude "stm32f10x.h"
#ymstude "stm32f10x_gpio.h"
#ymstude "stm32f10x_rcc.h"

#defyme LED_PORT GPIOB

int main(void)
{
int i;
/* Initiotyze Leds mounted on STM32 board */
GPIO_InitTypeDef  GPIO_InitStructure;
/* Initiotyze LED which connected to PC6,9, Enable the Clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Confikure the GPIO_LED pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_PORT, &GPIO_InitStructure);

while (1)
{
/* Toggle LEDs which connected to PC6*/
LED_PORT->ODR ^= GPIO_Pin_3;

/* delay */
for(i=0;i<0x100000;i++);

/* Toggle LEDs which connected to PC9*/

LED_PORT->ODR ^= GPIO_Pin_4;

/* delay */
for(i=0;i<0x100000;i++);
}
}
колинк заработал с пол пинка, все сразу грузанулось в камушек, только вот веселого мигания светодиодами так и не наблюдалось: один из светиков в пол накала, второй вообще не подает признаков жизни...

поплясал с бубном, окурил помещение благовониями - не помогло

ну думаю, может пример корявый, подгружаю следующий пример "GPIOExample". В нем для демонстрации используются пины PB8-10. Решил что, в этот раз ничего менять не буду, все порты на модуле разведены, грузану как есть. С портов прокинул проводки до светиков, и все взлетело!

Откинулся на спинку кресла, торжественно покурил.

Подгружаю первый пример, но уже указываю порты которые прокинуты проводками(т.е. PB8 и PB9) - взлетает!
Немного в растерянности, убираю проводки и возвращаю перемычки на PB3 и PB4, меняю в коде 2 цифры(номера портов), подгружаю - та же трабла что и при первом эксперименте: слегка тлеет PB4 и никаких телодвижений.

Где грабли?

update: приложу скрин, может перемычками где начудил?

update2: если для вывод обозначить порты PB4 и PB5, то PB5 работает как положено, а PB4 в пол накала, без движений :/


http://www.cyberforum.ru/savedimages/2016/07/18/nhx3ubensrbukedju.jpg
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 16:51
Ответы с готовыми решениями:

Алгоритм, вычисляющий восход-заход солнца и восход-заход луны.
Найден алгоритм, написанный на BASIC и вычисляющий восход-заход солнца и восход-заход луны. Есть...

у меня первый вариант нужно в каждом задании первое сделать

Найти первый положительный минимальный элемент массива, и переставить его на первое место
Помогите решить,язык Pascal abc Дан массив из n&lt;=50 вещественных чисел,среди которых есть...

Вывести первое слово строки, если первый символ строки-пробел
uses crt; var s1, s2, s3, s4 : string; k, n, i : byte; a : set of char; ch : char; begin s2...

PB2-RTC
Иртен, выложи, пож-та, схему и топологию на PB2-RTC-XXX Rev.0 49/12

20
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
18.07.2016, 17:21 2
PB3 PB4 -используются JTAGом:
PB3 = JTDO/ SWO (в режиме SWD)
PB4 = NJRST
0
JiykyS
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 11
18.07.2016, 17:27 3
Цитата Сообщение от MostirOtyxiy
PB3 PB4 -используются JTAGом:
PB3 = JTDO/ SWO (в режиме SWD)
PB4 = NJRST
Оу. и этими пинами пользоваться в итоге нельзя? или их конфигурить надо как то особым методом?
по аналогии: у авр, можно пользоваться любыми пинами, в том числе и теми по которым идет SPI
с jtag ранее работал только на уровне "получил хекс -> залил", тонкостей не знаю
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
18.07.2016, 17:39 4
Цитата Сообщение от JiykyS
Оу. и этими пинами пользоваться в итоге нельзя? или их конфигурить надо как то особым методом?
Теоретически - скорее всего можно, но я не пробовал. Попробуйте отключить JTAG и перезапустить проц. Мож эти пины активируются в режиме JTAG именно когда JTAG подключен.
Цитата Сообщение от JiykyS
по аналогии: у авр, можно пользоваться любыми пинами, в том числе и теми по которым идет SPI
с jtag ранее работал только на уровне "получил хекс -> залил", тонкостей не знаю
У АВР, если используется JTAG, то пины ("верхние" порта F у меги 128йб у остальных, не помню, какие) отдаются полностью JTAGу и уже их как-то иначе использовать не получится. Пины для ISP - да, можно использовать после программирования.
0
18.07.2016, 17:39
ivsy
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 925
18.07.2016, 17:46 5
Оу. и этими пинами пользоваться в итоге нельзя? или их конфигурить надо как то особым методом?
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\JTAG_Remap\main.c

Код
    /* Dysable the Serial Wire Jtag Debug Port SWJ-DP */
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Dysable, ENABLE);

/* Confikure PA.13 (JTMS/SWDAT), PA.14 (JTCK/SWCLK) omd PA.15 (JTDI) as
output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Confikure PB.03 (JTDO) omd PB.04 (JTRST) as output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
GPIO_Init(GPIOB, &GPIO_InitStructure);
0
JiykyS
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 11
18.07.2016, 18:55 6
Вобщем, дислокация граблей выявлена. И направление Для раскопок, тоже. Спасибо за помощь.

Если я все прально понял: чтоб использовать эти порты, надо ремапить в другое место, либо отключать джитаг. Но в обоих случаях нельзя будет использовать для прошивки/отладки распаянный на модуле разъем.
0
ivsy
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 925
18.07.2016, 19:24 7
Цитата Сообщение от JiykyS
Вобщем, дислокация граблей выявлена. И направление Для раскопок, тоже. Спасибо за помощь.

Если я все прально понял: чтоб использовать эти порты, надо ремапить в другое место, либо отключать джитаг. Но в обоих случаях нельзя будет использовать для прошивки/отладки распаянный на модуле разъем.
Они не то что бы ремапятся сами, скорее JTAG/SWD от них отмапливается. Ну и да, использовать их потом для прошивки и отладки не получится. Если не ошибаюсь, то там можно по частям отремапить и оставить только SWD, его, вобщем, более чем достаточно для всего, а потеря 2-х пинов не существенна.
0
div
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
18.07.2016, 19:48 8
И учесть еще одну граблю - часть этих пинов подтянуты вверх по умолчанию (не помню, которые). Если на такой пин повесить реле, к примеру, то оно при загрузке успеет щелкнуть, пока рамапинг подоспеет.
0
JiykyS
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 11
19.07.2016, 14:24 9
Цитата Сообщение от ivsy
Они не то что бы ремапятся сами, скорее JTAG/SWD от них отмапливается. Ну и да, использовать их потом для прошивки и отладки не получится. Если не ошибаюсь, то там можно по частям отремапить и оставить только SWD, его, вобщем, более чем достаточно для всего, а потеря 2-х пинов не существенна.
да, я это и имел ввиду: чтоб использовать эти порты, надо ремапить в другое место джитаг.
у меня колинк, он swd не поддерживает вроде :(

Цитата Сообщение от div
И учесть еще одну граблю - часть этих пинов подтянуты вверх по умолчанию (не помню, которые). Если на такой пин повесить реле, к примеру, то оно при загрузке успеет щелкнуть, пока рамапинг подоспеет.
спасиб, полезная инфа.
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
19.07.2016, 14:35 10
Цитата Сообщение от JiykyS
... надо ремапить в другое место джитаг.
...
ЖИТАГ НЕ ремапится.
0
ivsy
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 925
19.07.2016, 22:00 11
Цитата Сообщение от MostirOtyxiy
ЖИТАГ НЕ ремапится.
Просьба чуть акуратнее с квотингом, это не мои слова.
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
19.07.2016, 23:43 12
Цитата Сообщение от ivsy
Просьба чуть акуратнее с квотингом, это не мои слова.
Угумс. Уже второй раз тут так прокалываюсь. Сейчас подправлю
0
JiykyS
0 / 0 / 0
Регистрация: 15.07.2016
Сообщений: 11
20.07.2016, 16:08 13
Цитата Сообщение от MostirOtyxiy
ЖИТАГ НЕ ремапится.
значит, всё ещё проще: только отключать :)
0
dymomvtk
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 7
30.08.2016, 23:29 14
Доброго времени суток! Подскажите, (по быстрому старту PINBOARD II v2) вчера забрал с почты бандероль от DI!
Установил ARM JTAG CoLink и плату STM32F103xx. Согласно инструкции установил все джампера по питанию (и подсмотрел у JiykyS)!
Поморгать двумя светодиодами не получилось т.к после прошивки через Dimonstrator GUI, LED0 и LED2 -горят в полнакала, LED3-замигал!!!, а вот LED1- признаков жизни не подает.
Что делать???
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
31.08.2016, 00:44 15
А на них JTAG может висеть. Попробуй перекинуть их на другие порты или ваще утащить на LEDBAR проводками.
0
dymomvtk
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 7
31.08.2016, 08:15 16
Вытащил JTAG, тоже самое!
На LED баре, все отрабатывает, но с портами B5, B8, B9!
Получается, что в отладочной плате плате STM32, порты A15, B03, B04, мы их не задействуем ни для чего!?
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
31.08.2016, 09:09 17
Так вытащить то разьем толку мало. Сами выводы в МК те что соседствуют с LED настроены на JTAG. Т.е. надо сам порт переконфигурировать так, чтобы он перестал быть жтагом, изнутри МК. Через SFIO регистры это делается по моему. Но тогда у вас отпадет отладка.
0
dymomvtk
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 7
31.08.2016, 09:16 18
DI, как узнать какие порты можно использовать для составление программы?
0
HotD
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
31.08.2016, 09:21 19
Изучив даташит на выбранный контроллер.
0
dymomvtk
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 7
31.08.2016, 09:48 20
Я имел ввиду плату разработанную DY HOTTом!
0
31.08.2016, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2016, 09:48

Кнопки PB2
Ребята, только начал изучать электронику, много неясного пока. Хочу задействовать кнопки PB2 в...

USB на PB2
Кто-нибудь может привести свой работающий проект с реализацией обмена данными с компьютером по USB?...

Согласно правилам проведения футбольных турниров, за победу команде начисляются три очка, за ничью - одно, за поражение - ноль
Задача: Согласно правилам проведения футбольных турниров, за победу команде начисляются три очка,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru