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

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

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

Вопрос

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

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

Ну если аппаратно, то вот так. На вход делителя частоты можно подать не совсем правильный прямоугольник и получить на выходе правильный меандр в 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
Posted (edited)

т.е. ты хочешь между выборками (непрекращающимися) основного канала, делать раз в секунду по 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
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
Posted (edited)

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

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...

  • Сообщения

    • Предложение актуально. Цены: Минимальный заказ - 1 катушка. Цена - 950грн. Цена от 2х катушек - 900грн/катушка. Возможна отмотка от 100гр. Цена 100гр. - 130грн.
    • Всем доброго времени суток! Я новичок тут! Что можете сказать вот про такую схему, только лампы стоят 6н6п. Анодное 275, в верхних катодах 220 Ом, нижних 100 Ом. Нижние сетки 100 кОм. Сигнал сразу на сетку. Работает на наушники 250 Ом.
    • Здравствуйте уважаемые форумчане! Мне неспешно,на заказ собирают ламповый SE усилитель на прямонакальных триодах 6с4с и 6э5п(драйвер) Выходные трансформаторы мотают на заказ на хорошем железе, силовик тоже (торроидальный) вы знаете не по наслышке, что прямонакалы 6с4с "хорошо" фонят и чтобы устранить этот недостаток накал ламп советуют выпрямлять постоянкой! Но уже двое человек мне сказали что в этом случае можно "убить" звук, что якобы пропадёт динамика(детализация) и звучание будет в большей степени транзисторным! Правда ли это на самом деле?!!! 2. Если накал ламп выпрямить переменкой как тогда избавиться от фона? Прошу откликнуться знатоков, которые собирали однотактники на этих лампах(6с4с) как правильно поступить? Схему прилагаю)
    • Возможно прога не учитывает что например при 220В большинство атх бп работают в половину от макс скважности -поэтому и число витков меньше  Если сердечник немного больше,то можно взять число витков как в оригинале,40 витков на входе А вот скака витков на выходе,ещё раз подумать какой нужен запас по скважности и по снижению напряжения в сети
    • Верно.   https://vk.com/video182375012_456239021
    • Это и так два паяльника, только конструктивно объединенные в один инструмент.
    • Василичь, - то, что на верхнем фото подписано "Керамика в ОС" (не знаю, что это значит) - это высококачественная пленка от EPCOS. Тип диэлектрика не помню.
×
×
  • Create New...