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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 25613
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349025#p4349025"]Читаю, но там же хрен без поллитры разберёшься!
Вот, нарисовано, что систик делит частоту на 8. А фактически - не делит![/uquote]
Тут дело в том, что он может делить, а может и не делить. Это зависит от значения 2-го (считая от нуля) бита регистра SysTick->CTRL.
Если там 0, то делит, а если 1 , то нет... :)

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

typedef enum
{
  SYSTICK_CLOCK_SOURCE_AHBCLK_DIV8       = ((uint32_t)0x00000000), /*!< systick clock source from core clock div8 */
  SYSTICK_CLOCK_SOURCE_AHBCLK_NODIV      = ((uint32_t)0x00000004)  /*!< systick clock source from core clock */
} systick_clock_source_type;
Ну или:

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

#define SysTick_CLKSource_HCLK_Div8    ((uint32_t)0xFFFFFFFB)
#define SysTick_CLKSource_HCLK         ((uint32_t)0x00000004)
#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \
                                       ((SOURCE) == SysTick_CLKSource_HCLK_Div8))
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349025#p4349025"]Вот, нарисовано, что систик делит частоту на 8. А фактически - не делит![/uquote]
Оно так для всех серий нарисовано, в том числе для твоих любимых F0 :)
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349025#p4349025"]Читаю[/uquote]Или картинки разглядывал? :) Давай вместе именно почитаем. Для начала RM. Пишут, что в SysTick->CTRL источником можно выбрать либо частоту AHB, либо AHB/8.
СпойлерИзображение
st0.png
(86.59 КБ) 80 скачиваний
Идём в STM32 Cortex®-M0+ MCUs programming manual и видим, что битом CLKSOURCE можно выбрать один из этих двух входов.
СпойлерИзображение
st1.png
(47.76 КБ) 87 скачиваний
Удивительно, почему у тебя это раньше не вызывало вопросов, ведь во всех твоих предыдущих контроллерах было так же.

А если бы воспользовался моим советом, то и наглядно на картинке бы всё увидел. И переключаемый делитель SysTick,
СпойлерИзображение
st3.png
(18.47 КБ) 88 скачиваний
и правильные коэффициенты деления,
СпойлерИзображение
st4.png
(45.58 КБ) 84 скачивания
и ограничение на максимальную системную частоту.
СпойлерИзображение
st5.png
(40.92 КБ) 76 скачиваний
Добавлено after 55 seconds:
А если бы пользовался отладчиком, то мог бы прямо на ходу МЫШКОЙ потыкать в бит CLKSOURCE и посмотреть как диод в 8 раз меняет частоту мигания.
СпойлерИзображение
st2.png
(9.33 КБ) 73 скачивания
Последний раз редактировалось VladislavS Пт янв 06, 2023 10:27:50, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25613
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4349050#p4349050"]А если бы пользовался отладчиком, то мог бы....[/uquote]
Это в другой жизни... :))) :))) :)))
Текущая инкарнация Эдуарда Емельянова исключает такое развитие событий полностью и под страхом смерти очередной реинкарнации... :tea:
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18786
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

порекомендуйте комплект минимальной стоимости на сегодня, чтобы пощупать за вымя не самый примитивный ARM (плата c камнем, отладчик, минимальный обвес, IDE, тулчейн), чтобы завелось искаропки без шаманства все перечисленное.
у меня валяется две платки из первых, что ST и NXP бесплатно раздавали (за всякие там видосы и т.п.), но, боюсь, сегодня они устарели сильнее, чем AVR...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Я и пользуюсь отладчиком! Да, с систиком я лоханулся: для других линеек так давно написал базу, что забыл всё...
А про отладчик я писал: почему-то при работе от PLL он отрубается.
Дрочить же мышу я не горазд. В консоли все в миллион раз удобней.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=4349077#p4349077"]порекомендуйте комплект минимальной стоимости на сегодня[/uquote]Если надо "включил и работай", то неплохие платы серии Nucleo. Отладчик, контроллер, светодиод и кнопка на борту. Остаётся только выбрать на каком контроллере вам надо. Из недорогих, наверное, оптимально Nucleo-F072 будет. Всё что надо для изучения там есть, есть USB.

Как вариант, парочка blue pill, но там лотерея. Полно левака, да и контроллер совсем древний. Хотя, при переходе на китайцев оказывается, что там 90% периферии совпадает и школа f103 была очень даже полезна.

А какие платы у вас есть? Может этого достаточно?
Друг Кота
Аватара пользователя
Сообщения: 25613
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349083#p4349083"]почему-то при работе от PLL он отрубается.[/uquote]
При работе от PLL нужно следить за тем, чтобы выполнялись ограничения по частоте для каждой секции синтезатора и В ЛЮБОЙ МОМЕНТ ВРЕМЕНИ.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349083#p4349083"]А про отладчик я писал: почему-то при работе от PLL он отрубается.[/uquote]
Мк на большей частоте генерит больше помех, а отладчик может пытаться коннектится на большей частоте(которую можно ограничить)... Если нормальное питание, разводка и не экономили на конденсаторах, то проблем быть не должно.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18786
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4349102#p4349102"]А какие платы у вас есть? Может этого достаточно?[/uquote]
есть STM32VLDISCOVERY BOARD, если не ошибаюсь, там отладчик на stm32f103c8t6gh20g и сама демоплата на stm32f100rbt6bgh21x

и есть LPCXpresso LPC114, соответственно там LPC-Link на lpc3154fet208 и сама демоплатка с lpc1114f/302

Добавлено after 2 minutes 31 second:
на обеих еще мини-USB установлены, такой шнур нынче еще поискать придется...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Да какая там нормальная разводка? Китайская девборда за 300р на STM32G070RBT6.
А насчёт питания - да, спасибо. Я от st-link запитываю, надо ещё по usb подключить для надёжности.
Ну и таки проверить осциллом. У меня есть подозрение, что внешний кварц того.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

stm32f100, конечно, мамонт. Кое-где, если не задействовать по полной периферию, будет даже медленней AVR-ки. Зато отладчик у вас, считай, уже есть. Пощупать средства разработки сможете. А там и что-нибудь посерьёзней с алика приедет. Мини-USB много на каких отладках стоит, проще "выписать с али" разных кабелей и не заморачиваться.

Добавлено after 2 minutes 16 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349226#p4349226"]У меня есть подозрение, что внешний кварц того.[/uquote]Во-первых, надеюсь, смотришь кварц на MCO не трогая кварц щупом? Во-вторых, PLL можно от HSI/2 для проверки запустить.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18786
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

VladislavS писал(а):Пощупать средства разработки сможете.
так что щупать-то? Cube IDE? я как-то прикипел к Eclipse, но, судя по теме, делать там без "графических" кодогенераторов нечего...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Родился
Аватара пользователя
Сообщения: 6
Зарегистрирован: Сб дек 03, 2016 17:04:32

Сообщение Aleksk »

[uquote="ARV",url="/forum/viewtopic.php?p=4349077#p4349077"]порекомендуйте комплект минимальной стоимости на сегодня, чтобы пощупать за вымя не самый примитивный ARM (плата c камнем, отладчик, минимальный обвес, IDE, тулчейн), чтобы завелось искаропки без шаманства все перечисленное.
у меня валяется две платки из первых, что ST и NXP бесплатно раздавали (за всякие там видосы и т.п.), но, боюсь, сегодня они устарели сильнее, чем AVR...[/uquote]

Зачем вам отладчик на первых шагах? Возьмите Raspberry Pi Pico (Cortex-M0+). Она по нынешним временам дешевле самой простой Nucleo в несколько раз. Имеет жирную память и гонится стабильно до 250 МГц (и до 436МГц с извращениями) . На эту плату наделали разных прикольных прошивок . Саму прошивку можно тупо закинуть на плату ,т.к. она как флешка видится в системе (а так же как виртуальный COM-порт).
Последний раз редактировалось Aleksk Пт янв 06, 2023 17:05:31, всего редактировалось 1 раз.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

VladislavS, за осциллом я еще на работу не сходил. Запустил PLL от HSI - работает.
Кстати, в документации пишут, что флаг PLLSRC - это напрямую от PLL. Я выставил M в 2, N в 8, убрал у систика SysTick_CTRL_CLKSOURCE_Msk. Теперь почему-то мыргает в два раза медленней, чем надо, как будто и правда на вход делителей VCO поступает не HSI16, а его половина!
Да, кстати, убрал строчку

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

FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN | FLASH_ACR_LATENCY_1;
и у меня отладчик и с PLL заработал. ЯХЗ, что за нафиг такой (ведь, наоборот, пишут, что без FLASH_ACR_LATENCY_1 оно не заработает)… К сожалению у меня, как я выше говорил, какого-то хрена часть регистров (в основном, относящихся к ядру ARM) отладчик "не видит" - дичь какая-то, ведь при -g3 он должен всю отладочную информацию вместе с макросами сохранять. (а, дошло: он пишет в отладку лишь те регистры/макросы, которые я в коде использую).
Сейчас буду пробовать от HSE.
Последний раз редактировалось Eddy_Em Пт янв 06, 2023 16:25:34, всего редактировалось 1 раз.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мучитель микросхем
Сообщения: 413
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

Сообщение Sergi »

Можно на vldiscovery заменить F100R на F070R и играться в свое удовольствие. На других сериях проследить разводку питания - поднять ножку,припаять конденсатор.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Все, в отладчике разобрался: там по дефолту стоит флаг ICRST, а я своим присваиванием его убивал. В общем, надо так:

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

FLASH->ACR |= FLASH_ACR_PRFTEN | FLASH_ACR_ICEN | FLASH_ACR_LATENCY_1;
(правда, ICEN уже включен по умолчанию).
Забавно, что в F0 я вообще не трогал этот регистр и все нормально работало и от HSE, и от HSI48.

От HSE оно тоже заработало, косяк был с регистром FLASH->ACR. Вот только сейчас у меня стоит N=8 и M=P=Q=R=1. Однако, мыргает в 2 раза реже, чем надо. Ковыряюсь дальше.

Добавлено after 4 minutes 44 seconds:
Что до девборд, то у китайцев продаются разные переходные "кроватки" с LQFP на DIP. Я себе купил такую на LQFP48 и сделал такую девборду (собственно, на ней баловался недавно с F103C6 и F303CB). Разводку сделал так, чтобы все нужные мне (F103, F0x2 и F303) можно было воткнуть и помучить периферию. На гитхабе у меня более-менее полный код под F0x2 (правда, CAN я туда не запихал), а под F103 стал недавно переделывать из старого и обнаружил, что у меня дома вообще ничего нет полноценно-SPI'йного, чтобы проверить SPI (разве что активировать оба - один мастер, другой слейв - соединить и пиу-пиу).
Думаю, надо на работе попросить мне такие же купить под LQFP64 и LQFP100. А то возникла вот необходимость в туевой хуче аналоговых входов + ЦАП, мелконогие здесь не годятся (да и Vref у них нет).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4349265#p4349265"]Вот только сейчас у меня стоит N=8 и M=P=Q=R=1. Однако, мыргает в 2 раза реже, чем надо.[/uquote]
16 / 2 * 8 / 2 = 32
Более того тут еще и VCO 64MHz получается, а минимально должно быть 96. Хотя работать и с 64 будет.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=4349238#p4349238"]так что щупать-то?[/uquote]Ну не знаю, вы сами спросили
порекомендуйте комплект минимальной стоимости на сегодня, чтобы пощупать за вымя не самый примитивный ARM (плата c камнем, отладчик, минимальный обвес, IDE, тулчейн)
Что уж вы там щупать собрались не знаю. Я считаю, что "пощупать ARM" это в первую очередь подобрать под себя средства разработки, а уж дрыгать ножками дело техники.

[uquote="ARV",url="/forum/viewtopic.php?p=4349238#p4349238"]Cube IDE? я как-то прикипел к Eclipse, но, судя по теме, делать там без "графических" кодогенераторов нечего...[/uquote]С таким настроем лучше и не начинайте.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Reflector, не, в документации вот, что написано:

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

Caution: The software must set these bits so that the VCO output frequency is between 64 and 344 MHz.
Так что, VCO в 64МГц можно.
Кварц у меня 8МГц, поэтому от HSE я только N ставлю в 8. А вот при работе от HSI16, еще и M=2. Правда, сейчас оно у меня и от HSE, и от HSI моргает в 2 раза реже, чем надо. Подозреваю, что таки без осцилла здесь не обойтись.
Я считаю, что "пощупать ARM" это в первую очередь подобрать под себя средства разработки
Я поначалу вообще в geany код писал - и ничего. Потом вот к qt-creator привык. А gdb вообще попробовал лишь с месяц назад (а до этого лет 8 разрабатывал под STM32 безо всяких отладчиков - и как-то ж оно работало ☺).
В принципе, я оценил возможности отладки: как раз, когда знакомишься с новым МК, есть возможность проверить, что там в реальности в регистрах и что ты сам накосячил. Ну и, конечно, в реальном времени поиграться со значениями всяких флагов (как я сейчас с FLASH->ACR). Больше ни на что отладчик не годится. Тот же USB при помощи gdb отладить невозможно: ведь придется тормозить выполнение прошивки. Разве что надобавлять watch'ей и смотреть, что в процессе меняется... А то и как у убогого сеггера - сделать аналог его "отладочного принта", меняя содержимое некоего буфера в памяти и поставив в gdb watch на этот буфер.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Ответить

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