Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср май 08, 2019 07:19:13

Тревожный звоночек.

Раз
Вы лучше аппаратуру, OS, драйверы изучайте и пишите хорошо. Книжки почитайте.


Два
Для начала, лишает автора премии.


Три
Больше на 2 строки, но понятно и никто волнистой линией ничего не подчеркивает :)


Четыре
например отсутствием неочевидных конструкций а-ля "я у мамы кулхацкер" :dont_know:

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

Ср май 08, 2019 17:51:05

А по сути ничего, как обычно.

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

Вт май 14, 2019 01:29:28

Компактный код для организации микросекундных задержек по таймеру на STM32F0:

Код:
__STATIC_INLINE void udelay(uint32_t micros) {
  TIM14->SR = TIM14->CNT = 0;
  TIM14->ARR = micros * 8 - 1;
  while (TIM14->CR1 = TIM14->SR + 1 & TIM_SR_UIF) { ; }
}


Можно даже без оформления в процедуру или макрос вставлять в текст программы по мере надобности. Подразумевается, что рабочая частота мк равна 8мгц и тактирование TIM14 включено. Из любопытного, советую обратить внимание на то, каким образом запускается и останавливается таймер. Чем то это напоминает "трюк" из предыдущей загадки. Специалистам по предупреждениям компилятора уже можно начинать голосить. Тут тоже будет предупреждение внутри while().


Этим занимается операционная система из коробки. Время было потрачено в пустую. Она даже в тиках умеет это делать.

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

Вт май 14, 2019 16:16:55

И как называется сия "операционная система" ?

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

Чт май 23, 2019 21:21:30

Коллеги, а подскажите, плз, как по-быстрому перезапустить программу с самого начала, с начальной загрузкой указателя стека, очисткой всех полей и пр.?

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

Чт май 23, 2019 23:31:27

afz, установить 1 в бите SYSRESETREQ регистра SCB_AIRCR, выполнить команду DSB и ждать, пока система не перезапустится.
Например, так:
Код:
SCB->AIRCR = 0x05FA0004;
__DSB();
while(1);

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

Пт май 24, 2019 11:37:35

есть готовая функция CMSIS:
NVIC_SystemReset();
Код:
__STATIC_INLINE void NVIC_SystemReset(void)
{
  __DSB();                                                          /* Ensure all outstanding memory accesses included
                                                                       buffered write are completed before reset */
  SCB->AIRCR  = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
                 SCB_AIRCR_SYSRESETREQ_Msk);
  __DSB();                                                          /* Ensure completion of memory access */

  for(;;)                                                           /* wait until reset */
  {
    __NOP();
  }
}

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

Чт май 30, 2019 19:59:25

Подскажите, можно ли динамически, не прекращая работу МК менять делитель PLL при работе от RC генератора (HSI) или это не возможно?
В одном из проектов нужно менять частоту ШИМ от 1730 до 1800 килогерц с шагом не более 4 КГц
С помощью одного только делителя таймера и регистра HSITRIM этого невозможно добиться, они друг друга не перекрывают.

Что я имею ввиду.
Например у нас частота (после PLL) 48 МГц,
делитель=27, HSITRIM=0, частота ШИМ при этом 1754 КГц
делитель=28, HSITRIM=31, частота ШИМ при этом 1734 КГц
То есть получается ступенька, перекрытия не происходит.
Но если сделать частоту МК 44 МГц (уменьшив делитель PLL на единицу), то можно будет получить частоты между 1734 и 1754 КГц

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

Чт май 30, 2019 20:22:16

Можно. Особенно если тип МК указать.

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

Чт май 30, 2019 21:33:23

МК STM32F030C8T6

Я еще раз внимательно прочитал RM и судя по всему все таки можно.
Но нужно сначала отключить PLL поменять множитель и потом обратно его включить.
Только вот непонятно, получается что МК какое то время будет работать на очень низкой частоте чего хотелось бы избежать
Из за этого нарушиться работа всех таймеров (а используются почти все таймеры кроме TIM1) и дисплей будет очень медленно обновляться, он подключен по SPI и скорость UART будет неправильная
Теоретически можно одновременно с отключением PLL пересчитать делители всех таймеров и на время использовать их, а после все вернуть обратно (с учетом более низкой частоты МК)

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

Чт май 30, 2019 21:55:17

Например у нас частота (после PLL) 48 МГц,
делитель=27, HSITRIM=0, частота ШИМ при этом 1754 КГц

Уверен, что 1754 KHz - это именно частота ШИМа?

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

Пт май 31, 2019 07:54:58

Да, по рассчетам вот так получается, реально тоже все похоже на правду
(48 000 000-(40 000*16))/27 = 1 754 074 Гц
40000 это значение на сколько изменяется частота RC генератора при изменении HSITRIM на единицу

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

Пт май 31, 2019 08:20:36

Да, по рассчетам вот так получается, реально тоже все похоже на правду
(48 000 000-(40 000*16))/27 = 1 754 074 Гц

Это мои сомнения не развеяло :) Если, допустим, нужно на этом ШИМе меандр генерить, естественно с частотой 1'754'074 Гц, что будет в CCR?

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

Пт май 31, 2019 11:51:14

Для меандра (не совсем идеального, но в моем случае не критично) я делаю вот так
TIM3->PSC = 0;
TIM3->ARR = 27;
TIM3->CCR1 = (uint32_t)(TIM3->ARR / 2);

Возможно я неправильно выразился, написав что предделитель у меня 27, я имел ввиду регистр автоперезагрузки (ARR = 27)

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

Пт май 31, 2019 15:58:28

Возможно я неправильно выразился, написав что предделитель у меня 27, я имел ввиду регистр автоперезагрузки (ARR = 27)

Ясно, но тогда нормального решения я не вижу, слишком большие частоты. Возможно стоит взять какой-нибудь F334 у которого таймер на 4.6GHz...

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

Пт май 31, 2019 17:23:08

Да, камушек интересный, три компаратора, один ОУ, внешнее напряжение VREF. Быстрый АЦП. Судя по всему он делался под управление импульсными источниками питания.
Правда дороговато 3$ за штуку. Но для домашних поделок пойдёт.
Хотя и на stm32f030 я попробую добиться желаемого результата, меняя делитель PLL можно регулировать частоту плавно в любых диапазонах. Единственно что сильно усложняются алгоритмы работы.

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

Пт май 31, 2019 21:17:33

https://habr.com/ru/post/432778/

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

Пн июн 03, 2019 09:45:15

Коллеги, а как прицепить русский (1256) к Кейлу 5.24 ? Для комментариев мне хватало UTF-8, но не тянуть же в проект шрифты UTF-8 ? Мне бы и 1256 хватило...

Видел UvEdit.dll для 5.12, но не знаю, подойдет ли она для 5.24, и все ли будет работать правильно? Вроде-бы у 5.24 в редакторе какие-то отличия от старых, а эта dll-ина ведь, как раз, редактор?

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

Пн июн 03, 2019 12:03:25

afz, поставить 5.27. Там есть win 1251...

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

Ср июн 05, 2019 01:06:45

Установил 5.28, включил 1251, изба фигвам, опять вопросительные знаки - и при прямом наборе, и при вставке с клипборда. Надо подкрутить что-то еще?
Ответить