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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

кажись таки нашол https://vk.com/stmicroelectronics?z=pho ... 2039%2Frev :))

DX168B писал(а):К STM32 прилагаются три листа. Это:
1. Datasheet
2. Reference Manual
3. Programming manual


интересуюсь STM32F100C4
даташит нашол легко http://www.st.com/web/en/catalog/mmc/FM ... 5/PF216837
а вот Reference Manual и Programming manual найти немогу
где их на сайте производителя искать то ? :oops:
Tell Me The Truth
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

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

Вот же все ссылки: http://www.st.com/web/en/catalog/mmc/FM141/SC1169
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

Разбираюсь с CorteX-M0.
Не могу понять глюк или я что-то недопонимаю.
STM32F072B-DISO.
При запуске программы отваливается отладчик:
Cannot access target.
Shutting down debug session.

Код:

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

int main( void )
{
   uint16_t i;

   RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_DMAEN;
   GPIOA->MODER = GPIO_MODER_MODER4; // PA4 = analog - <<падает вот здесь>>

   RCC->APB2ENR |= RCC_APB2ENR_DBGMCUEN; // debug clock en
...
...
}

Если сделать так:

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

GPIOA->MODER |= GPIO_MODER_MODER4;

То всё в порядке.
В чём проблема? Ведь я меняю только режим порта, а функцию SWDIO/SWCLK через альтернативный мультиплексор не трогаю(в GPIOA_AFR не обращаюсь).
Выходит что на отладочные интерфейсы влияет также и MODER?
В STM32F100 насколько помню такого не было.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Для работы SWD надо не только ремапить пины порта но и сконфигурировать их соответствующим образом (см. дефолтное состояние PORTA в Reference manual).
И естественно что

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

 GPIOA->MODER = GPIO_MODER_MODER4;

портит эту настройку .
Почему? Вы ответите себе, поняв чем отличается выше-озвученная строка от

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

GPIOA->MODER |= GPIO_MODER_MODER4;

Да и это не проблемы или глюки, это закономерный результат изучения методом тыка ...

И сие точно так же работает и в STM32F100, за исключением того что там нет MODER ...
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

помогите разобратьсяи с базовыми таймерами
Изображение Изображение

а точнее , какую роль исполняют
preload register - регистр предварительной загрузки
и
shadow register - теневой регистр
из выделенного мною абзаца я могу сделать вывод, что при попытке записи значения в auto-reload register оно записывается сразу в регистр предварительной загрузки, далее передается в теневой регистр постоянно или при обнулении счетчика, в зависимости от того как выставлен бит (ARPE) в TIMx_CR1 регистре
правильно лия разумею суть вещей ?
Tell Me The Truth
maksim-starcity
Родился
Сообщения: 9
Зарегистрирован: Вс янв 04, 2015 17:50:37

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

Сообщение maksim-starcity »

Да, все верно. Еще в случае если бит UDIS сбрасывается в 0.

По факту надо запомнить 2 вещи - ARR - это значение, до которого счетчик считает. Оно обновляется, когда счетчик дотикал до предыдущего ARR и сбросился в 0 или софтово по update event generation.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

maksim-starcity писал(а):Да, все верно. Еще в случае если бит UDIS сбрасывается в 0.

ну коли так и мои домыслы верны :)) то когда же значения из shadow register передаются непосредственно в ARR ?
при каких условиях это происходит ?
сего я в мануале не могу найти :dont_know:
Tell Me The Truth
Аватара пользователя
A. Fig Lee
Потрогал лапой паяльник
Сообщения: 306
Зарегистрирован: Сб мар 17, 2012 20:31:44
Откуда: Нью Йорк

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

Сообщение A. Fig Lee »

FreshMan писал(а):
maksim-starcity писал(а):Да, все верно. Еще в случае если бит UDIS сбрасывается в 0.

ну коли так и мои домыслы верны :)) то когда же значения из shadow register передаются непосредственно в ARR ?
при каких условиях это происходит ?
сего я в мануале не могу найти :dont_know:


Там же в выделенном желтым и написано. В 2х случаях. При счетчик оверфлоу или постоянно, в завизимости от UDIS.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

это когда данные передаются от preload register в shadow register
я же спрашиваю когда они из shadow register попадут в ARR ?! :))
Tell Me The Truth
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

A. Fig Lee писал(а):При счетчик оверфлоу или постоянно, в завизимости от UDIS.

????????? :facepalm:
Где почитать???

FreshMan писал(а):я же спрашиваю когда они из shadow register попадут в ARR ?! :))

Зависит от тактирования...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

а по конкретней можна ?
Tell Me The Truth
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

Основные моменты вам осветили на казусе... А пересказывать весь референс желания нет...
Зависимость от тактирования прозвучала в теме частотомера... пусть и частично...
Запускайте железо и разбирайтесь... иначе - "ни о чём"...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
A. Fig Lee
Потрогал лапой паяльник
Сообщения: 306
Зарегистрирован: Сб мар 17, 2012 20:31:44
Откуда: Нью Йорк

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

Сообщение A. Fig Lee »

FreshMan писал(а):а по конкретней можна ?


Что "конкретней"?
Вот же в желтом написано английским языком написано:
Изображение

The auto-reload register is preloaded. Writing to or reading from the auto-reload register
accesses the preload register. The content of the preload register are transferred into the
shadow register permanently or at each update event
(UEV), depending on the auto-reload
preload enable bit (ARPE) in TIMx_CR1 register. The update event is sent when the counter
reaches the overflow
(or underflow when downcounting) and if the UDIS bit equals 0 in the
TIMx_CR1 register. It can also be generated by software. The generation of the update
event is described in detail for each configuration.


передается на каждый апдейт евент

апдейт евент генерится когда счетчик переполнится
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

давайте тогда зайдем с другой стороны
auto-reload register и shadow register это две разные ""сущности" ?
Tell Me The Truth
Аватара пользователя
A. Fig Lee
Потрогал лапой паяльник
Сообщения: 306
Зарегистрирован: Сб мар 17, 2012 20:31:44
Откуда: Нью Йорк

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

Сообщение A. Fig Lee »

FreshMan писал(а):давайте тогда зайдем с другой стороны
auto-reload register и shadow register это две разные ""сущности" ?


Что такое "две разные сущности"? Физически имплемнтировано как два регистра.
Служит для одной цели.
Galizin
Мучитель микросхем
Сообщения: 477
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

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

Сообщение Galizin »

FreshMan писал(а):я же спрашиваю когда они из shadow register попадут в ARR ?! :))

Вопрос поставлен неверно. Ответить невозможно.
prleloaded - это причастие. pre - предварительно. loaded - загружаемый. регистр с предварит загрузкой. то есть то что будет использоваться может быть предварительно загружено. Предварительно означает заранее, заблаговременно, а использоваться потом. Использоваться - это собственно функциональность регистра. Далее по тексту расписано каким образом это реализовано - разбиением регистра на 2 части теневую и загружаемую.
Теневой означает что он в тени, его нельзя увидеть непосредственно. В данном случае к нему нет прямого доступа. Загружаемая часть служит для загрузки в теневую часть. Ну и далее описаны условия загрузки. Функциональность регистра осуществляет теневая часть.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

auto-reload register и shadow register это две разные ""сущности" ?

В общем - ДА!!! shadow register есть у PSC, ARR, CNT, RCR и CCRx... у каждого свой... как и прелоад...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

понял свою ошибку :))
я не совсем верно переводил и как следствие трактовал этот кусок текста
http://img.radiokot.ru/files/27935/jf39ed5nm.png
для меня это стало нечто сродни как для иностранца перевести фразу "есть кушать ?" :))
окончательную ясность внесли вот эти две веселые картинки
Изображение
Tell Me The Truth
Аватара пользователя
optima
Прорезались зубы
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

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

Сообщение optima »

Леонид Иванович писал(а):Странно. Все время прошиваю из IAR посредством ST-LINK utility. Настройки такие:

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

   Tools -> Configure Tools...
   Menu Text: ST-Link programmer
   Command: C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe
   Argument: -c SWD -ME -P $PROJ_FNAME$.hex -Rst -Run
   Initial Derectory: $EXE_DIR$
   Tool Available: Always

   Tools -> Options -> Key Bindings -> Tools -> ST-Link programmer F8

Леонид Иванович Никак не могу то же самое проделать с WIN8_64 почему то выходит окно не верно задано имя папки!
Какой папки, не понятно! путь вроде верный. Хотя в ХР все работает чудесно!
Изображение
Аватара пользователя
optima
Прорезались зубы
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

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

Сообщение optima »

Все разобрался! все дело в администрировании, необходимо поставить галку запускать IAR от имени администратора!
так же удалил строчку Initial Derectory: $EXE_DIR$
и изменил строчку Argument:
-c SWD -ME -P $PROJ_FNAME$.hex -Rst -Run
на
-c SWD -ME -P $PROJ_DIR$\Debug\Exe\$PROJ_FNAME$.hex -Rst -Run
Ответить

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