Страница 1 из 1
STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 15:17:09
sx386
Подскажите, как можно сделать ремап портов в порты ввода-вывода в IAR:
PA15 (38)
PB3 (39)
PB4 (40)
PB2 (20) - BOOT1
PC13 (2)
И будет ли программироваться по SWD после перепрограммирования этих портов ?
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 16:23:42
coredumped
Эти порты и так по умолчию GPIO и ничего ремапить не нужно. Для работы SWD нужны 2 вывода - PA13(SWDIO) и PA14(SWCLK). Даже если их ремапнуть в GPIO, можно "законнектиться" программатором в режиме "UNDER RESET". Reset, есс-но, должен быть подключен к программатору. В STM32F100 Вы ничего не сможете сделать такого программно, чтоб получить кирпич.
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 17:22:32
sx386
Эти порты по умолчанию не работают.
Другие без проблем, а эти не хотят.
В интернете написано что нужно сделать ремап, но как не могу найти.
Инициализация
Код: Выделить всё
// --- PA15 --------------------
GPIOA->CRH &= ~GPIO_CRH_CNF15;
GPIOA->CRH |= GPIO_CRH_MODE15_1;
// --- PB3 --------------------
GPIOB->CRL &= ~GPIO_CRL_CNF3;
GPIOB->CRL |= GPIO_CRL_MODE3_1;
// --- PB4 --------------------
GPIOB->CRL &= ~GPIO_CRL_CNF3;
GPIOB->CRL |= GPIO_CRL_MODE3_1;
// --- PB2 --------------------
GPIOB->CRL &= ~GPIO_CRL_CNF2;
GPIOB->CRL |= GPIO_CRL_MODE2_1;
// --- PC13 --------------------
GPIOC->CRH &= ~GPIO_CRH_CNF13;
GPIOC->CRH |= GPIO_CRH_MODE13_1;
Использование
Код: Выделить всё
delay ();
GPIOA->BSRR|=GPIO_BSRR_BR15;
GPIOB->BSRR|=GPIO_BSRR_BR2;
GPIOB->BSRR|=GPIO_BSRR_BR3;
GPIOB->BSRR|=GPIO_BSRR_BR4;
GPIOC->BSRR|=GPIO_BSRR_BR13;
delay ();
GPIOA->BSRR|=GPIO_BSRR_BS15;
GPIOA->BSRR|=GPIO_BSRR_BS2;
GPIOA->BSRR|=GPIO_BSRR_BS3;
GPIOA->BSRR|=GPIO_BSRR_BS4;
GPIOA->BSRR|=GPIO_BSRR_BS13;
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 17:31:28
ChipKiller
sx386 писал(а):Эти порты по умолчанию не работают.
Другие без проблем, а эти не хотят.
...
sx386 научитесь правильно задавать вопросы.
PS. "порты не работают", потому что их использует JTAG - отключите его и пользуйтесь
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 19:56:14
sx386
А как его отключить ?
Что нужно отключить для остальных портов ?
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вс апр 21, 2013 20:18:36
uk8amk
AFIO->MAPR
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Пн июн 03, 2013 22:40:21
sx386
Код: Выделить всё
// отключить JTAG и оставить SWD
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
// --- PB3 --------------------
GPIOB->CRL &= ~GPIO_CRL_CNF3;
GPIOB->CRL |= GPIO_CRL_MODE3_1;
// --- PA15 -------------------
GPIOA->CRH &= ~GPIO_CRH_CNF15;
GPIOA->CRH |= GPIO_CRH_MODE15_1;
Так ? Что-то не работает.
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Вт июн 04, 2013 16:34:52
Galizin
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
???
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Сб июн 08, 2013 12:48:32
sx386
Спасибо. Заработало.
Re: STM32F100C4T6B порты и remap в IAR
Добавлено: Пт авг 19, 2016 11:20:00
alair
Расскажу свой случай:
Проц stm32f100. Развёл PA15 на вход, РВ3, РВ4 - выходы. Конечно, понятия не имел про JTAG ремапинг.
РА15 работал, РВ3 и РВ4 - нет. Временно развёл на другие порты. Потом надо было запускать в серию, а с перемычками не айс.
Стал копать, в т.ч. здесь. Нашёл. Выполнил:
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE ;
И... оба-на: РВ3 и РВ4 - заработали. Но РА15 перестал работать.

Далее 2 дня мучений и поисков и разных экспериментов, тыков итд.
И нашёл вот что в одной из строк инициализации портов:
GPIOA->CRH|= (GPIO_CRH_CNF8_1 | GPIO_CRH_CNF11_1 | GPIO_CRH_CNF12_1 |
GPIO_CRH_CNF15);
То ли это опечатка, то ли когда писал это - пользовался методом тыка, но должно быть GPIO_CRH_CNF15_1.
Исправил и всё заработало. Отсюда следует:
1. писать нужно внимательно и обязательно понимать - что означает каждая запись, даже если код вытянут из инета.
2. РА15 работает без JTAG ремапинга, если в инициализации потов написать GPIOA->CRH |= GPIO_CRH_CNF15;
т.е. цифровой выход с альтернативной функцией и открытым стоком.