Например TDA7294

Форум РадиоКот :: Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
https://radiokot.ru/forum/

STM32 новичку в ARM что к чему
https://radiokot.ru/forum/viewtopic.php?f=59&t=67578
Страница 276 из 423

Автор:  VladislavS [ Ср май 08, 2019 07:19:13 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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


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


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


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

Автор:  a5021 [ Ср май 08, 2019 17:51:05 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  Oxford [ Вт май 14, 2019 01:29:28 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

Компактный код для организации микросекундных задержек по таймеру на 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().


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

Автор:  a5021 [ Вт май 14, 2019 16:16:55 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  afz [ Чт май 23, 2019 21:21:30 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  ПростоНуб [ Чт май 23, 2019 23:31:27 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  oleg110592 [ Пт май 24, 2019 11:37:35 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

есть готовая функция 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();
  }
}

Автор:  hosturik [ Чт май 30, 2019 19:59:25 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  VladislavS [ Чт май 30, 2019 20:22:16 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  hosturik [ Чт май 30, 2019 21:33:23 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

МК STM32F030C8T6

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

Автор:  Reflector [ Чт май 30, 2019 21:55:17 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  hosturik [ Пт май 31, 2019 07:54:58 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  Reflector [ Пт май 31, 2019 08:20:36 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  hosturik [ Пт май 31, 2019 11:51:14 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  Reflector [ Пт май 31, 2019 15:58:28 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  hosturik [ Пт май 31, 2019 17:23:08 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  Myp3ik [ Пт май 31, 2019 21:17:33 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  afz [ Пн июн 03, 2019 09:45:15 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

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

Автор:  dosikus [ Пн июн 03, 2019 12:03:25 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Автор:  afz [ Ср июн 05, 2019 01:06:45 ]
Заголовок сообщения:  Re: STM32 новичку в ARM что к чему

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

Страница 276 из 423 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/