Jump to content
artos5

Тактирование одного таймера от другого таймера stm32f100

Recommended Posts

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

112244.jpg.0fa4f68b517675d3abf1670da4331eab.jpg

Я имел ввиду вот такие преобразования.

Share this post


Link to post
Share on other sites

Доброй ночи Вам! Ага , всё-таки группа непрерывно преобразует входные сигналы после команды старт.

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

 

И что это у вас за скрин документа ? Можете оригинал скинуть?


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Думаю лучше задавать частоту одного таймера более высокочастотного, а второй запускать от него с постоянным делителем например 10.

Книга называется "Мартин М. Инсайдерское руководство по STM32". Если не найдете могу скинуть.

Share this post


Link to post
Share on other sites

Пополнение и новинки линейки ViperPlus от STMicroelectronics

Компания ST обновила семейство ШИМ-регуляторов со встроенным ключом ViperPlus, выпустив новые бюджетные микросхемы VIPER122 и VIPER222, микросхемы VIPER265K и VIPER267K, имеющие встроенный ключ MOSFET напряжением 1050 В, и самый мощный VIPer31x. С их помощью возможно реализовать топологии: изолированный и неизолированный обратноходовой преобразователь (flyback), понижающий преобразователь (buck), повышающе-понижающий преобразователь (buck-boost).

Подробнее

Как сократить время вычислений и освободить ресурсы центрального процессора?

Цифровые фильтры применяются в системах цифровой обработки сигналов (ЦОС) для решения двух основных задач: разделения и восстановления сигналов. Такие задачи могут решаться программными и аппаратными методами. Для их решения удобно использовать аппаратный цифровой фильтр FMAC, входящий в состав микроконтроллеров семейства STM32G4.

Подробнее

1 час назад, MasterElectric сказал:

Вопрос

Да , нужно . При чем очень желательно аппаратно . Программно получается большой джитер. 


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Цикл статей: Все что вы хотели знать о STM32G4

Компания Компэл опубликовала цикл статей о новом семействе микроконтроллеров STM32G4. В статьях рассмотрены системная архитектура и разнообразие режимов питания, обзоры интерфейсных модулей, периферии и таймеров, а также различные виды и способы защиты информации, реализованные в микроконтроллерах новой серии STM32G4. Читать статьи >>

Подробнее

Ну если аппаратно, то вот так. На вход делителя частоты можно подать не совсем правильный прямоугольник и получить на выходе правильный меандр в 2-16 раз меньше по частоте. Это проще, чем следить в коде за генерацией импульса и быть загруженным только на это. Освободится время для опроса, надо дождаться фронта, дать команду на оцифровку и ждать спада импульса, за это время можно еще много чего подсчитать в коде. На вход можно дать ШИМ с МК или заюзать генератор на микросхеме с кварцем например 1 МГц, это будет 1/16=62500 Гц, то есть на МК можно пропускать импульсы и цифровать на 20830 ... 31250 Гц

Screenshot_416.png

Share this post


Link to post
Share on other sites

Да проще всего использовать два таймера ведущий считает быстро это выборки АЦП пусть оно будет по апдейту. Подчиненный считает тики этого таймера, делает нужное количество выборок на период (0 - ARR - 1), посредине ШИМ для меандра. Работать с буфером можно по событиям подчиненного таймера, если успеешь обработать за период данные с АЦП, то можно ДМА настроить на кольцевой емкостью 2 периода, на половине по прерыванию ДМА обраюатывать. Можно еще настроить и третий таймер, который будет считать тики второго таймера, т.е ты будешь знать какую выборку по счету обрабатываешь. Примерно так. Ну или сложнее на одном таймере при помощи DMA Burst можно генерировать сложный сигнал, но это возможно и не подойдет. 

 

Share this post


Link to post
Share on other sites
28.07.2019 в 01:45, artos5 сказал:

А как их синхронизировать

Может  фапч на 4046 подойдет ?

Share this post


Link to post
Share on other sites

Всем привет! Вернулся из командировке и сел снова за АЦП и таймеры по данной задаче. Я набросал в графическом виде как мне нужно организовать оцифровку сигнала. Как сделать так чтобы софтово вызывать преобразование Инжектированной группы АЦП а не по прерываниям? Нужно мне это делать скажем два раза в секунду. Остальное время заниматься оцифровкой 1 канала регулярной группы и складывать при помощи ПДП в буфер . Буфер будет 16 байт .

Чтобы выполнить преобразование инжектированной группы я так понимаю мне нужно:

1) остановить ПДП и преобразование регулярной группы.

2) вызвать преобразование инжектированной группы и скопировать значения в переменные , для последующего их отображения.
 

Как это все инициализировать и потом применять ? Интересует инициализация инжектированной группы и ее вызов.

АЦП STM32.pdf

ADC STM32.png


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

т.е. ты хочешь между выборками (непрекращающимися) основного канала, делать раз в секунду по 2 каналам? А если это будет не раз в секунду, а допустим раз на сто периодов меандра так можно? Это чтобы не вносить асинхронных процессов.

Edited by MasterElectric

Share this post


Link to post
Share on other sites

Я хочу выполнять выборки например 0.5сек. непрерывно . Потом остановить регулярную группу и запустить инжектированную , измерить два канала и потом снова регулярную группу измерять. Нужно это очень быстро выполнять (в смысле переключаться между группами).


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
28.07.2019 в 12:51, artos5 сказал:

очень желательно аппаратно .

Это как понять ? Внешним генератором ? Для точности только этот вариант и выше схема есть

И понятия прямая группа и инжектированная группа надо пояснить. Я так понимаю, надо переключаться между группами для считывания, это надо делать через подсчет количества выборок или поднимать флаги

Share this post


Link to post
Share on other sites
18 минут назад, colorad сказал:

многоядерный ?

Да, 4 ядра 8 потоков ))

...

...

...

правда у моего ПК в процессоре.

10 минут назад, РадиоНастройщик сказал:

Это как понять ? Внешним генератором ?

Нет , не внешним клоком. 
Нужно генерировать модулем ШИМ . В принципе при помощи таймера я это уже без проблем делаю, осталось только АЦП правильно настроить .


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Ну так вот плавать не должно. 


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
11 минут назад, artos5 сказал:

Ну так вот плавать не должно. 

 

28.07.2019 в 12:51, artos5 сказал:

Программно получается большой джитер

 

2 часа назад, РадиоНастройщик сказал:

Внешним генератором ? Для точности только этот вариант

И никак иначе. Или глобальный счетчик, пусть крутит постоянно и с него сверяться, например - ждать, пока не будет 111111, так точнее будет. Потом инкремент переменной, делаем выборку и опять ждем например 222222

Share this post


Link to post
Share on other sites
1 час назад, РадиоНастройщик сказал:

И никак иначе. Или глобальный счетчик,

Все немного проще . Просто не пойму как инициализировать правильно модули.


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

синхронизируйте по кварцевому генератору  как-то ... или кварцевый генератор от дополнительного .... или более быстрый мк .

Edited by colorad

Share this post


Link to post
Share on other sites

Наверно лучший вариант взять STM32F103 с двумя АЦП. Там они будут работать независимо. На вашем можно сделать иначе. Если 3 преобразования не получается, то делайте по 2. При 22 кГц время между двумя выборками 2.8 мкс ( меандр 45 мкс и 16 выборок  = 2.8 мкс ). При Sample time = 1.5 время одного преобразования 1.17 мкс и двух соответственно 2.34 мкс.Делаете регулярные группы 0, 1, 0, 2 и запускаете по два канала. В буфере будет по 32 значения, канал 0 обрабатываете постоянно, а 1 и 2 по желанию.

Share this post


Link to post
Share on other sites
8 часов назад, snn_krs сказал:

Наверно лучший вариант взять STM32F103 с двумя АЦП

Железо уже имеется . Оно "запилено" под STM32F100C8T6 . И в железе используется ЦАП. По этой причине STM32F103C8T6 не подойдет. Разве что , если вместо ЦАП применить ШИМ модуляцию.

8 часов назад, snn_krs сказал:

Если 3 преобразования не получается, то делайте по 2. При 22 кГц время между двумя выборками 2.8 мкс ( меандр 45 мкс и 16 выборок  = 2.8 мкс ). При Sample time = 1.5 время одного преобразования 1.17 мкс и двух соответственно 2.34 мкс.

Я считал , получается если в документацию смотреть , то входное сопротивление 400 Ом при 1.5 такта. У меня на такой скорости какие то глюки с вольтметром и амперметром :)

Но по две выборки вариант интересный ! Как раз вкладываемся в интервал :)


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Я понял в чем дело, тс не нужны алгоритмы, ему нужен готовый кусок кода, причем именно начальная инициализация счетчиков и АЦП, то есть программа еще не написана, есть только мысли и графики

Share this post


Link to post
Share on other sites

Неправильно вы поняли. У меня программа уже больше половины написана. Пришло время к отладке модуля АЦП , и такой косяк вылез..


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites
04.08.2019 в 10:42, snn_krs сказал:

Делаете регулярные группы 0, 1, 0, 2 и запускаете по два канала. В буфере будет по 32 значения,

Добрый вечер! А можно подробнее?

Мне настроить 4 ранка ? 

Rank1,2,3,4 и настроить их так: 0,1,0,2 например и складывать при помощи dma в буфер ? А таймер тогда настроить с какой частотой , если например нужно 16 выборок на 20кГц?


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Сам я именно такой вариант не делал, но попробовал бы сделать так

257701079_.png.f2cff156f681462286b5c131c1d314fa.png

Таймер TIMN сделал ведущим с частотой 20 кГц * 16. TIMM ведомый с запуском от TIMN и счетом до 16, его выход в режиме переключения выдает меандр с частотой 20 кГц. По TIMN запуск АЦП + ДМА. В буфере будут по четным адресам 0-й канал, а по нечетным поочереди 1, 2 каналы.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Цена вообще ни о чем, не показатель качества.
    • А может быть выход унч изолирован от корпуса (без вых. C, или с 2-х полярным питанием), тогда без нагрузки работать нормально не будет. А ламповый унч без нагрузки тоже вкл. нельзя, может индукцией пробить вых. трансформатор. Дело хозяйское.
    • На всю госдуму табуреток не напасешься
    • Не знаю, не знаю, я как-то фотку видел с 10-ю, ЕМНИП. И это, вродь, только половина. Серега придет, сам скажет.
    • -Сколько ***  нужно чтобы закрутить лампочку ? - Пятеро , один держит лампочку, стоя на табуретке, четверо вращают табуретку... - А сколько нужно табуреток чтобы усадить четверых *** ? - Одну, нужно перевернуть ее вверх ножками ... ____________________________________________________ Вместо *** подставить любую профессию, к которой испытываете неприязнь   
    • Как это у них во 2-й передаче с конической на цилиндрическую? Непорядок! 
    • Ну почему сразу так?! Допустим про т3 мне тоже говорили ерунда, баловство. Но однако собрал и находки были не плохими. С фишером тоже есть находки. Можно ведь катушку самому собрать под него или эту исправить. Может у неё заводской брак с экраном или ещё что то. А у фишера диапазон цен не слабый значит он того стоит. Были конечно ещё варианты взять 300 асю или 400i. Но почему то фишер больше приглянулся 

  • RGB светодиодна лента, 5м. На выбор разная степень влаго-пылезащищенности

×
×
  • Create New...