STM32F100C4T6B порты и remap в IAR

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
sx386
Потрогал лапой паяльник
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

STM32F100C4T6B порты и remap в IAR

Сообщение sx386 »

Подскажите, как можно сделать ремап портов в порты ввода-вывода в IAR:
PA15 (38)
PB3 (39)
PB4 (40)
PB2 (20) - BOOT1
PC13 (2)

И будет ли программироваться по SWD после перепрограммирования этих портов ?
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
Реклама
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: STM32F100C4T6B порты и remap в IAR

Сообщение coredumped »

Эти порты и так по умолчию GPIO и ничего ремапить не нужно. Для работы SWD нужны 2 вывода - PA13(SWDIO) и PA14(SWCLK). Даже если их ремапнуть в GPIO, можно "законнектиться" программатором в режиме "UNDER RESET". Reset, есс-но, должен быть подключен к программатору. В STM32F100 Вы ничего не сможете сделать такого программно, чтоб получить кирпич.
Все будет только лучше, в крайнем случае - хуже.
Реклама
Аватара пользователя
sx386
Потрогал лапой паяльник
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

Re: STM32F100C4T6B порты и remap в IAR

Сообщение 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; 
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: STM32F100C4T6B порты и remap в IAR

Сообщение ChipKiller »

sx386 писал(а):Эти порты по умолчанию не работают.
Другие без проблем, а эти не хотят.
...sx386 научитесь правильно задавать вопросы.
PS. "порты не работают", потому что их использует JTAG - отключите его и пользуйтесь
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
sx386
Потрогал лапой паяльник
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

Re: STM32F100C4T6B порты и remap в IAR

Сообщение sx386 »

А как его отключить ?
Что нужно отключить для остальных портов ?
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32F100C4T6B порты и remap в IAR

Сообщение uk8amk »

AFIO->MAPR
Вложения
JTAG_AFIO.PNG
(38.08 КБ) 963 скачивания
Реклама
Аватара пользователя
sx386
Потрогал лапой паяльник
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

Re: STM32F100C4T6B порты и remap в IAR

Сообщение 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; 	
Так ? Что-то не работает.
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
Galizin
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: STM32F100C4T6B порты и remap в IAR

Сообщение Galizin »

RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;

???
Аватара пользователя
sx386
Потрогал лапой паяльник
Сообщения: 394
Зарегистрирован: Сб апр 28, 2012 16:04:14

Re: STM32F100C4T6B порты и remap в IAR

Сообщение sx386 »

Спасибо. Заработало.
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.
alair
Родился
Сообщения: 17
Зарегистрирован: Пт авг 19, 2016 10:56:59

Re: STM32F100C4T6B порты и remap в IAR

Сообщение 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;
т.е. цифровой выход с альтернативной функцией и открытым стоком.
Ответить

Вернуться в «ARM»