Периодически искал материал в нете по управлению зажиганием, схемы, идеи. Несколько раз возникало желание собрать МПСЗ или ей подобные (SEKU и др.). Но что то останавливало. То ли лень, то ли цена вопроса, то ли еще что-то. Да и не хотелось ставить на машинку то, алгоритм работы чего ты с трудом понимаешь. Откручивать кучу деталей с двигателя, что-то там сверлить. Лепить кучу нештатных датчиков, информация с которых обрабатывается неизвестным образом. Возможно, не прав, но в итоге МПСЗ у меня нет. Но может, еще дойду и до этого.
Померил как-то характеристику УОЗ своего бесконтактного трамблера, по методике описанной здесь (http://www.moeauto.r...nt/mot_011.html). Получилось примерно вот что (рис.1). Такая характеристика мне явно не понравилась. Что явилось последним толчком к действию.
Мой УОЗ.jpg 54,34До 237 Кількість завантажень:
рис.1
В очередной раз попалась на глаза известная схема устройства А.Долганова (http://alex---1967.n...Z_dolganov.html). Покрутил я ее в руках. И решил разобраться как работает. Ведь схемка простейшая. Идея неплохая. Почитал отзывы товарищей реализовавших устройство (например, http://forum.ixbt.co....cgi?id=48:5576). Оно в принципе работало, но как то уж очень странно. По всей видимости косяк в программе микроконтроллера (МК). Почитал, посчитал программку. Таки да, есть косяк. Устройство регулировало УОЗ в соответствии с рис.2. При такой характеристике УОЗ сложновато нормально ездить.
УОЗ Долганов.jpg 61,32До 150 Кількість завантажень:
Рис.2
Раньше микроконтроллерами не занимался. Почитал про PIC-и. Не понравились они мне. AVR показались более привлекательными. Система команд пошире. И главным на тот момент было то, что исходные данные для программы можно хранить без всяких заморочек во флеше и легко их считывать. Было решено применить. ATtiny85, имеющую 8 ножек. Почему? Много памяти флеш (8кБ). Наличие DIP корпуса (ну нет у меня инструментов для работы с «жучками» со спичечную головку и несметным количеством ножек). Плюс к этому, функций устройство должно было выполнять не много (то есть нужен был вход, выход и пара выводов для управления, на всякий случай). В итоге схема (рис.3) получилась практически идентичная первоисточнику с небольшими дополнениями. Схемку собрал прямо на макетной плате (рис.4, 5). Еще вывел колодки для внутрисхемного программирования, отладочного питания и светодиод для контроля питания. Для программирования использовал программатор «пять проводков» через LPT и программу PonyProg. При внутрисхемном программировании нужно снимать перемычку S1 или замыкать вход от ДХ на землю (влияет на МК первый инвертор, не дает читать и программировать).
[ATTACH]5255[/ATTACH]
Рис.3
[ATTACH]2283[/ATTACH]
Рис.4
[ATTACH]2284[/ATTACH]
Рис.5
Одним из основных недостатков подхода использованного у Долганова считается (по обсуждению http://forum.ixbt.co....cgi?id=48:5576) то, что для расчета УОЗ используется значение скважности (точнее коэффициента заполнения (КЗ)) импульсов с ДХ. На мой взгляд, в этом подходе есть и плюс, который заключается в том, что используя скважность мы можем выставить нужный УОЗ в том же периоде сигнала с ДХ, в котором проводим измерения, а не заниматься усреднением за несколько периодов и выставлять опережение уже со «значительны опозданием», как например в МПСЗ (если не ошибаюсь) или «Радио», №11, 2008. Остается только определить КЗ импульсов с вашего трамблера, а дальше все расчеты проводить исходя из полученного значения. Поэтому в первую очередь была написана программка [ATTACH]2285[/ATTACH] просто записывающая по нажатию кнопки на месте S2 в EEPROM, последовательно длительность высокого и низкого уровня на входе МК (период счета t=5мкс). Измерения желательно проводить на прогретой машинке, на стабильных, можно различных оборотах. Цепь от 6 вывода МК при измерении КЗ разрывается, к выводу подключается светодиод через резистор. После нажатия кнопки загорается светодиод и горит около 2 секунд. Как только светодиод погас можно делать следующее измерение нажатием кнопки. Измерений можно делать сколько угодно, да и чем их больше тем лучше, но сохранятся только последние 128 (ограничение объемом EEPROM, при каждом измерении 2 байта выделено для значения длительности высокого уровня N1, и два байта для низкого N2 (уровни указаны по входу МК с учетом работы первого инвертора на транзисторе VT1)). Далее читаем той же PonyProg данные с EEPROM. Берем калькулятор (можно было тогда поморочиться с расчетом КЗ в МК, но было лень) и рассчитываем средний КЗ сигнала на входе МК (N1/(N1+N2) ). У меня получилось - 0,33534. Что не сильно отличается от стандартного значения 0,3333(3). Но учитывать разницу все-таки надо. Таким образом, неопределенность о скважности мы снимаем.
Теперь переходим к самому регулятору УОЗ. Коротко о принципе работы устройства (если еще кто-то не прочитал первоисточник Долганова). Первым делом МК считает длительность пребывания ДХ в прорези шторки (низкий уровень на выходе ДХ, высокий на входе МК (PB0)) с предустановленным периодом счета (у меня t1=5 мкс), при этом держа на своем выходе (PB1) низкий уровень (т.е. сигнал с ДХ проходит через два инвертора свободно, не изменяясь). Далее по началу низкого уровня на входе, МК считывает из флеш заранее рассчитанную константу УОЗ или сам рассчитывает константу УОЗ для полученного на первом этапе числа (ни того ни другого у Долганова не было, константы были фиксированы для двух участков (а не для конкретного числа) стандартной трамблерной характеристики УОЗ, что и приводило к «непредсказуемым» последствиям). Вычитает константу из этого числа. Учитывает время считывания константы или ее расчета. И начинает обратный счет с периодом t2, который определяется исходя из КЗ импульсов и не может быть меньше чем t1=((1-КЗ)/КЗ) (у меня период обратного счета 10 мкс). От выбранного периода обратного счета в свою очередь зависит значение константы УОЗ. По моменту обнуления счетчика на обратном счете, МК поднимает на своем выходе (PB1) высокий уровень, обеспечивая необходимое опережение зажигания. И ожидает появления на входе очередного высокого уровня.
Исходя из указанных выше вариантов функционирования, устройство прошло несколько этапов модернизации.
Вариант первый. Был осуществлен в кратчайшие сроки из-за своей простоты программной реализации (уж очень хотелось почувствовать результат). Несколько дней пришлось посидеть над бумагой, чтоб получить правильные формулы для расчета констант УОЗ. Расчет был реализован в Mathcad [ATTACH]2286[/ATTACH], как в наиболее знакомой мне среде для проведения достаточно сложных расчетов и программирования. И пару дней пришлось убить на отладку программы.
Полученные константы заносятся в память флеш МК (вот и пригодились все 8кБ памяти программ). Ну тут никуда не денешься, упростили работу МК, но заплатили за это размером используемой памяти. Программа [ATTACH]2287[/ATTACH] просто считывает необходимую константу, соответствующую полученному в счетчике числу. Вычитает ее из счетчика. И выполняет обратный счет. Кто захочет протестировать прошивку - пожалуйста файлик для Proteusa [ATTACH]2288[/ATTACH]. В прошивку занесено две характеристики УОЗ (рис 6,7). Первая реализует стандартную трамблерную характеристику, вторая близкую к трамблерной, но гладкую кривую. Переключение происходит тумблером S2 (при замыкании на землю входа МК включается вторая кривая УОЗ). Подтягивающий резистор к входу подключен в МК.
[ATTACH]2289[/ATTACH]
Рис.6.
[ATTACH]2290[/ATTACH]
Рис.7
Второй вариант. Он реализует расчет констант УОЗ в самом МК. Вот прошивка МК - [ATTACH]2291[/ATTACH]. Переключение кривых УОЗ происходит таким же образом, как в предыдущем варианте. Первая характеристика типа динамичная (рис. 8) (здесь возможно нужно будет поднять начальный УОЗ до 20 градусов поворотом трамблера), вторая аналогична гладкой кривой первого варианта.
[ATTACH]2292[/ATTACH]
Ри.8.
За счет внутреннего расчета констант, значительно сократился объем необходимой памяти. Т.е. теперь устройство может быть реализовано на ATtiny45 или ATtiny25.
Первый вариант проехал 100 км до модернизации. Второй уже 200 км. Установлен в подкапотное пространство. Можно установить и в салон. Проблем с функционированием не было. По ощущениям, машинка стала ехать ровнее, меньше тупизны в районе 2200 оборотов, лучше набирает обороты и откликается на педаль акселератора. Но идеальным поведение машинки не назвать особенно в районе 1500-2300 оборотов. Надеюсь подобрать для нее наилучшую кривую УОЗ. Тут пока самая проблема. Если будут в этом направлении советы, с радостью выслушаю. Сама установка занимает не более получаса. Разрезаем зеленый проводок от ДХ. Ставим контакты (на один конец «маму» на другой «папу», чтоб при необходимости все можно было быстро вернуть обратно). Подводим питание и землю. В разрез подключаем устройство. Не забываем закрепить грузики в трамблере. А возможно и тягу вакуумного регулятора УОЗ, если он не используется. У меня Вебер. Сверлить мне его для подключения вакуумника не хочется. Иногда грузики предлагают прихватить сваркой. Но думаю, найдется и менее варварский способ. Опять же при необходимости все можно будет быстро вернуть как было. Пружинки с грузиков можно снять. Но с собой их возить стоит (опять же на всякий случай). Не забудьте отметить где какая стояла, когда будете снимать. Можно подстроить начальный угол опережения поворотом трамблера.
Третий Вариант. Пока реализован только программно и прогнан в Proteus. По сути это почти вариант 2, но с возможностью регулировки начального угла опережения зажигания (НУОЗ) в пределах от 0 до 20 градусов. Теперь вместо S3 и S4 подключено два резистора по схеме (рис. 9). Изменение НУОЗ происходит перемещением ручки потенциометра. Потенциометр нужно взять с линейной характеристикой. И вообще, к подбору потенциометра нужно подойти очень аккуратно.
[ATTACH]5248[/ATTACH]
Рис.9.
В этом варианте мы уперлись в ограниченное число выводов МК. Регулировка НУОЗ есть, а чем же переключать кривые УОЗ? Во-первых, если нащупать наилучшую характеристику УОЗ для машинки может и не надо будет ничего переключать. Во-вторых, можно использовать для переключения ножку RESET. Правда, в этом случае возникнут сложности с перепрограммированием МК. Но это уже другая история. В-третьих, можно попробовать перейти на встроенный генератор и освободить выводы PB3, PB4. В-четвертых всегда можно перейти на более ножечную микросхему, при незначительном изменении кода и схемы (в запасе уже лежат 26-я и 84-я tiny). Это позволит реализовать новые возможности. Так глядишь, до микропроцессорного зажигания дойдем. Возможно, в ближайшем будущем, надо еще подумать и учесть зависимость УОЗ от нагрузки на двигатель, в замен вакуумника. Кто знает, как учесть, подскажите.
Многие могут сказать, что все это уже сделано и все это вчерашний день. Нужны ДПКВ и пр. Особо спорить не буду. На суперновизну не претендую. Но если кто-то заинтересуется или кому-то устройство поможет исправить кривые руки производителей трамблеров, буду рад. Плюс к этому, повторюсь, устройство не требует кардинальных изменений в машинке. Если, что с ним в дороге случиться, все легко можно вернуть в положение «как было».
Повідомлення відредагував bn1: 14 серпень 2011 - 00:09