Я сам учусь, как обращаться с таймерами в CubeMx. У меня есть несколько простых вопросов.
Первый вопрос:
В дереве часов я вижу частоты шины периферийных устройств APB1/APB2 и таймеров. Я думал, что когда я устанавливаю прескалер, тактовая частота таймера APBx равна частоте, деленной на прескалер, но на самом деле это периферийная тактовая частота APBx.
Какая реальная разница?
Второй вопрос:
Я установил таймер 2 в режиме ввода ШИМ для измерения периода входного сигнала. Итак, в обратном вызове прерывания я могу сказать:
period = HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_2);
Это говорит о периоде в миллисекундах? Или это правильный способ спросить период?
Третий вопрос:
Я прочитал в примечании к приложению:
Частота TIMxCLK установлена на 72 МГц, предварительный делитель равен 0x0, поэтому тактовая частота счетчика TIM2 составляет 72 МГц. Таким образом, минимальное значение частоты для измерения составляет 1100 Гц.
Как рассчитать эту минимальную частоту?
При настройке режима ввода ШИМ или режима захвата ввода для измерения внешнего сигнала, как мне эффективно выбрать предварительный делитель и период счетчика в CubeMx в соответствии с моим частотным диапазоном?
Что касается вопроса AHB/APB, его лучше всего объяснить, взглянув на дерево часов.
AHB и APB — это разные шины. У AHB есть память и ядро, у APB есть периферия. С точки зрения энергии они могут иметь разную скорость.
Особым случаем в чипах ST является то, что периферийные устройства, включая регистры таймеров , синхронизируются с частотой PCLK1, а источник синхронизации таймера кратен PCLK1. Это позволяет использовать более медленный APB1, но по-прежнему позволяет использовать более быстрые таймеры.
Это говорит о периоде в миллисекундах?
Это дает результат в тиках таймера.
Частота TIMxCLK установлена на 72 МГц, предварительный делитель равен 0x0, поэтому тактовая частота счетчика TIM2 составляет 72 МГц. Таким образом, минимальное значение частоты для измерения составляет 1100 Гц.
Как рассчитать эту минимальную частоту?
Максимальная частота часов/таймера = 72 МГц/(2^16) = 1,09863281 килогерц.
Как мне эффективно выбрать предварительный делитель и период счетчика в CubeMx в соответствии с моим частотным диапазоном?
Вы, вероятно, не можете использовать один диапазон, если вам нужен большой диапазон захвата. Вы можете автоматически переключать предварительные делители, как это делает ваш мультиметр в режиме автоматического выбора диапазона.
Джероен3
пользователь115094