Выбор МК для впрыска (Selecting MCU for injector unit)

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

Moderator: STC

Post Reply
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

В опенсурсе принято разные алгоритмы задавать конфигурацией перед сборкой. Одновременно 60-2 и шкив с 136 зубцами очевидно применяться не будут. Так зачем держать в прошивке балласт? При замене типа шкива очевидно что перепрошивка блока будет далеко не самой трудоемкой задачей. Кроме того такой выбор можно сделать почти без затрат временных ресурсов. Завести ОДИН указатель и грузить в него адрес соответствующего обработчика. Грузить понятно 1 раз при старте - в зависимости от опций из еепром. Это двойной перерасход памяти на обработчик, но минимальная потеря времени. Уже не надо проверять условия в самом обработчике. Я понимаю что универсальность это существенное замедление программы. Но не понимаю зачем она вообще сделана. Собрать прошивку под свою систему может каждый. В крайнем случае можно потратить время и собрать несколько прошивок с разными опциями. Бери подходящую под свое железо и прошивай. Универсальность обычно в коммерческих системах используется. Хотя и там можно обойтись заранее собранными прошивками и вшитым загрузчиком.
У меня вообще 4 цилиндра, шкив или 60-2 либо вообще ДХ и обороты не выше 6000. Да и 6000 это только в теории - газовые форсунки уже к 4800 оборотов обычно начинают пытаться никогда не закрываться. Чаще всего на 4500 делают возврат на бензин автоматически.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by STC »

В опенсурсе принято разные алгоритмы задавать конфигурацией перед сборкой. Одновременно 60-2 и шкив с 136 зубцами очевидно применяться не будут. Так зачем держать в прошивке балласт? При замене типа шкива очевидно что перепрошивка блока будет далеко не самой трудоемкой задачей.
Не все умеют компилировать прошивки. А делать релиз из 20-30 почти одинаковых бинарников тоже не самый лучший вариант, начнутся вопросы кому какая прошивка нужна. Преценденты уже есть :-)
А вообще, согласен.
У меня вообще 4 цилиндра, шкив или 60-2 либо вообще ДХ и обороты не выше 6000. Да и 6000 это только в теории - газовые форсунки уже к 4800 оборотов обычно начинают пытаться никогда не закрываться. Чаще всего на 4500 делают возврат на бензин автоматически.
В любом случае, если делать тебе, тебе и выбирать тип процессора. Тот кто делает, тот и заказывает музыку, всем остальным ничего не останется как просто повторять как есть.
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: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

STC wrote:
И Вемс ездит еще и лучше. И в них далеко не пентиумы.
Ты сам лично ездил на нем? Осциллографим смотрел что там творится? :lol:
Да, конечно мега извраты в коде никто не отменял, вон, люди пишут программы в 2кБ, которые делают невообразимые вещи, олимпиады извращенцев и ботаников-задротов... Но где здравый смысл? Зачем заниматься извращениями если можно переплатить 2$ и жить спокойно. Я не говорю про STM32, я говорю вообще (против того же ST10 ничего не имею). Можно вообще на асме написать все, и кто это потом поймет кроме разработчика. Тут люди в чужом сишном коде разобраться не могут...
Я видел осциллограммы его выходов. В 5 мкс он укладывается железно. Надо точнее? А переплатить 2 доллара - я готов. Что купить за 7? СТ10 - это 35 переплатить, на 2 совсем не похоже. Доставку я вообще не учитываю. Извраты в коде не нужны. Минимальный здравый смысл. Типа хранения в таблицах сразу отсчетов таймера.
В чужом коде разобраться всегда сложно. Вообще то у нас по ЕСКД есть и на программу документация. В виде графических алгоритмов и полного описания функциоирования. Я такое писал и сдавал. Для облегчения этого труда придумали doxygen.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

Я то давно все для себя решил. Спорю так - просто пообсуждать. :) Чтоб тишины не было. Nikll похоже тоже для себя решил, да и решил он еще в декабре. Поздно переубеждать. 9 месяцев прошло, мысль укоренилась. Поменять мнение легко в течении недели. Потом сложно. Это я и по себе знаю.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by STC »

Qwertty Если придумаешь очень эффективный алгоритм обработки 60-2 с привязкой событий к углам поворота КВ, будет интересно посмотреть.
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: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

STC wrote: Не все умеют компилировать прошивки. А делать релиз из 20-30 почти одинаковых бинарников тоже не самый лучший вариант, начнутся вопросы кому какая прошивка нужна. Преценденты уже есть :-)
А вообще, согласен.
А для таких придуманы командные файлы. Типа BAT в винде. Мэйк можно вызывать с указанием конкретного мейкфайла. То есть достаточно вынести некоторые дефайны в мейкфайлы и собрать сможет любой. Просто запустив соответствующий батник. От вопросов же не уйти, но - можно составить FAQ :mrgreen: И отвечать на любой вопрос только однажды.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

А какие события надо привязывать к углам поворота? Разве что АЦП для ДАД. Там один зуб - одно преобразование. Искра и старт накопления энергии - функция от времени, а не от угла. Ну еще конец впрыска, но опять же думаю дискретности шкива хватит. Сильно завязываться на ДПКВ я не хочу. Система должна ездить и при отсутствии ДПКВ. От одного ДХ в распределителе. Это как бы минимальный вариант.И в нем все тоже должно работать.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by STC »

Ну, например у меня еще привязывается:
начало слушания детонации
конец слушания детонации
формирование импульсов для эмуляции ДХ (народ ставит SECU-3 совместно с моновпрыском)
Начало отсчета УОЗ (за 66 град. до ВМТ начинается отсчет УОЗ)
измерение периода полуоборота (озмерение оборотов)
у тебя еще добавится минимум 1-2 канала сравнения для упр. форсунками.
Искра и старт накопления энергии - функция от времени, а не от угла
Неточно будет, в таком случае можешь смело делать от ДХ, так как от 60-2 толку не будет. В SECU-3 сделано следующим образом. За 66 град до ВМТ начинается отсчет УОЗ. Из основного цикла приходит рассчитанное значение УОЗ в градусах, на каждом зубе угол уменьшается на 6 град.(для 60-2). когда до искры остается меньше чем 2 зуба, угол переводится из градусов в тики таймера и запускается канал сравнения. Таким образом, отсчет угла жестко привязан к зубьям, таймер действует только в течении 1-2 периодов зубьев.
Если используется управление накоплением, то это событие тоже привязано к зубьям с инициализацией канала сравнения за 2 зуба. Так точнее.
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: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by STC »

Еще один момент. На высоких оборотах катушка уже не успеваетм накапливать энергию. И по хорошему может возникнуть необходимость в перекрытии фаз накопления в нескольких катушках одновременно. При наличии только одного канала сравнения, логика формирования перекрывающихся импулсов усложнится, возрастут задержки. В идеале нужно отдельный канал сравнения на каждую катушку. Для форсунок думаю аналогичная ситуация. Конечно, если у тебя будет проц в 40 MIPS и минимум 16 бит, то можешь обойтись и одним каталом - софтверная часть логики быстро обработается процом, но на 16 МИПС и 8 бит это реально тяжело. В SECU-3 испольуется ATmega32, в VEMS ATmega128 - там несколько легче, но тоже не подарок.
Это конечно актуально больше для F1 :lol: .
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: Выбор МК для впрыска (Selecting MCU for injector unit)

Post by Qwertty »

STC wrote: Пример инкрементирования volatile переменной:
А если не волатильной? Никакой разницы не будет. Два байта считать, увеличить и положить обратно. Кроме того для глобальных и статических переменных, а это 99% всех переменных к которым данный квалификатор применяется свойства можно менять на лету. Просто работая с ними через указатель. Указатель в свою очередь несложно привести к нужному типу. В итоге в одной функции переменная может быть volatile, а в другой она же - обычной. Оптимизатор хорошо разбирается в таких ситуациях обычно и дает хороший код.
С детонацией я пока вообще не определился. Ее как бы на пропане нет. Совсем. Разве что моновпрыск бензина поддержать на допканале. Тогда может пригодиться. Переделку карбового/моно мотора в распеделенный впрыск я лично не считаю целесообразной. При эих затратах проще поменять авто уже на впрысковое. Менять голову, впускной, возможно выхлоп или гайку вваривать, ставить бензонасос в бак, и т.д. - чтоб 5 кобыл получить? Это для настоящих маньяков. Проще битого донора взять и все перекинуть на свое авто. Благо номер двигателя теперь даже в документы не заносят.
Итак что же остается? Детонация. А насколько точно надо попасть в окно? Наверно никто не знает. Если я даже на 3 градуса ошибусь думаю это фатальным не будет. :lol: А на газу так и на 180 - все равно детонации нет :mrgreen:
Post Reply