Перейти к содержанию
    

STM32 - меандр на таймерах

Output compare mode но не как не ШИМ.

ШИМ мне кажется лучше подходит.Хотя нужно экспериментировать.Если нужно что б была частота меандра 20 Мгц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу обратно вернутся на меандр ШИМ на stm32 мне всё понятно только prescaler как менять если в майне он настроен по умолчанию ARR =400 CCR=200 Квк?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я конешн не спецыалист 🙂 , но говорят, что PSC = (коэфф_деления - 1) помогает.

типа вот так вот. 

void SetPrescaler(uint16_t divider)
{
	TIM1->PSC = divider - 1;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы имеете ввиду функция.А ещё один провокационный вопрос.На какие частоты  может работать выход таймера stm32f103c8t6.Почему спрашиваю мне нужно генерацию от 800кГц до 32Мгц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я имею ввиду 

TIM1->PSC = divider - 1;

Работать может на те частоты, на которые настроите. И учитывайте шаг перестройки частоты. Все ответы есть в документации же. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая инициализация в майне? Что куда возвращается?

Просто берете и изменяете значение предделителя PSC таймера, это обычный регистр, его можно записывать в любое время когда угодно и чем угодно. Посчитали, сколько надо и записали. Например, тактовая частота МК 72 МГц, тактовая шины APB2 72 МГц, ARR = 10 - 1. На выходе таймера нам надо 800 кГц. Значит, PSC = (72'000'000 / 10) / 800'000 = 9 - 1 = 8. (PSC = div - 1).

Изменено пользователем EdgeAligned
забыл написать, что 72000000 / 10

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как и таймер так и вся периферия где то инициализация проходит у меня в майне.И прескалер тоже. Можно попробовать  не инициализировать. А работать будет тогда?И ввести в функцию и изменять изменять в основном цикле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да очень просто будет работать, при PSC = 0, это его значение после сброса, если ничего не менять.

Вы документацию совсем не читали и совсем еще начинающий, видимо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вроде  читал но написано по английски.Не по русски.И не по турецки .Но вытянет ли таймер большие частоты до 40 Мгц ? вот в чём вопрос. И можно ли просмотреть на китайском анализаторе спектра так как осцилографа не имею.А есть совдеповский лабораторный.

Изменено пользователем dimir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/14/2024 at 6:32 PM, dimir said:

 

Таймер вытянет любую частоту согласно ДШ.
Обычно макс. тактовая у таймера равна тактовой процессора (но может быть и половина).
Короче. Для выходного меандра 40 МГц на входе таймера надо 160 МГц.
Отсюда выбираете соотв. STM32. Чтоб он мог работать на 160 МГц
Изменено пользователем serglg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я понял а есть другой аппаратный вариант?Si5351A

В 15.01.2024 в 07:24, serglg сказал:
Таймер вытянет любую частоту согласно ДШ.
Обычно макс. тактовая у таймера равна тактовой процессора (но может быть и половина).
Короче. Для выходного меандра 40 МГц на входе таймера надо 160 МГц.
Отсюда выбираете соотв. STM32. Чтоб он мог работать на 160 МГц
 

 

Изменено пользователем dimir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STM32F103C8 BluePill: 72 МГц тактовой, таймер PSC = 0, ARR = 1, CCR2 = 1. Выход - 36 МГц. (36,36 - погрешность изменения анализатором из-за его частоты 400 Мсепл/с.)

2024-01-15181735.jpg.20e7ccb51c62f4bfcb60213049036843.jpg 

Однако, особенность этой байды в том, что изменение на PSC = 1 изменит выходную частоту в 2 раза 🙂 Это чистая математика.

Что-то в последнее время тут на форуме какие-то дикие хотелки. Один гражданин собирает неведому гравицапу с ШИМ-кодированием звука на дискретных элементах, другой вот... 40 МГц хотит... А базовых знаний почему то нету. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, dimir сказал:

Меандр конкретно на 64Мгц на баэе stm32 можно сделать или нет.

Можно. Делайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...