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

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

Чт ноя 14, 2019 19:20:40

Для снятия нагрузки со внутренних транзисторов контроллера. (Дольше порт проживёт)

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

Чт ноя 14, 2019 20:48:52

А тем временем патчик подъехал :))). Если не сбился со чета, версия 2.1. Что удалось реализовать? Ну самое важное это устаканилась работа обоих импульсов датчика, реализовал идею предложенную asel, на низких оборотах МК отталкивается от второго "позднего" импульса, как источника определения текущей скорости, используя интервал между метками. На высоких режим как раньше, точка отсчета первый "ранний" импульс, используя интервал полного оборота. Так же был убран режим "предсказания", счет искры выше раннего импульса.
На стробостенде работает без нареканий, осталось запустить на мото. В текущей версией кода возможности на низах сильно выросли, теперь МК стабильно отрабатывает счет вплоть до 60..80 об/мин, с высокой точностью выдерживания искры. В программе графиков все по прежнему, коде присутствует автозамер второй метки, как и раньше, можно считать из ПЗУ, либо замерить в реале, и ввести ручные. Приоритет у ручных настроек, они запрещают МК делать автозамер, просто если ничего не править, то он попытается выяснить неизвестные величины самостоятельно. По связи с ПК(UART) и вакуум-корректору пока ничего не делалось.



На видео камера, как и всегда, подтупливает со стробо-эффектом, не всегда записывает мерцание и метку, в реальности вспышки на месте, пропусков до отсечки нет. Схема и фюзы старые, описание прошивки в мануале. Для корректной работы нужны оба импульса, положительный обычно первый, но гипотетический должно работать и с одним. Важно! ПО графиков всех версий не будет работать, если имя папки содержит кириллицу, либо очень длинное. Версия не окончательная, вполне возможно что-то еще выплывет, и попутно пора думать о вакуум-корректоре, но сперва натурные испытания.
Вложения
CDI.rar
Для любителей кодить, исходники ассемблер, AVR Studio 4
(15.04 KiB) Скачиваний: 308
CDI2.1.rar
ПО графиков v0.985 + CDI2.1.asm
(512.57 KiB) Скачиваний: 344
Help.part2.rar
файл справки CDI, кусок 2, кидается в папку к ПО графиков
(687.08 KiB) Скачиваний: 354
Help.part1.rar
файл справки CDI, кусок 1, потому-что кот не разрешает файлы более 1 метра
(1000 KiB) Скачиваний: 310

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

Чт ноя 14, 2019 23:09:33

Чтото Avast ругается на CDI Table v0.985.exe. "Опасный файл." :))
PC. Поменял название. Поехал.
ПС2. А что это за "сопли" остались в программе.
cpi R25, 180 ;180,"отсечка" оборотов
breq propusk ;если равно,искра запрещена
brsh iskra ;нет предсказания
....
;пропуск искры,режим "отсечка" оборотов
propusk:
andi R20, 0b11010011;cbiR20/532,контроль
ret

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

Пт ноя 15, 2019 11:06:48

Странный у вас аваст, названия не любит, мой DrWeb ничего такого не говорит. Отсечка оборотов не сопли а очень востребованный режим, можно сказать то, что отличает ямаху от дельти. Ограничение оборотов двигателя, когда газ на максимум, чтобы горшки не стуконули, как на видео. Это настройка графика символ "-", ничто не мешает не использовать.



Попутно попалось видео с красивой софтиной автомобильного газ-балон оборудования, и у них есть датчик давления :roll: Гугл пишет их блочек управления форсунок зовется STAG-4 QBox, и стоит 90 убитых енотов.

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

Пт ноя 15, 2019 13:13:16

Флэш
Откуда возьмется
cpi R25, 180
R25=180 :shock: Из таблицы? :)

Дальше.
;==1023/длина метки==
ldi R16, high(1023)
ldi R17, low(1023)
divide: ;цикл деления
cp R17,R23 ;сравниваем младшие
cpc R16,R2 ;и старшие байты
brlo exit_ ;если делимое меньше,выход
sub R17,R23 ;иначе вычитаем
sbc R16,R2 ;младшие и старшие байты
inc R24 ;+1 к результату
rjmp divide ;возвращаемся к началу цикла
exit_: ;метка выхода из цикла

Если у меня метка 25град, т.е. R23=36 или 35. Какое число записать в R24 сразу?
1023/36=? , 1023/35=?
Нехочу "захламлять" программу. Рсчет метки удалю.
Все равно ослепление и отключение DC перепишу по своему. Как надо. :))

И еще.( Пока толком еще не разбрался. )
Учитывается и как , что должен прийти сначала первый импульс, потом второй.
Практически ведь может быть пуск мотора когда датчик стоит между меток. Не увидел этого в datchik2:
Пока все. :)))
ПС. Да , математику вы "насчитали". Бимба. Можете в двух словах о ней. Особенно по второму импульсу.

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

Пт ноя 15, 2019 14:37:07

asel математика "бимба", но в двух словах о ней не получится, там нужно показывать блок-схему, тогда многие вопросы у вас отпадут, но у меня нет толковой программы для рисования блок-схем, может кто знает?
Идея работы второго датчика ваша, но оформление в коде было другим вопросом, пропуск если мотор между датчиков при включении будет, только вероятность такого положения мала, а дальше наступит следующий оборот. 180 штатное значение в таблице для отсечки, оно там пол года как есть, пролистайте код в низ :?
Про захламлять, заходит пациент к врачу, жалуется на боль, а тот ему топором ногу тюк, и кричит в коридор: "Следующий". По какому критерию вы определяете захламление? Это все равно что начать выкручивать лишние гайки из рамы, типа эту выкрутил, а оно едет, наверно ненужная. Операция деления делается раз при включении, занимает миллисекунду, и критический важна для быстрого счета дальнейшей математики, совсем никак не мешает ничему в коде, а если хочется уменьшать число строк, в смысле сделать ФУОЗ с минимальным числом байт, тогда там можно много чего выбросить, но лучше от этого не будет. Еще "выкидывая" вы автоматический теряете возможность использования программы правки углов, которая удобна.

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

Пт ноя 15, 2019 16:18:00

Flash.
"Идея работы второго датчика ваша, но оформление в коде было другим вопросом, пропуск если мотор между датчиков при включении будет, только вероятность такого положения мала, а дальше наступит следующий оборот."
Это баг, для тех кто использует DC-CDI. Удар в ногу.

180 штатное значение в таблице для отсечки, оно там пол года как есть, пролистайте код в низ :?
Это я вообще не понимаю. Где найти, чтобы R25 стал равен 180. Ну это от ваших "предсказаний".

" а если хочется уменьшать число строк, в смысле сделать ФУОЗ с минимальным числом байт, тогда там можно много чего выбросить, но лучше от этого не будет. "
Мусор нужно выбрасывать. Лишние вещи отдавать на сторону.

"Еще "выкидывая" вы автоматический теряете возможность использования программы правки углов, которая удобна."
Программа правки 24.exe отлично работает. Но выкинув мусор , ваши "новомудреные " программы правки не работают. При том , что даже если использовать "новомудреные" (не выкидывая мусор) , она тупо пишет не те выходные порты, которые у меня.

ПС. Нет проблем. Вы пишете для всех ... и "особо" одаренных. Я переписываю под себя.
ПС2. Простой пример. DC должен отключаться по приходу первого импульса, а не по искре. Долго это тестил. Пока не допер, почему есть ... иногда проблема.
Т.е в программе все должно четко, а не в допусках.
Также и ослепление. ... Ну типа вы на мото, а рядом вас обгоняет Жигуль , как источник всех молний- искр. Я думаю вы заглохните. :?
Суть, пришел импульс, ослепление длинное , соотносимое от величины оборотов и когда можно ожидать следующий импульс. (У меня так).

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

Пт ноя 15, 2019 16:55:14

asel какой баг? Какой удар в ногу? Искры же нет! Вы спорите не разобравшись в коде, и даже не проверив его работу, ну не хорошо это. Пример с жигулями бред, версии с первой и второй страницы не имеют защиты от помех, что не мешает им успешно работать на мотоцикле уже пять лет, без отказов, хотя плата в пауните и акума три года нету. Помехи существуют только от свечи что рядом, и это доли вольта, а весь код "ослепления" сугубо для двойной перестраховки, но никак не жизненная необходимость. Попутно вспомните схему стокового коммутатора, нету там никакой защиты, а штампуют такие блочки миллионами.
Если найдется способ попроще рисовать блок-схемы, изображу как это работает, но писать о каждом пункте кода очень долго, на стенде оно работает прекрасно. Поправка, версия со второй страницы точно так же прекрасно работает, все что изменилось это кик-стартер, где устранена небольшая теоретическая возможность отдачи в ногу.
Вам нравится делать свой код ФУОЗ, прекрасно, но многие не смогут ввести углы без программы правок, и пока "баг" в коде не найден, говорить что что-то плохо потому что, просто не нравится вид строк НЕХ редактора, ну как-то не солидно.
Там на видео выше специально записал ввод углов и прошивку, чтобы показать насколько это не сложно, минута и любые углы, с любыми скоростям и параметрами датчика готовы. Вот скрин окна программы, запустите у себя для наглядности, в таблице в окне пять столбцов: обороты, три таблицы углов в файле и желтые то что вводим. Рядом график, и "отсечка превышения оборотов" рисуется зеленым цветом, при этом в желтой таблице там "-", а в DEC для файла ФУОЗ соответствующее значение 180. Это значение было выбрано специально, поскольку никак не участвует в реальном счете, и программа дойдя до числа "180" понимает что на этой скорости нужно прекратить выдачу искры, и угол там не считается. Все такие моменты решаются блок-схемой программы, а ее нужно рисовать, но для этого нужна удобная программа, в ворде это неудобно.

Код:
;адрес ОЗУ "HighХ" определен, чтение ОЗУ
ld R25, X      ;байт из ОЗУ-R27:26 загружается в РОН25
***
cpi R25, 180   ;180,"отсечка" оборотов
breq propusk   ;если равно,искра запрещена
***
;==таблица №1,углов опережения в ОЗУ==
;=======для метки 20°, шаг 0.7°=======
FuozTable1:
ldi R27, 0x01   ;задаем "highX"=01
ldi R26, 0x00   ;задаем "lowX"=00
;опережение при оборотах
ldi R16, 180   ;множитель
st X+, R16   ;в ОЗУ


Изображение

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

Пт ноя 15, 2019 17:46:34

Флэш
"Пример с жигулями бред, версии с первой и второй страницы не имеют защиты от помех, что не мешает им успешно работать на мотоцикле уже пять лет, без отказов, хотя плата в пауните и акума три года нету"
Я устал. С вашимы способностями вы бы ездили на БМВ, а не на электролисапеде , если не были таким упоротым.
ПС. У меня дочь работает , ну в очень очень большой америкокомпании. Иногда они ищут сотрудников. Зарплаты естественные. Иногда ищут по пол года сотрудника....
Претендент. Резюме. Все ОК, все умеет.Все знает. Но "упоротых" на работу не берут. Почему? Простой вопрос претенденту "А если это не так?" . Ответ претендента -"Надо только так". И ... он свободен. Он не предложил варианты решения того чего быть просто не возможно. А "оно" бывает возможным.
пока все.
ПС. Какой "таблес"
Вот ваш "таблес" из интернета.
;==таблица №1,углов опережения в ОЗУ==
;=======для метки 20°, шаг 0.7°=======
FuozTable1:
ldi R27, 0x01 ;задаем "highX"=01
ldi R26, 0x00 ;задаем "lowX"=00
;опережение при оборотах
;500 и ниже, об/мин
ldi R16, 30 ;множитель
st X+, R16 ;в ОЗУ, 9°

Где это ваше потерялось?
;==таблица №1,углов опережения в ОЗУ==
;=======для метки 20°, шаг 0.7°=======
FuozTable1:
ldi R27, 0x01 ;задаем "highX"=01
ldi R26, 0x00 ;задаем "lowX"=00
;опережение при оборотах
ldi R16, 180 ;множитель
st X+, R16 ;в ОЗУ

...Устал. Бред какойто
и программа дойдя до числа "180" понимает что на этой скорости нужно прекратить выдачу искры,

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

Пт ноя 15, 2019 18:11:33

asel не адекват ,даже в личных сообщений.asel вы же не программист

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

Пт ноя 15, 2019 19:06:38

Осталось найти оптимальные графики уоз.

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

Пт ноя 15, 2019 19:46:25

fcftdbx
" не адекват ,даже в личных сообщений.asel вы же не программист"
Спрашиваю, как поделить 1013/36 и записать это число в регистр. Ответ , делите в программе. :))
Я не программист. Но.. не в той палате.

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

Пт ноя 15, 2019 22:41:37

asel вы неправы, когда вы предложили хорошую идею, я реализовал ее максимально хорошо как мог, потому что она действительно хорошая и нужная. Когда возникает критика подкрепленная испытаниями, это понятно и нужно, вот как недавно gordei показал с фото, что версия 2.0 не работает на его моторе, при том показал, что 1.0 работает, и это послужило толчком для поисков. Именно так работали в советских НИИ, собирали коллектив, думали, делали, испытывали и затем переделывали, чтобы было лучше. А пример с наводками и жигулями пройденная история, около пяти лет назад, когда была сделана первая версия кода, и плата с дип компонентами, первая страница, делалась она для китайского мото друга, 150сс 4т лифан, и она до сих пор там стоит, в пластиковом корпусе, с обычными проводами, без экранировок, только с фильтром в виде дросселя по питанию 12В. И я ее настраивал, подбирал углы, ездил туда-сюда, затем несколько лет покатушек, пару тысяч км, колеса прокалывались, свечу ломало, акум отслужил и откинулся, тросики рвались, даже ДТП было, но ФУОЗ работает. А ездил тот мот везде, в том числе по улицах с жигулями, и так получилось, что лишь три года спустя выяснилось, что существуют помехи от свечи, и нужно от них защищаться. Альтиум показывал видео с осциллограммами наводок, их уровни незначительны, после чего были сделаны специальные задержки в коде "ослепление входа датчика", чтобы несколько десятков миллисекунд после искры игнорировать состояние входов, но на том мотоцикле этих правок нет, и он продолжает исправно ездить. По той же причине вачдог ненужен, специально четыре года назад его не включил, чтобы дождаться сбоев, но сколько не ездил тогда, и сколько не ездили после меня, проблем не было.
А по делению 1023/36, если вы не знаете как делить число, как тогда собираетесь делать остальной код своего проекта? Заходите в АВР студию, книжки по ассемблеру почитайте, начинайте "видеть" код, эти вопросы отпадут сами собой, потому что сейчас, не изучая программирование выдвигаете претензии к коду, не подкрепляя их хоть чем-то.

Kvadro85 графики скорее всего будут у каждого чуть разными, это больше вопрос к опытным механикам, знающим такие штуки. По умолчанию в программе график что настраивался на мотоцикле с двигателем Lifan 150сс 162FMJ моим "жопомером", но подойдет ли он для других моторов неясно. Если есть стробоскоп, можно снять крышку и перерисовать стоковый график, залить его в ФУОЗ, а затем подстраивать.

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

Пт ноя 15, 2019 23:25:33

Флеш,а почему именно ассемблер, я так понимаю особо критичных вещей по времени здесь нет, было бы на C, может помогли бы, да и код легче воспринимается? Не критика, просто ради интереса.

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

Сб ноя 16, 2019 16:41:07

включил зажигание, а матацикал не едет. :)))
ldi R16, 0b11010010
out ddrD, R16 ;PD7=1-Flyback
ldi R16, 0b10101101

;нормальная,расчетная искра по счетчику
timer1compare:
in R15,SREG ;сохраним SREG
sbrs R20, 4 ;if bitX,n='0' then do
reti
clr R29 ;ослепление
sbi PortD,7 ;лог"1"на выход "flyback"----------

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

Сб ноя 16, 2019 16:48:40

SpulN дело как раз во времени, аналогичный код на "Си" займет в 3-5 раз больше места, и кварц сразу придется вместо 4МГц брать на 10МГц. Еще на Си никогда ничего не писал, так получилось, что мои языки: ассемблер АВР и бейсик(делфи) с паскалем. В ютубе находил пример, когда один и тот же код на ассемблере занимает 70% тини13, а в версии с Си не хватает 2х объемов чипа. Так получилось исторический, кто чуть старше, зачастую предпочитают ассемблер, для небольших программ в случае АВР он прекрасен, проблемы начинаются лишь в сложных программах, но и там пишут. Си же лучше для приложений винды либо современных смартфонов, тот же андроид, когда у вас гигабайты кода, и некогда их вылизывать. Сегодня это умирающий язык, STM32 забивает последние гвозди в крышку его ящичка. А вот помощь нужна в обкатке, сам коддинг не вызывает сложностей.

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

Сб ноя 16, 2019 17:36:34

для SpulN,
я ассемблер понимаю, и даже при необходимости на нем пишу (вставки, например), но для таких быстрых и легких проектов предпочитаю алгоритм билдер — преимущества: ниже порог вхождения (в ассемблере для авр ряд команд выполняют одинаковое (на первый взгляд) назначение (переходы, копирование информации) но выбираются они не как попало, а по правилам... АБ удобен тем, что сам за программиста подставит нужную в этом месте команду (или заменит код на полностью равноценный, но выполняемый набором команд авр)
при этом почти все ресурсы программист распределяет сам как и при использовании ассемблера (разве что 16 и 17 регистры задействованы в его макрооперациях, но они и при использовании ассемблера точно также задействуются самим программистом).
кроме того код не обязательно размещать в длинную "портянку" а можно сгруппировать в связанные по смыслу кучки (приходится намного меньше мотать код в поисках нужного участка)
я не навязываю эту программу тем у кого ассемблер в крови (им скорее всего будет непривычно) а вот для новичков, считаю, это самая удобная программа, позволяющая по настоящему подружится с авр...
(жаль в последних версиях отсутствует возможность выводить код в ассемблер, а только в виде хекс)
простите за рекламу... :) :oops:
просто если спрашивают зачем нужен ассемблер, я предлагаю попробовать хотябы АБ и ощутить хотя бы часть преимуществ низкоуровневого программирования
Последний раз редактировалось Ivanoff-iv Вс ноя 17, 2019 07:11:45, всего редактировалось 1 раз.

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

Сб ноя 16, 2019 19:20:24

включил зажигание, а матацикал не едет. :)))
ldi R16, 0b11010010
out ddrD, R16 ;PD7=1-Flyback
ldi R16, 0b10101101

;нормальная,расчетная искра по счетчику
timer1compare:
in R15,SREG ;сохраним SREG
sbrs R20, 4 ;if bitX,n='0' then do
reti
clr R29 ;ослепление
sbi PortD,7 ;лог"1"на выход "flyback"----------


точно, не едет :)

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

Вс ноя 17, 2019 08:57:50

Кто пишет на C/C++ - как будет выглядеть данная программа? Кто может перевести?? Буду очень признателен :)

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

Вс ноя 17, 2019 15:59:43

Я не много пишу на С, но чтобы перевести, в начале нужно досконально понять как она работ, если бы автор смог предоставил блок схему, было бы гораздо понятнее, потому что я не силен в ассемблере.

Добавлено after 5 minutes 7 seconds:
Флеш, подскажи еще пож-та, на моем мотоцикле стоит dc cdi коммутатор, искра бъет в момент положительного импульса, что соответсвует примерно 30 градусам, у тебя написано что стандартный коммутатор на низких оборотах дает искру по отрицательному фронту, но у меня такого не происходит, значит мой коммутатор не исправен?
Ответить