189 похожих чатов

Кстати, а можно ли таймера в master-slave в single shot

запустить на stm32g4 ?

41 ответов

30 просмотров

Емнип смотря какие. Там вроде 1 и 8 всё могут, а остальные так не умеют

Konstantin-Akmarov Автор вопроса
Alex Smirnov
Емнип смотря какие. Там вроде 1 и 8 всё могут, а о...

там много таймеров, которые могут много всего, но именно чтобы фаза не плавала в master-slave в single shot, у меня есть подозрение, что она даже в в single shot плывёт

Konstantin Akmarov
там много таймеров, которые могут много всего, но ...

Так там умеет по событию 1 таймер синхронить остальные же

Konstantin Akmarov
там много таймеров, которые могут много всего, но ...

Да, именно что плывет, на том же h7 осциллом проверял) Если нужно что то, где важна фаза, то это ПЛИС имхо

Konstantin-Akmarov Автор вопроса
Alex Smirnov
Да, именно что плывет, на том же h7 осциллом прове...

Это именно в single shot? Или просто master-slave ?

Konstantin Akmarov
Это именно в single shot? Или просто master-slave ...

Да, именно в single shot. Хотя по идее если просто мастер слейв то то же самое. Более того, в разных таймерах по разному, такое чувство, что у них принципиально разные механизмы тактирования и соответственно задержки

Konstantin-Akmarov Автор вопроса
Alex Smirnov
Да, именно что плывет, на том же h7 осциллом прове...

вот такая печалька получается на g4 😕, TIM2 master, TIM3 slave, частота 710Гц, длина импульса 1.1мкс

Konstantin Akmarov
screenshot вот такая печалька получается на g4 😕, TIM2 master...

А чем вы такой график красивый строите?

Konstantin Akmarov
screenshot вот такая печалька получается на g4 😕, TIM2 master...

Во во, что то такое же на h7 выходило. Только там оно меньше на нормальное распределение походило, был скос в +)) Я бы поставил для такого внешний гун с кмоп выходом, и с цапа g4 им управлял:3

Alex Smirnov
Во во, что то такое же на h7 выходило. Только там ...

А ещё я бы попробовал TIM1 master TIM8 slave, результат может отличаться на порядок, как ни странно

Konstantin-Akmarov Автор вопроса
Alex Smirnov
Во во, что то такое же на h7 выходило. Только там ...

Мне фазы надо крутить туда-сюда, single shot и прочая лабуда, какой уж там гун

Konstantin Akmarov
Мне фазы надо крутить туда-сюда, single shot и про...

А, ну тогда точно плисина. Тоненькая какая нибудь, как раз говин можно заюзать, i2c слейв там, и слать команды в него, какую лабуду ей надо сгенерить

Konstantin-Akmarov Автор вопроса
Alex Smirnov
А, ну тогда точно плисина. Тоненькая какая нибудь,...

Это понятно конечно, ну как обычно - хочется же обойтись одночиповым решением)

Konstantin-Akmarov Автор вопроса
Konstantin Zo
А как вообще измерения фазы проводятся?

Лог анализатором, и да я проверял фазу с обычного генератора - там всё ок

Konstantin Akmarov
Лог анализатором, и да я проверял фазу с обычного ...

У меня не было задач в наносекунды попадать таймером, но если я бы встретился с такой проблемой, то наверное шёл таким путём: 0. Повесил на всяк 50 ом на пинку, чтобы выходное было такое же как у генератора, с которым сравнивалось. Укоротил бы провода. 1. убедился, что таймер в режиме ШИМ сам по себе не даёт джиттера. Если этот даёт, искать тот, который не даёт, либо искал бы проблемы в питании, наводках, разводке, способе тактирования. 2. Если проблема только в slave режиме, то убедился, что таймера тактируются одним источником и искал бы пару таймеров, где эта проблема минимизирована. У STM такое вполне вероятно. Коллеги рассказывали, что проблемы бывают когда просто на другую ножку периферию назначаешь (F429). Про TIM1+TIM8 тут уже советовали. Про тактирование таймеров от HSE тоже. 3. Если то, что выше не дало результата, возможно бы поигрался c частотой шины. Т.к. Event таймера - событие асинхронное и оно синхронизируется с частотой шины. Тут надо глубже ковыряться. Возможно есть такая пара частот AHB/APB с которой проблема минимальна. Если нет, то рассматривал или ПЛИС, или второй мелкий контроллер, специально под эту задачу. Наверняка должны быть мелкие STM8, которые имеют механизм запуска одного таймера другим.

Konstantin-Akmarov Автор вопроса
Konstantin Zo
У меня не было задач в наносекунды попадать таймер...

это всё понятно, работы много, а времени нет особо на это, и вообще не понятно нужно ли мне оно такое просто хотел посмотреть как оно вообще работает.

Konstantin Akmarov
это всё понятно, работы много, а времени нет особо...

а вы что делаете? а то тут на стм управление ллс делать собрались а там на 260кгц над управлять ключиками от нескольких таймеров, что то вот страшно уже

Konstantin-Akmarov Автор вопроса
Andrey Ermakov
а вы что делаете? а то тут на стм управление ллс д...

так у меня получается период 1.4мс, а разброс по фазе ±1мкс - это меньше чем ±0.1% от периода - для всяких двигателей и источников питания вообще пофиг

Konstantin-Akmarov Автор вопроса
Andrey Ermakov
ну deadtime реализуемые они там в 200нан

посчитайте сами, а не просто смотрите на циферки

Konstantin-Akmarov Автор вопроса
Andrey Ermakov
ну deadtime реализуемые они там в 200нан

Дедтайм между силовыми ключами и синхр выпрямителем или внтури полумоста? Если внутри полумоста, он там на железе делается. Не было проблем.

Andrey Ermakov
у синхронного и у раскачки не на железе

В смысле, есть пауза между включением ключа в первичке и включением во вторичке - вот эта пауза может быть программной, хотя я так не делал. Я про то, что у STM32 есть комплиментарные выходы на ключи. И дедтайм там настраивается жётко. Там не тот механизм, что мы обсуждаем.

Konstantin Akmarov
screenshot байпаснул фапч 😐

Жеесть. А это точно не кварц дрожит? Там на MCO вроде вывести можно этот клок.

Konstantin-Akmarov Автор вопроса
Konstantin Zo
Жеесть. А это точно не кварц дрожит? Там на MCO вр...

да, действительно проблема была скорее всего в кварце, проблему воспроизвести не удалось( но фапч тут не при делах

Konstantin Akmarov
да, действительно проблема была скорее всего в ква...

Спасибо, полезно. Хоть понятно, что не в ядре.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта