Отдельный контроллер управления форсунками

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

Moderator: STC

User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Отдельный контроллер управления форсунками

Post by STC »

KOT вот, правильно. Я об этом и говорил, таймеров очень мало. Будет дикий изврат у программиста или во обще неполучится нормально реализовать.
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
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Отдельный контроллер управления форсунками

Post by STC »

Что-то у меня в голове плоховато вырисовуется управление 4-мя форсунками на меге 128, есть 4 таймера из них 2шт 16-ти битных с 3-мя регистрами сравнения, есть еще 2шт 8-ми бытных с 1 регистром сравнения.
1-й 16-ти битный таймер уходит под расчтет оборотов
2-й 8-ми битный на внутренние нужды
Как быть с 4-мя форсунками?
Если б форсунки открывались максимум 1 оборот - ладно, 1 таймера на 4- шт хватит, а как быть с шимом?
ставить мольтиплексоры, как-то неохота.
Если оставить 2 форсунки , то у меня выходит тот же мегасквиртавр, только немного перерисованный под мой лад.
Что делать с фазировкой, походу действиетльно с секу нужно обмениватся, и располагать впрыск и секу вместе, чтоб SPI провадами не тянуть.
1-й 16-ти битный таймер работает в режиме free run (без остановок и перезагрузок).
- Вход ICP1 используешь для рассчета оборотов (обработка синхросигналов приходящих от SECU-3 или самостоятельная обработка шкива)
- В даташите написано что есть 6 PWM, я только не помню сбрасываются ли счетчики при работе PWM, если нет, то тебе хватает - используешь три канала на 1-м таймере и 1 канал на 3-м. Тебе же нужно 4 аппаратных PWM? В этом случае 2 канала 3-го таймера еще остаются.
Вопрос, тебе нужен высокочастотный PWM для pick&hold или ты просто собираешься форсунки PWM-ом включатьи выключать?
Если тебе не нужен высокочастотный PWM, то все просто и таймеров тебе хватает, так как низкочастотный ШИМ можно сделать программно (у тебя есть аж 6 модулей сравнения). Причем, можно использовать аппаратные возможности для автоматической установки нужного уровня на пине еще до того, как вызовиться обработчик прерывания.
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
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Отдельный контроллер управления форсунками

Post by Qwertty »

Одного таймера АВР хватит на любой рядный мотор. Хоть с 12 цилиндрами. Не хватит на V образные и то нужно подумать над алгоритмом - может все равно хватит. Вроде у Вемса не важно как расположены 8 цилиндров. Значит и для V образных должно получиться.
В режиме PWM очевидно что счетчик сбрасывается. Для ШИМ на период два события - взвод и сброс пина, а регистр сравнения один. Значит второе событие по переполнению. Шим на форсунки обычно делают около 10КГц и коэффицент заполнения 0,2-0,3. Для 1 омной форсунки может и 0,1 придется делать.
KOT
LQFP112 - Up with the play
Posts: 188
Joined: Fri Apr 06, 2012 6:59 pm
Location: Ukrainian, Zaporozhye
Contact:

Re: Отдельный контроллер управления форсунками

Post by KOT »

Ну допустим что на форсунки выделяем всего 1 таймера, т.е. для 8ми форсунок знаем когда включить и когда выключить, что делать с ШИМ?
Таймер в режиме FastPWM не сбрасывается, а считает по кругу.
pick&hold - собираюсь, можно организовать коэффициентом заполнения, но тогда 2 таймера в перевести в fastPWM, но по частоте ШИМа для 16 битных таймеров выйдет 244 герца, а это как-то не приемлимо, не на резисторах ведь делать? или лепить что-то типа LM1949, какие есть предложения по схемотехнике управления форсунками? а то я что-то с направлением запутался, склоняюсь слепить на транзисторах без обратной связи по току, кто что думает?
Интересуют варианты для Арма или для меги128.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Отдельный контроллер управления форсунками

Post by Qwertty »

KOT wrote: Таймер в режиме FastPWM не сбрасывается, а считает по кругу.
Так тоже сбрасывается. Просто при задании периода длинной в полный счетчик этого не заметно - счетчик и так и так тут обнуляется.
KOT wrote: pick&hold - собираюсь, можно организовать коэффициентом заполнения, но тогда 2 таймера в перевести в fastPWM, но по частоте ШИМа для 16 битных таймеров выйдет 244 герца, а это как-то не приемлимо, не на резисторах ведь делать? или лепить что-то типа LM1949, какие есть предложения по схемотехнике управления форсунками? а то я что-то с направлением запутался, склоняюсь слепить на транзисторах без обратной связи по току, кто что думает?
Интересуют варианты для Арма или для меги128.
Какая разница - для арма или авр или стм8? Для арма в любом случае нужно что то внешнее - его уровни недостаточны ни для vnd14, ни для uln2003. 3.3В тянет за собой массу веселых граблей. Для 5 вольтовых процессоров в общем можно обойтись без внешней обвязки, но вот это точно потребует лишнего таймера. Или две копеечных микросхемы - 4*2И-НЕ и 4*2И. Это на 4 цилиндра понятно. Управление форсункой например через два вывода. Один - основной, второй - выбор ШИМ или просто открытый ключ. Все три канала придется отдать этой задаче. 1- открытие, 1 - закрытие и 1 - переключение на ШИМ. Ну и сам ШИМ потребутся. Можно с таймера, можно 555 таймер поставить. В КМОП версии он почти ничего не потребляет и стоит 0,3$. Как слепить на транзисторах пик энд холд уже я не представляю. Хоть с ОС, хоть без нее. На компараторе можно, но это с ОС и ключ уйдет в линейный режим. Соответственно - нагрев ключа, радиаторы и прочая "радость".
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Отдельный контроллер управления форсунками

Post by STC »

Если таймер в режиме Fast PWM не сбрасывается, тогда предлагаю так:
- таймеры 1 и 3 считают по кругу.
- Вход захвата ICP первого таймера используется для измерения оборотов/синхронизации.
- 3 канала 3-го + 1 канал 1-го таймеров работают в режиме PWM, и того 4 канала ШИМ - для 4-х форсунок.
- Остается 2 канала 1-го таймера, один из которых можно использовать дополнительно для форсунок, второй в запасе.
- Остаются еще 8-ми разрядные таймеры для разных целей, например для восстановления отсутствующих зубьев (если захочешь сам обрабатывать шкив без SECU-3), для таймера системных событий (напримрер в SECU-3 1 тик равен 10мс) и т.д.
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
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Отдельный контроллер управления форсунками

Post by Qwertty »

ШИМ 244Гц - то же что нет ШИМ вообще. Низкоомная форсунка уходит в насыщение примерно за 1мС. Период ШИМ больше 4мС. Как бы неплохо частоту раз в 40-50 поднять.
KOT
LQFP112 - Up with the play
Posts: 188
Joined: Fri Apr 06, 2012 6:59 pm
Location: Ukrainian, Zaporozhye
Contact:

Re: Отдельный контроллер управления форсунками

Post by KOT »

ШИМ 244Гц - то же что нет ШИМ вообще. Низкоомная форсунка уходит в насыщение примерно за 1мС. Период ШИМ больше 4мС. Как бы неплохо частоту раз в 40-50 поднять.
я ж написал выше что не подходит 16 бит для шима...
для таймера системных событий (например в SECU-3 1 тик равен 10мс) и т.д.
У меня в 1 таймер на моноинже так и завязан, как раз на такое, время, управлял вентилятором, смотрел dt/ds педели газа, и еще куча примочек за вязаных на пусковой режим, моргание светодиода итд.

в итоге:
1 8-ми битный таймер на системые нужды, без него не программа, а мазохизм.
2 8-ми битный таймер на ШИМ, а шим попытатся сделать логикой, возможно мультиплексированием, т.е скважность для удержания для всех форсунок предполагаем одну и ту-же.(выставляется при настройке с менеджера)

В общем если использовать 2 16-ти битных таймера на расчет времени открытия форсунок, то выходит плохо с фазой впрыска, т.к время до переполнения таймеров должно быть как минимум 1 оборот - максимальное время открытия форсунки, считать фазу впуска по времени за пол оборота - можно получить большую погрешность в градусах.
т.есть сигнал с секу 3 необходим на каждый зуб шкива, т.е таймер должен считать время либо от зуба до зуба, а если выставить предделитель так что таймер к примеру при 500 оборотах будет переполнятся за оборот коленвала, то точность измерения от зуба до зуба будет не ахти...
- или вводить дополнительные регистры, которые будут инкрементится в прерываниях от сравнения таймеров.
Либо же попытаться сделать алгоритм как выше предложил Qwertty:
1 таймер 2 регистра сравнения на 4 или 8 форсунок..
ну и остается 1 на расчет времени между зубьями и фазой впрыска.
Только пока голова плохо соображает как это программно реализовать.

Вот картинка с даташита
Image
Но это для 8-ми битного таймера, 16 битный почему-то на картинке сбрасывается...
Image
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Отдельный контроллер управления форсунками

Post by Qwertty »

Насчет точности - тактируя таймер частотой 250Кгц - на шести тысячах оборотов разрешение получится 0,144 градуса или 2500 отсчетов на оборот. Оно же 41 отсчет на зуб шкива 60-2. При 3000 соответственно отсчеты растут вдвое, а разрешение вдвое уменьшается. Неужели нужна точность выше? Промах даже на 1 градус скорее всего никак себя не проявит. Хоть для фазы впрыска, хоть для зажигания.
Можно было бы затактировать 500КГц-ами, переполнение было бы при 500 оборотах и меньше, что равно режиму пуска. Но АВР не умеет делить такт на произвольный делитель. И даже на степени двойки тоже только с дырками. На 8 умеет, а потом на 64. 2МГц явно много, а 250КГц уже низковато. Хотя ИМХО - пойдет.
Таймер в режиме FAST PWM на картинке сбрасывается, потому что он и должен сбрасываться. Если задать период PWM равным 2^16, то сбрасываться не будет. В смысле - все равно будет, но это в любом случае так и было бы из за нехватки разрядности.
Меня всегда удивляло зачем ST внедрила в свои 32 битные кристаллы отстойные 16 битные счетчики? Для 8-ми битника такой счетчик нормально, а вот в пол регистра - странный вариант.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Отдельный контроллер управления форсунками

Post by STC »

Насчет точности - тактируя таймер частотой 250Кгц - на шести тысячах оборотов разрешение получится 0,144 градуса или 2500 отсчетов на оборот. Оно же 41 отсчет на зуб шкива 60-2. При 3000 соответственно отсчеты растут вдвое, а разрешение вдвое уменьшается. Неужели нужна точность выше? Промах даже на 1 градус скорее всего никак себя не проявит. Хоть для фазы впрыска, хоть для зажигания.
Согласен, 250кГц хватит. В SECU-3 такая частота и используется.
Меня всегда удивляло зачем ST внедрила в свои 32 битные кристаллы отстойные 16 битные счетчики? Для 8-ми битника такой счетчик нормально, а вот в пол регистра - странный вариант.
Для нашего приложения 16 бит вполне достаточно. А так, согласен.
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
Post Reply