STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

Да, правда, F100C4T6B косит под 32-килобайтный камень.
http://s15.postimg.cc/ggpdnrc5n/c4t6b_32kb.png
Это я смотрел платку с МК, купленным в elitan.ru года полтора назад.
На следующей неделе приедут еще платки и я посмотрю что покажут свеженькие камушки с Компела.

ЗЫ. А вот RBT6 говорит ровно 128КБ.
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

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

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

Проверил через USART bootloader, тоже самое говорит: Low density 32kB.
Залил "левую" прошивку 23КБ(больше просто не было), верификация данных проходит успешно.
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Добрый день, надо ли в keil5 указывать пути к хэдерам, у меня работает и без указания путей хотелось разобраться почему?
Подскажите как называется флаг который отвечает за глобальное разрешение прерываний?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: STM32 новичку в ARM что к чему

Сообщение amv2000 »

baghear писал(а):Добрый день, надо ли в keil5 указывать пути к хэдерам
Ветка про keil5 здесь http://radiokot.ru/forum/viewtopic.php? ... 5&start=60
baghear писал(а):Подскажите как называется флаг который отвечает за глобальное разрешение прерываний?
Здесь можно почитать про прерывания http://eugenemcu.ru/publ/13-1-0-76[quote]__disable_irq sets the I bit in the CPSR and returns the previous I bit value.[/quote]Примерно: устанавливает бит I в CPSR и возвращает предыдущее значение бита I .
http://www.keil.com/support/man/docs/ar ... AFBCBB.htm
Реклама
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Где находится СPSR?
нашел xPSR
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

Туда отображается 3 регистра в зависимости от режима работы:
PM0056 The Cortex-M3 processor

Program status register

The Program Status Register (PSR) combines:
● Application Program Status Register (APSR)
● Interrupt Program Status Register (IPSR)
● Execution Program Status Register (EPSR)
These registers are mutually exclusive bitfields in the 32-bit PSR. The bit assignments are
as shown in Figure 3 and Figure 4.
Сам CPSR насколько помню был в более старых версиях - ARM7, ARM9.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Это одно и то же. Почитайте Сortex-M(0,3,4) Devices Generic User Guide.
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Понял, в ISR указывается номер прерывания которое сейчас выполняется + 16
http://screenshot.su/show.php?img=1f715 ... 5ae578.jpg
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение alex38779 »

Что то не получается с прерыванием у меня( Помогите пожалуйста.

stm32f100. Нажимаем кнопку на РА0 тухнет светодиод.

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

void init_button()
{
	RCC->APB2ENR |= RCC_APB2Periph_GPIOA;
        GPIOA->CRL |= 0x04;
        GPIOA->CRL &= ~0xb;
	AFIO->EXTICR [1] = AFIO_EXTICR1_EXTI0_PA;
	EXTI->FTSR |= EXTI_FTSR_TR0;
	EXTI->IMR |= EXTI_IMR_MR0;
	NVIC_EnableIRQ (EXTI0_IRQn);
}

void EXTI0_IRQHandler(void)
{
		EXTI->PR |= EXTI_PR_PR1;
		GPIOC->BRR = GPIO_BRR_BR8;
}
Нашел ошибку. собственная невнимательность.. :(
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

написали бы в чем ошибка для потомков.
Не увидел разрешение тактирование AFIO
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение alex38779 »

oleg110592 писал(а):написали бы в чем ошибка для потомков.
Код без ошибок..

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

void init_button()
{
	RCC->APB2ENR |= RCC_APB2Periph_GPIOA;
        GPIOA->CRL |= 0x04;
        GPIOA->CRL &= ~0xb;
	AFIO->EXTICR [1] = AFIO_EXTICR1_EXTI0_PA;
	EXTI->FTSR |= EXTI_FTSR_TR0;
	EXTI->IMR |= EXTI_IMR_MR0;
	NVIC_EnableIRQ (EXTI0_IRQn);
}

void EXTI0_IRQHandler(void)
{
	 if (EXTI->PR & (1<<0))
	 {
		 GPIOC->BRR = GPIO_BRR_BR8;
		 EXTI->PR |= EXTI_PR_PR1;
	 }
}
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: STM32 новичку в ARM что к чему

Сообщение SII »

uk8amk писал(а):Сам CPSR насколько помню был в более старых версиях - ARM7, ARM9.
Вообще-то ARM7, 9, Cortex-M3 и т.д. -- это не версии архитектуры, а обозначения конкретных ядер, её реализующих. Одной версии архитектуры может соответствовать несколько ядер; например, все 32-разрядные ядра Cortex-A (5, 8, 9, 15) -- это одна и та же архитектура ARMv7-A.

По поводу CPSR. Этот регистр действительно существует во всех версиях архитектуры, но его формат совпадает лишь в части, доступной прикладным программам (работающим в режиме потока для ARMv6-M/ARMv7-M, т.е. на ядрах серии Cortex-M, и в режиме пользователя для "настоящих" ARMов -- все версии до ARMv7, не считая ARMv6-M, а также версии ARMv7-A и ARMv7-R). ARM даже специально ввела обозначение APSR для той части CPSR, которая доступна прикладному коду (A -- это Application). В общем, если прямо манипулируете регистром состояния, надо помнить про его разделение на пользовательскую/системную части и про разный формат последней на разных версиях архитектуры.
Туда отображается 3 регистра в зависимости от режима работы
Вот тут Вы поняли документацию неправильно. Никаких отдельных регистров xPSR, перечисленных в том отрывке, не существует -- это всё части одного и того же CPSR. По этой причине никакого отображения не требуется, просто доступ обеспечивается лишь к той или иной части CPSR.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

На следующей неделе приедут еще платки и я посмотрю что покажут свеженькие камушки с Компела.
Запаял, приверил, говорит 16КБ флеш память.
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение alex38779 »

Вопрос по АЦП. Контроллер stm32f100rb.

В рефмане написано что опорное напряжение от 2,4 до 3,6 вольт. То есть получается что АЦП может измерить напряжение от 0 до 3,6В?
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Леонид Иванович »

Да. Только у 64-выводного корпуса нет входа REF, в качестве опорного напряжения служит напряжение питания VDDA.
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение alex38779 »

Леонид Иванович писал(а): в качестве опорного напряжения служит напряжение питания VDDA.
Спасибо большое разобрался! Сделал вольтметр. Теперь буду о точности думать. Например брать среднее из 30 измерений и выводить его.

Показания с вольтметром в сотых долях расходятся..
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Леонид Иванович »

Перед применением АЦП желательно ознакомиться с этими документами:
How to get the best ADC accuracy in STM32Fx Series
Optimize Your SAR ADC Design
Аватара пользователя
alex38779
Потрогал лапой паяльник
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение alex38779 »

Разбираюсь с регулярными каналами...

Хочу использовать канал на РА7.
Но что не хочет работать.

Считываю так uint32_t adc = ADC1->DR;

Настройка АЦП:

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

RCC->APB2ENR |= RCC_APB2Periph_GPIOA;
	RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
	RCC->APB2ENR |= RCC_APB2Periph_ADC1;
	ADC1->CR2 |= ADC_CR2_CAL;
	while (!(ADC1->CR2 & ADC_CR2_CAL));
	ADC1->SMPR2 |= (ADC_SMPR2_SMP7_2 | ADC_SMPR2_SMP7_1 | ADC_SMPR2_SMP7_0);
	ADC1->CR2 |= ADC_CR2_SWSTART;
	ADC1->CR2 |= ADC_CR2_EXTTRIG;
	ADC1->CR2 |= ADC_CR2_EXTSEL;
	ADC1->CR2 |= ADC_CR2_CONT;
	ADC1->SQR2 |= ADC_SQR2_SQ7;
	ADC1->CR2 |= ADC_CR2_ADON;
	while(!(ADC1->SR & ADC_SR_EOC));
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение slavokhire5 »

Привет всем котам :) решил попробовать написать свой bootloader на stm32 c шифрованием прошивки. В алгоритмах шифрования я не силен :( Какой посоветуете?
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Ответить

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