Переключение портов SWDIO

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Бубоник
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс авг 16, 2015 13:08:53

Переключение портов SWDIO

Сообщение Бубоник »

Всем доброго времени суток. Столкнулся с такой проблемой. Как мне переключить пины swdio на ввод вывод. Почитал документацию про пины PA13 PA14 их надо программно перевести на альтернативную функцию, пытался, но МК никак не хочет их включать (видать криво пытался). Пишу код под "micro C pro"
P.S. Любителей писать под "micro C pro" в инете не так уж и много.... :(
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Переключение портов SWDIO

Сообщение Мурик »

Бубоник писал(а):пытался, но МК никак не хочет их включать
Без кода сложно сказать в чем дело.
Бубоник писал(а):Пишу код под "micro C pro"
Я бы еще понял если бы писали в mikroPaskal или mikroBasic, но какой смысл писать в mikroC? Есть много других компиляторов Си для STM32.
Реклама
Бубоник
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс авг 16, 2015 13:08:53

Re: Переключение портов SWDIO

Сообщение Бубоник »

Вот код.

Код: Выделить всё

sbit _50hz at GPIOA_ODR.B12;
sbit triac at GPIOA_ODR.B13;
//IVT_INT_TIM1_BRK_UP_TRG_COM

void Timer_16() iv IVT_INT_TIM1_TRG_COM_TIM17 ics ICS_AUTO
{ UIF_TIM17_SR_bit=0;
triac=!triac;
}


void Timer_17() iv IVT_INT_TIM1_UP_TIM16 ics ICS_AUTO
{ UIF_TIM16_SR_bit=0;
//triac=!triac;
}

/// RCC_HSEConfig(RCC_HSE_ON); // Enable HSE
void main() {
// GPIO_Alternate_Function_Enable(&_GPIO_MODULE_SWJ_JTAGDISABLE);
 //GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, 1); // Disable JTAG/SWD so pins are availble
GPIO_Digital_output(&GPIOA_BASE, _GPIO_PINMASK_12);//âûõîä íà øàãîâèê
GPIO_Digital_output(&GPIOA_BASE, _GPIO_PINMASK_13);//âûõîä íà øàãîâèê
GPIO_Config(&GPIOA_BASE, _GPIO_PINMASK_13,
            _GPIO_CFG_MODE_OUTPUT | _GPIO_CFG_DIGITAL_OUTPUT);





RCC_APB2ENR.TIM17EN = 1; //
TIM17_CR1.CEN = 0; //
//UIF_TIM14_SR_bit=0;
TIM17_PSC = 1000; // Prescale 16_bit
TIM17_ARR = 8000; // Reload 16_bit
NVIC_IntEnable(IVT_INT_TIM1_TRG_COM_TIM17); // Enable Interupt
TIM17_DIER.UIE = 1; //
TIM17_CR1.CEN = 1; //


RCC_APB2ENR.TIM16EN = 1; //
TIM16_CR1.CEN = 0; //
//UIF_TIM14_SR_bit=0;
TIM16_PSC = 1000; // Prescale 16_bit
TIM16_ARR = 8000; // Reload 16_bit
NVIC_IntEnable(IVT_INT_TIM1_UP_TIM16); // Enable Interupt
TIM16_DIER.UIE = 1; //
TIM16_CR1.CEN = 1; //
triac=1;
_50hz=0;
 while(1)
 {

 delay_ms(100);
 }
}
А то что у меня пала рука на этот компилятор просто из-за того, что под подобным компилятором я пишу прошивки под PIC. Просто уже привык к нему, да и проблем как бы с ним не было.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Переключение портов SWDIO

Сообщение Мурик »

Бубоник писал(а):А то что у меня пала рука на этот компилятор просто из-за того, что под подобным компилятором я пишу прошивки под PIC.
Продукция микроэлектроники получилась неудачной для ARM. Библиотеки неудобные в использовании.
Лучше возьмите бесплатную IDE с компилятором GCC.
Реклама
Эиком - электронные компоненты и радиодетали
Galizin
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: Переключение портов SWDIO

Сообщение Galizin »

Попробуйте явно перевести в output mode
GPIO port mode register (GPIOx_MODER) (x = A..F)
00: Input mode (reset state)
01: General purpose output mode
10: Alternate function mode
11: Analog mode

То есть в режим 01.
Типа того
GPIOA->MODER &= ~(GPIO_MODER_MODER14|GPIO_MODER_MODER13);
GPIOA->MODER |= (GPIO_MODER_MODER14_1|GPIO_MODER_MODER13_1);

Это если нужно на вывод. На ввод второй строки не надо.
ps это для stm32f030. Для f1xx все иначе.

http://radiokot.ru/forum/viewtopic.php?f=59&t=132299 - аналогичная тема .
Реклама
pixar
Потрогал лапой паяльник
Сообщения: 314
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Re: Переключение портов SWDIO

Сообщение pixar »

Учтите , что в отладку потом можно зайти только из хард ресет , в коиде и кейле есть выбор в отладчике .
Нужно иметь вывод сброса на плате.
Реклама
Бубоник
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс авг 16, 2015 13:08:53

Re: Переключение портов SWDIO

Сообщение Бубоник »

Учтите , что в отладку потом можно зайти только из хард ресет
Про это я читал. Что некоторые потом зашить не могли или еще какая нибудь петрушка. В общем пока у меня горит на счет этого. Придется помаленьку переходить другие IDE имхо тяжело найти что-то полезное под microc. Все таки хочется полностью управлять МК чтоб в дальнейшем проблем меньше с ним было.
pixar
Потрогал лапой паяльник
Сообщения: 314
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Re: Переключение портов SWDIO

Сообщение pixar »

лучше всего оставить SWD в покое.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Переключение портов SWDIO

Сообщение dosikus »

А что так?
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Переключение портов SWDIO

Сообщение scorpi_0n »

pixar писал(а):лучше всего оставить SWD в покое.
Пины SWD как правило пустые по альтернативе. Повесить на них что-то второстепенное, сегменты дисплея например, а после отладки перевести пины в режим вывода. Для малоногих МК вполне себе вариант.
pixar
Потрогал лапой паяльник
Сообщения: 314
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Re: Переключение портов SWDIO

Сообщение pixar »

dosikus писал(а):А что так?
если серия и каждую копейку считать, то смысл есть.
если проект хобби , всегда лучше иметь ноги про запас.
я на tssop20 задействовал как то всё вплоть до swdio , потом огребал ништяков .
больше стараюсь не повторять.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Переключение портов SWDIO

Сообщение dosikus »

pixar у меня в одном задействованы все пины , никаких "ништяков" не замечено. Все работает как и ожидалось...
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Переключение портов SWDIO

Сообщение scorpi_0n »

pixar писал(а): я на tssop20 задействовал как то всё вплоть до swdio , потом огребал ништяков .
больше стараюсь не повторять.
Ну и кто ж так делает? Разрабатывается и отлаживается на типа 051. И ног поболее и ресурса флэша. А в 030-й или в tssop20 запихивается когда уже всё готово.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Переключение портов SWDIO

Сообщение dosikus »

На пинах SWD у меня были выходы . При отладке их не задействовал, отлаживал все остальное. Затем задействовал и пины с SWD ...
Ответить

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