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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

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

Сообщение Satyr »

очень редко кто этот резюк где ставит, на самом деле.
на демо и отладочных платах вобще ни разу не припомню.
да и сам никогда не ставлю :)))
Реклама
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

ST рекомендуют ставить. А я один раз так поставил, что кварц не завелся. :)))
Правда, не помню, в чем пропара была.
Сейчас, в принципе, изначально готовлю посадочное место, но втыкаю туда перемычку. А на отладках..на дискавери стоят, по крайней мере.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
The_D
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт июл 06, 2012 14:28:17
Откуда: Россия. г.Смоленск

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

Сообщение The_D »

Много на чем можно сэкономить, на 4-х конденсаторах по углам например. Но зачем если для себя.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

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

Сообщение Satyr »

http://www.st.com/internet/com/TECHNICA ... 221665.pdf

"The role of this resistor is to limit the drive level of the crystal. With CL2, it forms a low-pass
filter that forces the oscillator to start at the fundamental frequency and not at overtones
(prevents the oscillator from vibrating at 3, 5, 7 etc. times the fundamental frequency). If the
power dissipated in the crystal is higher than the value specified by the crystal manufacturer,
the external resistor RExt becomes mandatory to avoid overdriving the crystal. If the power
dissipated in the selected quartz is less than the drive level specified by the crystal manufacturer,
the insertion of RExt is not recommended and its value is then 0 Ω..."

Так что про экономии не надо горячиться :)))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

Короче говоря, деревенский экспериментальный метод: считаем номинал, ставим резистор; не запустилось - ставим перемычку и проехали. =)
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

Доброго всем времени суток! Пытаюсь осваивать STM32L и помигать светодиодом. Пользуюсь видеошпаргалкой http://bsvi.ru/stm32-nastraivaem-iar-i- ... etodiodom/ . При компилировании выскакивают ошибки.
Err1.png
(148.74 КБ) 462 скачивания
Подскажите, пожалуйста, что я не так сделал?
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

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

Сообщение Satyr »

ELcat писал(а):
Err1.png
Подскажите, пожалуйста, что я не так сделал?

Это зависит от того, что наинклюдено в том единственном инклюде в мейне :)))
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

ELcat писал(а):Подскажите, пожалуйста, что я не так сделал?

Суть в том, что ты взял кусок кода проекта для STM32Fxx.

У STM32L1xx малость другие имена регистров, битов и т.д. Например, включение тактирования порта C будет иметь вид:

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

RCC->AHBENR |= RCC_AHBENR_GPIOCEN;

Потому что тактирование портов ввода-вывода висит на шине AHB.
Или, вот например GPIOB (как и прочие порты у STM32L1xx) не имеют полей CRL и CRH, как было у STM32F1xx. Кстати, на скриншоте ошибка: там должно быть не CRH, а CRL - т.к. работаем с 7 пином порта. Также нет у нас битов CNF и MODE.
На скриншоте пин 7 порта B настраивается как GP вывод с частотой 50 МГц. В случае с STM32L1xx же нужно для того же проделать следующее:

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

  GPIOB->MODER |= GPIO_MODER_MODER7_0;                             //GP
  GPIOB->OTYPER &= ~GPIO_OTYPER_OT_7;                                //GP+PP
  GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7;                    //max speed (40 MHz (50 MHz if line capacity = 30pF))

В общем, нужно вооружаться документацией (datasheet + reference manual) и вдумчиво работать..
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

Спасибо тебе, SubDia! Я не знал, что между F и L будут столь существенные различия, потому делал всё по аналогии, как это показано на видео. Я вообще пока ещё не знаком ни с архитектурой, ни тем более с принципами построения команд. Я лишь делаю "нелепые попытки" первых шагов. После CodeVision AVR среда IAR EWARM кажется "китайской грамотой". Спасибо тебе! Это очень важно почувствовать чью-то поддержку, тем более, что ты меня уже не первый раз выручаешь! :beer:
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

Не за что, обращайся. =)
Будут камни (а они будут) - пиши. Первый проект со светиками обкатаешь, там дальше проще гораздо будет.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

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

Сообщение ChipKiller »

ELcat писал(а):Я лишь делаю "нелепые попытки" первых шагов.
... ELcat не прибедняйся - помню твои творения на at91sam7 :) .
ELcat писал(а):Я не знал, что между F и L будут столь существенные различия
... они так же есть и между F1 и F2,F4 - у первых в GPIO полно регистров, а у вторых еще больше. Это конечно не AVR в настройке, но зато и возможности другие ....
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

ChipKiller писал(а):ELcat не прибедняйся - помню твои творения на at91sam7 :) .

Ну если ты это помнишь :) то наверное видел, что после мигания светодиодом так всё и затихло. Я тогда это дело забросил по той же самой причине - не разобрался как и из чего команды формировать. Плату отдал нашей программистке, она там что-то пыталась с LS020 замутить, да потом тоже забросила. :) В общем было дело... Хороший был "старт" да не совсем неудачный "финиш". :dont_know:
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

Лучше объясните мне, пожалуйста, как формировать команды, где их можно подсмотреть и как в этом всём разобраться.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

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

Сообщение ChipKiller »

В любом случае труды даром не пропали :) . Гдето год назад выкладывал здесь простенькую печатку под STM32F100 - Discovery тогда купить не смог. Для того чтобы разобраться вполне хватило. К тому же ИМХО STM32 значительно удобнее, чем at91sam7.
Лучше объясните мне, пожалуйста, как формировать команды
... о каких командах речь?

PS. .. на всякий случай выложу простую "мигалку". Проект под Keil (C+asm) stm32f100
Вложения
led_mix.rar
(126.21 КБ) 206 скачиваний
Последний раз редактировалось ChipKiller Пн окт 08, 2012 11:28:52, всего редактировалось 1 раз.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

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

Сообщение Satyr »

ELcat писал(а):Лучше объясните мне, пожалуйста, как формировать команды, где их можно подсмотреть и как в этом всём разобраться.

http://infocenter.arm.com/help/index.js ... 10015.html
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

ELcat писал(а):как формировать команды, где их можно подсмотреть и как в этом всём разобраться.

Команды на асме, на Си - самые что ни на есть обычные операции.
Есть у нас имена регистров, битов, объявлены структуры, все это задефайнено в хидере stm32xxxx (в основном), и с этими данными мы работаем с помощью самых что ни на есть сишных операций. Ничего сверхэдакого.
Попробуй по частям разобрать любую строку инициализации, сам все поймешь.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

SubDia писал(а):Команды на Си - самые что ни на есть обычные операции.
Есть у нас имена регистров, битов, объявлены структуры, все это задефайнено в хидере stm32xxxx (в основном), и с этими данными мы работаем с помощью самых что ни на есть сишных операций. Ничего сверхэдакого.
Попробуй по частям разобрать любую строку инициализации, сам все поймешь.
Мне Асм не нужен - пока хотя бы с Си разобраться. В CVAVR я самоучка - что-то в книжках вычитал, что-то на форумах подсказали. Си для меня не родной язык и потому очень многое мне не понятно. Например строка:
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7;
Что означает "GPIOB"?
Что означает "->" ?
Что означает "OSPEEDR"?
Что означает "GPIO_OSPEEDER_OSPEEDR7"?
Со структурами в Си ещё никогда не работал :(
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Что означает ...

В какой IDE работаете? Стандартное поведение это Ctrl + щелчок мышью на идентификаторе, и вас должно перебросить на его объявление.
В итоге всё это сводится к численным константам, которые заданы в заголовочных файлах. Так же, как и в CVAVR, где "PORTD" (или как он там назывался?) - тупо константа. Так что ничего сверхъестественного...

Кстати, анализ исходников библиотек + даташит очень хорошо помогает, не то, что статьи в стиле "делай так, и будет тебе щщаастье!"
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

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

Сообщение ELcat »

ploop писал(а):В какой IDE работаете?
IAR EWARM 6.40.4
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

ELcat писал(а):Например строка:
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7;
Что означает "GPIOB"?
Что означает "->" ?
Что означает "OSPEEDR"?
Что означает "GPIO_OSPEEDER_OSPEEDR7"?

GPIOB - указатель на структуру. Обращаемся к элементу структуры "OSPEEDR" (то есть регистру портов ввода-вывода, который с точки зрения языка является никаким не регистром, а элементом структуры GPIO_TypeDef - см. хидер STM32L1xx.h)
Так как имеем дело с указателем на переменную (а не с переменной), то используем операцию "->"
Собственно, "|=" - операция побитового ИЛИ с присваиванием.
Вообще, внимательно изучи хидер с расписанными регистрами и битами регистров МК. И, как посоветовал ploop, исходники библиотек. Там как раз ковырялочки в регистрах происходят, все очень наглядно.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Ответить

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