Сколько нужно таймеров и их каналов (Timers and channels)

Разработка впрыска топлива на базе SECU-3. Fuel injection related discussion.

Moderator: STC

nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Сколько нужно таймеров и их каналов

Post by nikll »

Можно и stm32f4xxxx, в данном случае разницы нету, нам же не DSP от камня надо а переферию и достаточнуб вычеслительную мощность. stm32f100 не устраивает именно своей переферией. stm32f4xxxx стоит довольно дорого и в наличии практически нет.
В общем сейчас разрабатываем под stm32f103V, потом если надо будет без проблем переползем на четвертую линейку благо совместимость по пинам практически полная.
zelya
QFP80 - Contributor
Posts: 80
Joined: Mon Mar 28, 2011 10:30 am
Location: Russia, Voronezh
Contact:

Re: Сколько нужно таймеров и их каналов

Post by zelya »

nikll wrote:Можно и stm32f4xxxx, в данном случае разницы нету, нам же не DSP от камня надо а переферию и достаточнуб вычеслительную мощность. stm32f100 не устраивает именно своей переферией. stm32f4xxxx стоит довольно дорого и в наличии практически нет.
В общем сейчас разрабатываем под stm32f103V, потом если надо будет без проблем переползем на четвертую линейку благо совместимость по пинам практически полная.
аналогичный бы подсчет по входам - у ст для большого количества входных аналоговых сигналов развитие кортекса-м4 stm32f3
но если внимательно подсчитать и по входам хватит 103 семейства, особенно если в 144 ножечном варианте - то да.
Sergey89
QFP80 - Contributor
Posts: 71
Joined: Sat Dec 03, 2011 1:28 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by Sergey89 »

Разве для накопления с перекрытием не достаточно одного таймера? Даже если есть перекрытие фаз накопления, сами события начала накопления разнесены на время такта (180 градусов для 4 цил.) и при этом они не могут за такт поменять своё положение на такое большое значение. Правда портами придётся управлять программно.
andreydd
DIP8 - Involved
Posts: 15
Joined: Sun Oct 06, 2013 3:28 pm
Location: Иваново
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by andreydd »

Sergey89 wrote:Разве для накопления с перекрытием не достаточно одного таймера? Даже если есть перекрытие фаз накопления, сами события начала накопления разнесены на время такта (180 градусов для 4 цил.) и при этом они не могут за такт поменять своё положение на такое большое значение. Правда портами придётся управлять программно.
Верно. Причем для накопления энергии вообще таймер не нужен, достаточно определять для каждой катушки номер зуба, на котором включится коммутатор на накачку. А таймер один нужен на любое количество катушек с байтом или словом идентификации канала, в котором произойдет искра в ближайший момент.
Sergey89
QFP80 - Contributor
Posts: 71
Joined: Sat Dec 03, 2011 1:28 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by Sergey89 »

Не все коммутаторы имеют функцию ограничения тока, поэтому нужно как можно более точно выставлять фазу накопления. И к зубьям я бы вообще не стал привязывать события, если есть желание сделать более универсальную систему и поддерживать различные датчики положения.
User avatar
russian
LQFP112 - Up with the play
Posts: 154
Joined: Fri Feb 01, 2013 4:18 pm
Location: Jersey City, USA

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by russian »

Подолью немного масла в огонь: а я считаю, что достаточно одного таймера 1MHz - и дальше дёргать пины из обработчика этого таймера програмно. Я запускал тесты именно на эту тему и получаил <2uS точность на 10ти одновременных каналах разной частоты - мои замеры http://rusefi.com/forum/viewtopic.php?f=5&t=2
andreydd
DIP8 - Involved
Posts: 15
Joined: Sun Oct 06, 2013 3:28 pm
Location: Иваново
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by andreydd »

Можно даже таймером на 100 кГц. Не нужны в инжекторе точности более 10uS!
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by STC »

достаточно определять для каждой катушки номер зуба, на котором включится коммутатор на накачку.
Позволю себе не согласиться. Шкивы бывают разные, есть и 16 зубьев и меньше. Прийдется ставить большие радиаторы на транзисторы чтобы компенсировать лишнее время открытого транзистора. Поэтому это справедливо только с оговоркой, например 60 зубьев.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
andreydd
DIP8 - Involved
Posts: 15
Joined: Sun Oct 06, 2013 3:28 pm
Location: Иваново
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by andreydd »

Согласен. Просто шкивы 60-2 встречаются в подавляющем большинстве. Если импульсов меньше, то на накачку можно использовать программный таймер достаточно низкого разрешения (например 100 мксек) и в нем организовать обработку любого числа катушек.
User avatar
Seaman
TO92 - Vaguely active
Posts: 2
Joined: Mon Dec 16, 2013 4:32 pm
Location: Sevastopol, Ukraine
Contact:

Re: Сколько нужно таймеров и их каналов (Timers and channels

Post by Seaman »

Если речь идёт о STM32, то почему не реализовать программную модель системы на ОСРВ (RTOS), тем более, что ARM-ядро заточено под ОСи? Объёмы памяти и быстродействие даже F10X-ых камней позволили бы выделить для каждой форсунки отдельный процесс управления, который мог бы по событию (флагу) открывать и закрывать свою форсунку с точностью до 0,1 мс (зависит от частоты срабатывания SysTick, можно сделать и меньше), а также формировать ШИМ-сигнал на любой ноге контроллера, имитируя Peak-And-Hold.

Насчёт катушек зажигания, думаю, тоже можно продумать, как грамотно формировать опережение зажигания и накопление заряда, отталкиваясь от номера зуба КВ. В большинстве ОСей доступно до 32 пользовательских процессов. То есть, 8 форсунок и 8 катушек зажигания на 72 МГц любой M3-кортекс, теоретически, должен переварить без напряга. И ещё 16 процессов останется для других нужд. И всё это, грубо говоря, на 1 системном таймере SysTick. Конечно, его разрешение невелико по сравнению со штатными таймерами, которые могут обрабатывать очередь из кучи событий по совпадению.

Сильно не пинайте новичка :) Только начал разбираться в алгоритмах управления двигателем, но микроконтроллерами занимаюсь достаточно давно. Так что, критикуйте, если не прав. Но не пойму пока, зачем нужна такая куча таймеров и каналов. Как мне кажется, если не все, то большинство системных задержек, не требующих точности меньшей, чем период срабатывания таймера SysTick, можно было бы повесить на этот таймер. А остальные формировать на остальных аппаратных таймерах. И вообще, ИМХО, если используется STM32, то рулить системой управления двигателем на нём красивее из-под RTOS :)
Post Reply