Перейти к содержанию

nk300

Members
  • Постов

    45
  • Зарегистрирован

  • Посещение

Весь контент nk300

  1. Исходник теперь содержит два файла main.c, main.h. Прошивка соответственно с расширением "hex".
  2. "Не прошло и пол-года". Извиняюсь за нестабильность. Были проблемы с работой и семейные трудности. Удалось выкроить время на продолжение исследования в области микроконтроллерного зажигания. Итак выкладываю очередноую тестовую версию. Что касается изменений: Попытался нагрузить программу алгоритмом расчёта времени опережения, из записанного в двухмерном масиве значения угла опережения. С ходу эта затея не удавалась, пришлось программу переделывать. Оказалось что функции и подпрограммы, на которые пришлось поделить код, из за неконтроллируемых наложений в процессе выполнения, вызывают сбои: то пропадает импульс накопления, то импульсы холла для тахометра (они важны, т.к. являются маркерами ВМТ и расположены в точках ВМТ 1 и 4, и 2 и 3), короче идея безконечного цикла с хаотичным исполнением подпрограмм тут не пройдёт. Накопление теперь, переменная программно изменяемая, в зависимости от оборотов. (Подумываю о дополнении программы массивом значений накопления). Массив углов двухмерный с учётом давления на впуске, значения углов в массиве умножены на 16, с целью уменьшеня расчётов с плавающей точкой т.к. сопроцессора FPU у ардуины нет, а вычислять такие числа она всё таки пытается, но тратит на это много процессорного времени. Маасив теперь не занимает половину памяти чипа, т.к. я попробовал применить линейную функцию расчёта промежуточного значения угла опережения, размер массива 16*16. Эта версия пока аботает с двумя датчиками ДНО, ДУИ, немного позже выложу версию работающую с одним датчиком ДПКВ по синхрометке 60-2. main.h main.c Fuoz60_2 new array.hex
  3. Добрый день. Переделал массив задержек по соответсвию (ВАЗ классика трамблёр 38.3706.s3f), переписывал вручную значения из менеджера секу в экселевскую табличку, там у меня забита формула переводящая углы в заделжки в мкс., и потом редактировал сам массив в файле main.c. Выкладываю хекс файл и исходник для компилятора атмел студия 7. Массив можно редактировать, в целях переделки его под любой автомобиль. Пока занимался этой рутиной подумал что можно добавить второй массив для ГБО, и добавить переключатель таблиц газ/бензин. Потом обдумывал необходимость добавления концевика карбюратора для ХХ. Можно по идее оставить без концевика, тогда таблица ХХ идёт под номером 0 в массиве, как это сейчас и работает. main.c Fuoz C.hex
  4. Добрый день. Переделал свой код на Атмел Студию. Немного потестировал. Впечатления положительные. Стабильность повысилась в 2 раза, код занимает 16 кБ вместо 21кБ ардуинского. Пришлось повозится с подбором некоторых библиотек, чтобы кардинально не переписывать весь код, результатом в целом я доволен. Сейчас переписываю в свой массив задержек значений, значения обкатанных углов из s3f файла secu3, для проверки так сказать на реальном железе, осталось доделать плату переходник с ардуины на фуоз и можно тестировать на автомобиле. Сделал табличку в EXEL для конвертации значений углов в значения задержек. Надо как то придумать как этот процесс автоматизировать, а то вручную переписывать долго. Не могу понять как устроен s3f файл. Хекс редактором смотрел ни черта не понял. Fuoz C.hex Fuoz (2).txt
  5. В протеусе DUINO1 - это собственно сам фуоз. А DUINO2 - это борт.ПК.
  6. Перезалил архив исправил там кой чего, и добавил в него оба варианта. Тут по папочкам разным лежат прошивочки под ДНО - Fuoz_arduino_map_SinMet_dwel_dno. Без ДНО соотв. - Fuoz_arduino_map_SinMet_dwel ну и бортПК - Voltmetr_UOZ_RPM_2 Проэкт для протеуса с бортПК - FuozDuino_GEN60_2 Проэкт для протеуса без бортПК - FuozDuino without BPK Зажигание на Ардуино.rar
  7. Там так и было, только пришлось из прерывания зуба его исключить. У меня и так ПП прерывания ест 10мкс процессорного времени. Тут такая вешь - когда мало времени оставляешь для выполнения основного цикла - то же плохо, стабильность работы ухудшается. Похоже что прийдётся отказаться от Ардуино IDE и переходить на использование..., хотел попробовать Атмел Студию. Создаётся впечатление что ардуинский бутлоадер много ресурсов кушает.
  8. А так же версия для двух датчиков ДНО, ДУИ доработанна и в ней теперь то же есть время накопления катушек и остальные коррекции описанные ранее. Fuoz_arduino_map_SinMet_dwel_dno.ino Fuoz_arduino_map_SinMet_dwel_dno.ino.standard.hex
  9. Добрый день. Сегодня добавляю так сказать новую версию. Изменения пришлось внести в некоторых местах кардинально: напомню что прошивка уже работает по синхрометке, удалось добится нормальной стабильности импульсов угла благодаря тому что выкинул из ПП таймера всё лишнее (импульсы холла для тахометра генерируются теперь из основного цикла), добавлена возможность включать коммутаторы с определённым временем накопления катушек (время накопления пока что является величиной постоянной около 4 мс, но этот параметр можно изменять по своему усмотрению), изменена ПП искрообразования - она теперь просто процедура накопления и искрообразования находящаяся в ПП таймера (иначе если выносить её в основной цикл работает не стабильно). Из недостатков - импульсы холла поскольку они таперь вытеснены в основной цикл их стабильность на низком уровне, я решил ими пока что пренебречь, потом разберусь как их наладить. В архиве лежит две схемы симуляции, одна с бортовым ПК, другая без, для тех кому он без надобности. Зажигание на Ардуино.rar
  10. Проводил кое какие изыскания по своей программе и внёс в неё кое какие изменения: в подпрограмме математики оставил запрет на все прерывания, и переход на подпрограмму математики провожу из ПП таймера. В схеме симуляции смешал два сигнала (ДНО и tik) для наблюдений за процессом вычислений внутри синхрометки. Стабильность увеличилась. Зажигание на Ардуино.rar
  11. Fuoz_arduino_5_map_50kHz_SinMet2.ino.standard.hexFuoz_arduino_5_map_50kHz_SinMet2.ino Для тех кому интересно попробовать с запретом прерываний на время расчётов выше выкладываю скетч и дамп для тестов. Вроде бы работает, но если обороты выше 3300 об/мин. импульс опережения начинает гулять ...
  12. Добрый день. Добавляю пробную версию зажигания с определением начала отсчёта по синхрометке 60-2. Переделал несколько скетч. Решил некоторые вещи оптимизировать, например подпрограмма искрообразования выглядит теперь так: void Flash_start() { //ПП искрообразования. if (F14 == 0) {Out = PB2; offOut = PB1;} //Выбор канала образования спада импульса. else { Out = PB1; offOut = PB2;} // PORTB |= (1 << Out); //искра образуетса по спаду импульса. "Искра". На выходе необходим буферный инверсный транзистор. PORTB &= ~(1 << offOut); //digitalWrite (Out, HIGH); //digitalWrite (offOut, LOW); } т.е. вместо digitalWrite (Out, HIGH); теперь - PORTB |= (1 << Out); Вроде бы так работает побыстрее. И везде в программе постарался избавится от ардуиновских тормозов такого рода. Теперь для подпрограммы синхрометки (ДНО) RPM1 (); не используется аппаратное прерывание, на неё переход происходит на определённом зубе ДУИ из основного цикла, т.е. можно задать любое удобное место. Но всё же лучше что бы это было рядом с синхрометкой. Поменял форму сигнала холла, он теперь больше похож на холл, и по нему удобно смотреть ВМТ. Вывод (tik) необходим для контроля выполнения расчётов по синхрометке, но кому удобно синхронизировать осциллогаф по сигналу (dno), пожалуйста меняйте на него. Программа пока без учёта времени накопления катушкой, но это только пока. Поменял обработчик прерывания таймера на более аппаратный, и это тоже в целях ухода от ардуиновской задумчивости если использовать внешние библиотеки. Осталось только внести настройку под разнообразное кол-во зубьев реперных дисков и маховиков. Потому как сам езжу на ДУИ со 129 зубами маховика ваз 2101. Теперь о недоработках. Заметил некую нестабильность импульсов УОЗ если не применять аппаратное прерывание по синхрометке. Надеюсь скоро решу этот вопрос. Зажигание на Ардуино.rar Синхрометка теперь просто обнуляет счётчик угловых импульсов, и на подпрограмму расчётов угла не переходит, как это было раньше по прерыванию. Подпрограмма расчётов по времени выполняется 175 мкс, но из-за того что её прерывает таймер, её выполнение удлиняется до 600 - 800 мкс, что многовато, но никак нельзя запрещать аппаратные прерывания на время вычислений, потому как сбивается подсчёт угловых импульсов. Я пока думаю как разрулить этот нюанс.
  13. С твоим бортовым ПК я знаком давно, то же слежу за темой, хотел как то разобраться как принимать данные по uart с СЕКУ3 чтобы на свой маленький дисплей 16*2 данные выводить, а то на дисплей побольше денег жалковато. Сейчас собираюсь как раз драйвер низкоомных форсунок собирать - tbz на 4 форсунки omvl 3 ома. Оффтоп опять. Видео я твоё тоже давно смотрел. Этой темой давно интересуюсь. Спасибо за поддержку.
  14. Немного допилил скетч Бортового ПК - убрал лишнюю математику и поправил отображение на дисплее. Voltmetr_UOZ_RPM.ino Voltmetr_UOZ_RPM.ino.standard.hex
  15. Ну если так то ладненько. Могу посоветовать хороший проект Секу3, можно приобрести уже готовый блок и ничего не придётся программировать, обкатываю его уже второй месяц, впечатления - положительные. Мой фуоз на ардуине - нервно курит в сторонке.
  16. Зачем тогда на эту ветку форума зашёл если делать ничего не хочешь, купи себе готовое и не морочь людям голову!
  17. Зачем для ардуины программатор??? !!!
  18. Там нет необходимости менять всю программу, а только массив данных содержащий углы. А это 16 строк цифрового текста всего лишь. И я его ещё обозначил комментариями, найти не сложно. Информатику в школе кто учил тому хватит знаний понять, что редактировать, про ардуинщиков и любителей микроконтроллеров, я вообще молчу. Программы не разные, только массив будет отличаться. И исходник есть и готовый флеш. Исходники в последнее время авторы не спешат обычно выкладывать - время нынче непростое - капиталистическое. Исходник для того и выложил чтобы массив можно было править. Я это всё делал из собственного интереса, не планирую на этом что то зарабатывать - автомобилей старых карбюраторных уже маловато становится, тема несколько запоздала. Себе на свой старенький авто, я уже установил ЭСУД другого проекта - более успешного и продвинутого СЕКУ, и в принципе им доволен. Там кстати хороший менеджер есть, для правки таблиц. А этот делаю для саморазвития и обучения, как нибудь при возможности проверю его на своём авто. Предыдущая версия с синхронизацией на двух магнитиках, на шкиве коленвала, на моём авто нормально не заработала, заводиться но с подклинами и во время работы хлопки то в карб то в выхлоп. Надеюсь что синхронизация по ДПКВ более точна и надёжна испытаю и будет видно.
  19. Подойдёт любая на 328 меге - про-мини, нано, уно. Для симуляции в протеусе должна быть добавлена библиотека Ардуино.
  20. Схемы согласования с ДПКВ в протеусе нет, но она ни для кого не является секретом, разнообразных вариантов полно в сети в том числе и на этом форуме.
  21. Добрый день. Принимайте новую версию микропроцессорного зажигания на Ардуино. Что добавлено: 1)Добавлен измененный массив углов (двухмерный) под 16 расходов воздуха т.е. на каждый расход воздуха своя табличка углов от оборотов, идею скомуниздил у Секу. Исходник в архиве, массив можно редактировать на любое авто. 2)Избавился от микропроцессорного эмулятора шкива 60_2 и заменил его аппаратным на микросхемах. (работает гораздо быстрее и надёжнее), изобретал его 2 дня. 3)Переделал программу, убрал октан-коррекцию; определение оборотов идёт теперь по длительности углового импульса; пришлось перенастроить таймер не меньшую частоту т. к. пп таймера не успевала полностью выполниться за отведённые ей 10 мкс. (теперь 20мкс); первая линия в массиве (мар) отведена под холостой ход, пока так потом добавлю концевик карбюратора возможно; более точное попадание в пп искро-образования в момент искры по конкретной дискрете пп таймера. Так вроде всё. 4)Можно использовать двухканальный коммутатор подключенный к выводу (out14) или два одноканальных, второй канал это вывод (out23). Эта версия пока не умеет полноценно работать от шкива 60_2, работает как ДНО-ДУИ на 60 зубов. Но в ближайшее время выложу версию и под полноценный 60-2. п.с. Вторую ардуину с показометром 16х2 можно не использовать, зажигание работает от одной ардуинки. Ардуино зажигание 60 2.rar
  22. На моём авто на данный момент стоит вариант ДНО-ДУИ, маховик ВАЗ 2101 (129 зубьев) ДПКВ пришлось на кожух сцепления снизу с ямы установить, ставил на авто не снимая КПП. Сверлил кожух сцепления, изготовил крнштейн для ДПКВ из листа нержавейки 2мм толщиной. Подсматривал и считал зубья (синхрометка за 72 зуба до ВМТ) через при отогнутый слегка кожух внизу КПП, Зубья маркером помечал, что бы не сбиться. Потом датчик холла от кулера или от дисководов FDD установлен на самодельном кронштейне - по чертежу с сайта В. Шкильменского, возле шкива коленчатого вала и в месте синхрометки приклеил на холодную сварку магнит от оптики CD-ROM-ов. Таким образом реализовал ДНО. Шкив 60-2 у нас нынче в Донецке аж 900руб. стоит а передняя крышка около 800р. Цены кусаются. Потому заколхозил такой бюджетный вариант. ДПКВ(ДУИ) от ВАЗа покупал за 450р.
  23. Спасибо за пояснение. обдумывал более сложную комбинацию, но это вариант проще и понятней. Я думал измерять длительности на каждый зуб и сравнивать именно длительности зубьев, если очень длинный - синхрометка.
  24. У проказометра осталась возможность измерять угол без ФУОЗа, просто от датчика холла тбамблёра и датчика холла магнитика на шкиве. Магнит на шкив приклеить в ВМТ.
×
×
  • Создать...