Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить

ФУОЗ на базе AC-CDI

Чт июл 02, 2015 00:31:54

Всем любителям мото-техники представляю новый проект. Началось все с того что имеется мотоцикл китайского производства Lifan, с двигателем 162fmj 150сс. И оказалось, этот двигатель вовсе не имеет никакой системы опережения, как и большинство его китайских собратьев. Поскольку для котолюба, идти в магазин и покупать готовенькое стыдно, да и денег маловато, было принято решение сварганить велосипед сходу. Месяц поисков и штудирования теории вылились в пластике и текстолите. На данном двигателе применена электронная система зажигания с накоплением энергии в конденсаторе AC-CDI, датчиком служит катушка на статоре магнето.

Изображение

Изображение

В оригинале все же применили некоторый механизм опережения, правда достаточно примитивный. С завода стоит "умный" аналоговый модуль, который срабатывает на низких, оборотах от второго негативного(уоз 5°), импульса датчика магнето, и на высоких, от первого позитивного(уоз 20°).

Изображение

При этом, как показал осциллограф, переключение между высокими и низкими происходит примерно на 3500 об/мин.

Изображение

Это не могло радовать, более того, при испытаниях штатного CDI выяснилось, что он как раз ис-за такой "умной" компоновки, на отрез отказывался активироваться импульсом, без двойной полярности. Прибавилась проблема менять модуль CDI, не покупать же его. Вот и собирал модуль ФУОЗ в комплекте с CDI, дабы не увешивать еще кучу плат. Большинство ФУОЗ на микроконтроллерах идентичны, не стал исключением и этот экземпляр. Изначально ставил себе задачу сделать проще и дешевле. Формирователь угла опережения работает от штатного индуктивного датчика двигателя, это упрощает монтаж, и по сути содержит всего один новый провод, питание +12В. Сперва входной импульс мерил транзисторной связкой, но немного погодя, в дань моде, остановился на оптронном входе, вот схема устройства:

Изображение

Немного по плате: входной сигнал, точнее его позитивная часть(для моего двигателя это 20°), через диод и ограничительный резистор попадает на оптронный датчик, с него на ножку 2 МК(PortD0), сопротивление резистора подбиралось экспериментально, для уверенного срабатывания на низких оборотах. С выхода 23 МК (PortC0) сигнал "искра" проходит через пару транзисторов, и попадает на вход CDI, который построен по известной популярной схеме. Транзисторы нужны как буфер между МК, и так же повышают сигнал с ТТЛ уровня, до напряжения питания аккумулятора, что улучшает надежность срабатывания тиристора коммутатора. МК Atmega8, в схеме применен кварц 4МГц. На схеме не показан разъем программатора USBASP, распиновка стандартная.
Программа писалась в ассемблере, AVR Studio 4. В коде задействованы счетчик 16-бит, переменные, и ОЗУ для хранения таблиц опережения. Коротко о алгоритме работы: работает на запаздывание, кварц обеспечивает срабатывание импульсов счетчика 16-бит. При поступлении импульса фиксируется счет, по нему определяются текущие обороты двигателя. По значению оборотов определяются табличные данные угла опережения, далее идет расчет реальной задержки(умножается % от оборотов на величину УОЗ), и обнуление счетчика. При достижении счетчиком значения задержки выводится импульс на ножку "искра". В алгоритме учтен режим завода двигателя, при переполнении счетчика и поступлении "первого" импульса, расчет производится по нулевому адресу УОЗ, в исходниках там записан угол +5°, для наилучшей "заводимости". Так же при выходе на некоторую "скорость" вращения алгоритм выходит на работу без задержки, режим максимальные обороты, максимальный УОЗ. Небольшой момент по программе, в коде указанна не чистая величина задержки, а величина количества задержек. Реальная задержка рассчитывается как:"количество задержек умноженное на 1.4°, минус угол датчика". Так же, для облегчения настройки, сделано переключение таблиц задержек, производится путем подачи тумблером(припаяны проводками к ножкам МК), низкого уровня на входы 27, 28(PortC5, PortC4). При этом отсутствие низкого уровня активирует таблицу один, низкий на PortC5 включает вторую, и низкий на PortC4 третью таблицы. Прошивка, схема и исходники прилагаются.

Изображение

Изображение

Изображение

В конечном счете получилось достаточно компактное устройство, немного больше оригинального коммутатора. На некоторой стадии разработки к устройству был подключен ЖКИ HD1602, для контроля параметров работы и настройки, позднее выпилил за ненадобностью. Доводка состояла в подборе номиналов резисторов CDI для надежного срабатывания на низких оборотах и при заводе мотоцикла. Сильно порадовал тест на проблемное питание. Например что делать если в пути аккумулятор приказал долго жить. Ведь МК нужно питание для работы, штатный коммутатор работал оффлайн от бортовой сети. На практике, даже с отключенной клеммой аккумулятора, питания с магнето было достаточно, чтобы включилась плата ФУОЗ, и произвела запуск двигателя, даже без особого усилия на кик стартере. В данный момент устройство еще находится на обкатке, дорабатываются таблицы, с оптимальными значениями, для двигателя 162fmj 150сс. Прирост мощности от установки ФУОЗ не большой, не особо ощущается(в моем случае из-за малого объема двигателя), но заводится мотоцикл стал в разы лучше. Так же по просьбе трудящихся планируется сделать программу, для редактирования таблиц УОЗ, без перекомпиляции исходников.

_____
Отдельное спасибо товарищам с вк, хоть они и не узнали о моем существовании, но информации со страницы было достаточно, для доводки устройства. Так же спасибо тов. Arwood за дельные советы и замечания.
Вложения
FUOZ.rar
Схема в SL6
(13.84 KiB) Скачиваний: 2455
CDI.rar
Исходники в AVRStudio4, ассемблер, +hex
(9.96 KiB) Скачиваний: 2293
AC-CDI.rar
Схема в протеус 7
(17.13 KiB) Скачиваний: 2340
Последний раз редактировалось Flash.#13 Чт июл 02, 2015 14:46:40, всего редактировалось 2 раз(а).

Re: ФУОЗ на базе AC-CDI

Чт июл 02, 2015 09:05:53

Флэш, задействуй ещё пяток выводов. (тебе ничего не стоит, а людям, тем, кто любит новогодние ёлки, приятно.)
Добавить сборку 2003. И имеем индикацию светодиодами - +12в., + 5в., входной сигнал, выходной сигнал. Для выходного сигнала - спарить два входа на 2003. Тогда - выходной сигнал - индикация наличия светодиодом и отдельно - выход на внешний яркий светодиод (стробоскоп).
мой вариант схемы прилагаю (без 2003). Обусловлено наличием субплат (проверенных) и внешним блоком питания (на радиорынке - цена импульсника на 5в/2А - 150р (2у.е.), лень мне за такие деньги паяльником махать).
Коммутатор - оставил внешний. (опять же - я их делаю помногу и они есть. а, в случае нужды на дороге - можно прикупить в любом скутер шопе).
Переключатель (известно из опыта) удобно ставить на руле. Кнопка/клавиша на три положения - левая масса, ноль, правая масса.
Тогда - в программе надо поставить графики в том же положении: первая масса - нижний график, ноль - средний график, и вторая масса - высокий график.
Адаптер на 393 у меня залит (полностью) поксиполом и стоит непосредственно возле разъёма с генератора. Работает уже - лет пять. А чё ему станется?
Всё делаю на СМД.

Зашит ли Сторожевой Пёс в программе? Или надо доделать Ресет?
Вложения
ФУОЗ.JPG
(208.92 KiB) Скачиваний: 3075
Последний раз редактировалось Arwood Чт июл 02, 2015 12:10:28, всего редактировалось 1 раз.

Re: ФУОЗ на базе AC-CDI

Чт июл 02, 2015 11:48:36

Еще немного по устройству, примерный график первой таблицы вот такой:

Изображение

График специально не стал рисовать сплавленными линиями, на практике все ФУОЗ работают именно с областями в виде плато, и только по переходу частоты вращения меняют эти области. Заводить двигатель ранним зажиганием оказалось намного легче, ну а с выходом на стабильные холостые угол нужно поднимать, это увеличивает обороты. Программа МК обеспечивает 31 точку графика, правда с них задействовано 26. В среднем точки идут каждые 300-500 оборотов. Еще один недостаток программы, точность установки УОЗ 1.4°, и точнее пока не реализовано в алгоритме, это возможно, но при езде разницы даже в 5° не удалось почувствовать, вот и не стал делать более мелкую градацию. Максимальный угол опережения привязан к датчику, в моем случае это 20°, МК будет работать любым датчиком, и с любым углом, все что нужно это подкорректировать значения в таблицах. Чуть не забыл, самое главное - ФЮЗЫ. МК работает с внешнего кварца, поэтому зашивать их таки придется. Все настройки для кварца без ограничения мощности, пример на фото:

Изображение

Изображение

Кстати, если кто не в курсе, ФЮЗЫ записываются один раз, отдельно от *.hex файла. И работают всегда до полного стирания МК. При последующей перезаписи прошивки *.hex, фюзы перезаписывать не нужно.

По поводу Reset, пин 1, PortC6 ни в коем случае не трогаем программатором, иначе МК будет не возможно зашивать через "пять проводков". Более того в контроллерах атмел, на выводе резет с завода установлен подтягивающий резистор, поэтому тянуть на него питание нет необходимости, можно подключить к программатору, и повесить в воздухе. Сторожевик в программе не задействован, случаев зависания подобных конструкций, более чем за год не обнаружено, в нем нет необходимости. Да и механизм рестарта не столь быстродействующий.

Arwood, не проблема, только что такое сборка 2003? Если это ЖКИ 20х03, то огорчу, у меня его реально в наличии нет, есть только 16х02. Идикация светодиодами делается как два пальца, правда там желательно прикрутить еще по транзистору для каждого канала, как не как 20мА. Схема в принципе не важна, МК можно пихать куда угодно, все чего нужно это его ногам обеспечить ТТЛ уровни. А вот 5в, да еще и импульсник это уже огород, вместо одной L7805, к тому же во всей схеме деталей на 3.5уe. Импульсные БП враг для МК, особенно когда конденсаторы подсохнут))
На СМД ничего не делаю, привык к выводным деталькам, может это мой архаизм...
Последний раз редактировалось Flash.#13 Чт июл 02, 2015 15:01:00, всего редактировалось 3 раз(а).

Re: ФУОЗ на базе AC-CDI

Чт июл 02, 2015 12:22:13

Подправил выложенную схемку (привёл в соответствие выводы).
Заодно дорисовал там, 2003. Это транзисторная сборка (я не знаю, бывает ли она в ДИПе).
А по питанию - то, что я покупаю, стоит дёшево, выполнено качественно (пульсации 0.03в.) и конденсаторы там - танталовые. Ну да не существенно - питание каждый делает из того, что есть под рукой.

Re: ФУОЗ на базе AC-CDI

Вс июл 05, 2015 01:35:06

По просьбе трудящихся написал визуальную программу для изменения таблиц УОЗ в откомпилированном файле *.НЕХ. Теперь это комплект, ФУОЗ - прошивка - и софт для правки. Писалась в Delphi 7, *.ехе файл будет работать на любой версии виндовс, прога еще сыровата, будут пожелания - улучшым. Немного по эксплуатации софта, в коде внедрена защита от бяки в таблицах, и автоматическое распознавание номера таблицы (1,2,3). Правда если сбросить вместо штатного НЕХ кода что либо другое, по нажатию кнопок программа зависнет. Так же при некорректном заполнении таблиц УОЗ, возможен вылет с ошибкой. В любом случае для изменения НЕХ файла необходима внешняя программа, например WinPik800, так же не забываем выбирать МК AtMega8, в полях параметров WinPik. Кроме прочего, поле выбора первоначального угла, в программе, не изменяет его в прошивке, данные будут корректны, только если выбран верный угол, в противном случае произойдет сдвиг, по разнице между величиной опции, и настоящим углом датчика. Для большинства китайский мотоциклов, угол срабатывания датчика составляет 20 градусов.

Изображение
Вложения
ФУОЗ на базе AC-CDI.rar
Программа с инструкцией по експлуатации
(516.63 KiB) Скачиваний: 1891

Re: ФУОЗ на базе AC-CDI

Сб сен 05, 2015 15:38:57

А есть кто себе уже поставил на мопеды? Интересно как работает. Хочу себе на Альфу поставить.

Re: ФУОЗ на базе AC-CDI

Вт сен 08, 2015 11:59:39

Скорей всего нету, кроме Arwood'а этим проектом особо никто не интересовался, почти все катаются на четырехколесных. Работать оно то будет везде, хоть на совковом минске, хоть на мопеде, но без должной подстройки таблицы под конкретный двигатель эффект будет минимален. Лучше всего подстраивать в исходном коде(ассемблер, но там все подписанно), хотя есть и прога, но она сыровата. Объездил немного плату на мотоцикле с двигателем 150СС, экономии топлива как таковой, нет вовсе, особой разницы в езде так же. Немного улучшилась динамика набора оборотов(10-15%), звук двигателя на низких немного поменялся, но в целом разницы, до и после, особо не чувствуется. Так же осталась не до конца решенной проблема температуры, опытным путем было установлено, что в холодном и прогретом двигателе, нужны разные значения УОЗ, в идеале нужно чтобы МК знал температуру двигателя(или кнопку делать: "холодно", "жарко"), и корректировал таблицу. Но изначально делал все это как можно проще, а теперь видно нужно усложнять. Та же проблема касается старта, холодный двигатель с пол тычка заводится на сильно позднем зажигании(+15...+20гр.), но уже прогретый только на нормальном (-5...+2). В общем нюансы остались а руки не доходят...

Re: ФУОЗ на базе AC-CDI

Вс дек 27, 2015 16:02:05

Смущает эта строчка из кода -
mov R6, R9 ;копируем 1/256,(0.2%) от счета 16-бит
lsr R6 ;1/2,шаг смены угла 720°/512=1.4°

По идее шаг должен увеличиться в 2 раза, т.е. 2,8°

Re: ФУОЗ на базе AC-CDI

Вс янв 03, 2016 00:01:50

lsr - логический сдвиг вправо, это равносильно делению на два. А вот lsl будет сдвигом влево, и это будет умножением... В этом блоке определяется 1/512 от времени счета, как бы шаг квантования работы системы опережения, и уже далее, с выбранной таблицы, этот "шаг" множится на константу с графика, давая реальный угол сдвига этого оборота. Основная фишка в том, что на мото-технике датчик положения обычно закреплен с некоторым опережением, примерно -20 градусов. Зная частоту оборотов программа успевает "поймав" сигнал угла рассчитать нужный угол, и в этом же обороте успеть его "бахнуть" на искру с нужной задержкой. Правда в программе реализовано сразу несколько режимов работы, первый это старт, когда мотоцикл заводится либо работает на холостых, при этом счетчик переполняется через FFFF$, и зажигание происходит по оптимальной константе, второй - рабочий расчет, и третий, который запросил Arwood, расчет на предугадывание, для углов меньших чем угол датчика, за ним закреплена первая таблица, хотя на практике он оказался немного не стабильным, больше нравится таблица номер два. Эта штука отъздила пол года и примерно 500км, показала себя только с положительной стороны, более того когда привыкли, для сравнения поставили "штатный", и стало реально не то. Продолжает эксплуатироваться, отказов пока не было, в планах доработка, установка термодатчика, чувствуется, прибору нужно корректировать таблицу на "холодную и горячую"...

Re: ФУОЗ на базе AC-CDI

Вс апр 24, 2016 12:12:39

Добрый день проконсультируйте те карты с углами зажигания написаны под 150 см3??

Re: ФУОЗ на базе AC-CDI

Пт апр 29, 2016 09:27:02

Да, все делалось для Alfamoto Viking YM 150, (150см3). Хотя карты легко править, и можно влепить куда угодно, где используется конденсаторное зажигание. Устройство полностью законченно, и легко интегрируется в мото, при этом в самом мото ничего не меняется(ипользуется штатный датчик и гнездо старого зажигания). Правда, в связи с отсутствием интереса публики, программа для винды, так и не была законченна, она больше демонстрирует текущий график, но до конца не сохраняет, разве только ручками. Но исходники править ничего не мешает...

Изображение

Re: ФУОЗ на базе AC-CDI

Пт апр 29, 2016 16:08:15

Памяти много, но и ступенек почему то много.

Re: ФУОЗ на базе AC-CDI

Пт апр 29, 2016 20:25:30

pcb, не совсем понимаю, о чем вы?

Re: ФУОЗ на базе AC-CDI

Сб апр 30, 2016 00:31:27

Изображение

Re: ФУОЗ на базе AC-CDI

Сб апр 30, 2016 06:16:24

Flash.#13 писал(а):Правда, в связи с отсутствием интереса публики,

Но сам-то - попробовал? Убедился? Попробуй отключи теперь и покатайся пару дней на стоковом. Убедишься, с ешё большей очевидностью. (и это при том, что график ещё не доведён)

Re: ФУОЗ на базе AC-CDI

Вс май 01, 2016 08:22:32

спасибо за ответ данную схему собрал прошил внедрил (идея изумительная) все работает и радует !!!!!!!
только вопрос в другом двигатель не крутится до своих паспортных данных (типа 8000) по геометрии самого двс и системе грм он должен делать это легко но увы упирается в 4200 и все такое ощущение что зажигание не дает !!
как я понял на данной системе зажигания искра формируется два раза за такт !
не может быть так что зажигание видит это 8000 формирует сигнал а по факту получается 4000!!!
помогите уже голову сломал проверил все метки фаз зазоры !
заранее извиняюсь если где то не вижу очевидного и туплю не обессудьте
а еще залил ваши углы ни чего не корректировал и не изменял

Re: ФУОЗ на базе AC-CDI

Вс май 01, 2016 08:29:20

Нет. Не два раза за такт. Один. В верхней точке.
А упирается - в задранный угол опережения. Надо править график под свой мотор.

Re: ФУОЗ на базе AC-CDI

Вс май 01, 2016 08:33:53

и к стате как можно подвизаться к МК чтобы посмотреть обороты ???
и еще было бы не плохо не плохо добавить датчик температуры воздуха и датчик разрежения воздуха что бы была привязка к ручке газа имеется совмещенный датчик BOSCH 0 281 002 576 ТАМ все в одном корпусе
ну это так мысли идеи мечты

Re: ФУОЗ на базе AC-CDI

Вс май 01, 2016 08:35:50

тогда расскажите балбесу как это сделать более коректно

Re: ФУОЗ на базе AC-CDI

Вс май 01, 2016 08:50:45

Видишь, Флэш? Всё, как я и говорил.
Температура, разряжение, возможность подключения тахометра.

По тахометру, отвечу за него.
Это переведёт устройство в следующую ценовую категорию.
Впрочем - датчик разряжения, тоже не дёшев.

Правят графики не быстро. Тестируя жопомером.
Подправил - проехался-сравнил.
Ответить