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

Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

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

Сообщение Flash.#13 »

Блок схема не проблема, только где ее рисовать? В ворде это нереально, а спецсофта не видел. Слышал коммутаторы бывают разными, особенно DC-CDI, Альтиум для управления такими использовал ногу "Flyback". В печатке к этой схеме перемычками можно менять очередность импульса, а по неисправности это врятли, у вас же мотор заводится нормально.
На всякий имеется печатка товарища Iszak. Ниже схема, одна и та же, но выполнена в разных прогах.

Изображение Изображение Изображение Изображение Изображение
Вложения
CDI_2.1.asm
Печатка которую делал Iszak
(25.52 КБ) 463 скачивания
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Реклама
SpulN
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср ноя 13, 2019 22:33:42

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

Сообщение SpulN »

На счет програм, кроме ворда ничего в голову не приходит, но там чертить, то еще удовольствие)) А не проще вместо двух оптопар использовать pc814? Вот нашел в поиске https://proglib.io/p/6-diagram-services/
Реклама
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

На счет программ:
СпойлерИзображение
(Нестандартное использование всё того-же АБ...)
но после оценки alexhrа (хоть бы написал, за что...) желания расписывать алгоритм поубавилось...
т.ч. дальше сами...
Вложения
2019-11-18_10-02-11.png
(5.79 КБ) 791 скачивание
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
Arwood
Держит паяльник хвостом
Сообщения: 986
Зарегистрирован: Чт янв 13, 2011 13:51:26

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

Сообщение Arwood »

Ivanoff-iv писал(а):но после оценки alexhrа (хоть бы написал, за что...) желания расписывать алгоритм поубавилось...
т.ч. дальше сами...
О, как же это знакомо и предсказуемо. Подобными гурями, интернет как помойка завален.
Рассказывают как быстро и легко "обучат программированию". Особые долгожители даже сподабливаются на первый-второй урок. Но всё заканчивается на "помигать светодиодиками" или написать Привет Мир.
Большего их умишко выдумать не в состоянии и они сливаются.
С поводом или без.
А те, повёлся на их развод, остаются с пониманием что потратили своё время на чью-то детскую психотравму и обучились никому не нужному умению мигать светодиодиками.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

Если это про меня, то - не согласен, здесь я ни кому не обещал обучения (да и вообще ничего не обещал)...
привел лишь пример, как можно удобней чем в ворде расписать алгоритм (как сам иногда делаю)...
а в предыдущем сообщении попытался показать мостик понимания между Сшниками и АССЕБЛЕРщиками...
т.к. сам начал понимать ассемблер именно с этой программы (доосвоить систему команд оказалось проще, когда уже было понятно про регистры и прочую внутренность мк, чем пытаться понять сразу всё).
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Аватара пользователя
Arwood
Держит паяльник хвостом
Сообщения: 986
Зарегистрирован: Чт янв 13, 2011 13:51:26

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

Сообщение Arwood »

[uquote="Flash.#13",url="/forum/viewtopic.php?p=3738483#p3738483"]Блок схема не проблема, только где ее рисовать?[/uquote]Где угодно. В том, что есть под рукой.
Лэй
ЛэйАут.JPG
(14.76 КБ) 413 скачиваний
Сплан
Сплан.JPG
(46.29 КБ) 376 скачиваний
Корел
Безымянный-1.jpg
(34.92 КБ) 395 скачиваний
Реклама
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

а если править/двигать? всё заново рисовать? (ну или часть)
в АБ стрелки сами тянутся за блоком, блок при перетаскивании двигается весь целиком... довольно удобно, жаль только рамок вокруг кода нет...

Добавлено after 6 minutes 43 seconds:
пойду я пожалуй отсюда, пока опять минусов не навешали... :)))
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
asel
Опытный кот
Сообщения: 750
Зарегистрирован: Вт янв 06, 2015 11:00:44

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

Сообщение asel »

Разбираемся с v.2.1 (с переходами) :))
Есть идеи...
Но голова уже.... :cry:
;===второй сигнал датчика===
datchik2:
...........

Зачем записывать FF в R11R12 и потом умножать на 1023/длина метки?
Или еще. R11R12 умножаем на 1023/длина метки. Получаем R13R14. Т.е. число относительно 360град (для выбора из таблицы R25).
А потом (R25-R23) и вычисляем задержку относительно R13R14 и прибавляем к R11R12.
Почему не так ... (R25-R23) и вычисляем задержку относительно R11R12 и прибавляем к R11R12??
Не силен в математике на ассемблере. :(
Может Флэш хоть "на пальцах" пояснит все эти умножения и почему так. Точность угла?
ПС. На стенд еще не загружал с осциллографом. Там все будет видно.
Еще. Зачем в "holostie" записывать в R9R10 FFFF, если потом в "datchik2" потом опять пишем тоже. Два раза!! :shock:

Буду еще разбираться с "холостие". Уже писал, что если записывая FF, угол при 480об уходит очень далеко. Но при еще уменьшении оборотов, угол начинает сдвигаться назад. (пока не пойму почему) Записал в "холостые" EA60. Так у меня получилось на версии 1.
Не знаю. Возможно при пуске обороты у мото меньше 480? И можно используя счет от первой и второй метки умножая на задержку по 500об, сдвигать угол еще.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

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

Сообщение Flash.#13 »

Из увиденных программ остановился на рисовалке AFCE, относительно удобно хотя и сильно ограничено. При постройке блок-схемы многие узлы упростил, иначе рисование заняло слишком долго, но основной код работает как на картинках. Автоопределение длины метки показывать не стал, оно не влияет на работу. Рисовалка не заточена под ассемблер, приемы разные, например для АСМ считается нормой бесконечный цикл, и переходы по десять раз, а здесь совсем все по Си'шному, никакого GoTo :(

Изображение Изображение Изображение
asel писал(а):Не силен в математике...
Зачем в "holostie" записывать в R9R10 FFFF, если потом в "datchik2" потом опять пишем
Затем что существует замедление вала, условие "holostie" может не выполнится, но между метками замедление поршня вполне достигнет значения при котором оно бы выполнилось, если бы у нас был весь оборот, расчет по R11R12 должен это учитывать, вы же сами сколько раз говорили о торможении поршня? Существует три частных случая для второго "позднего" импульса:
- обороты более 460/мин, нормальный счет математики из таблицы;
- обороты 60...460/мин, условие "holostie" между метками не происходит, но должно произойти при полном обороте, угол будет из первой ячейки таблицы, R9=0xFF;
- обороты менее 60/мин, условие "holostie" выполняется между импульсами датчиков, R9:R10=0xFFFF, R11:R12=0xFFFF, R13:R14=R24:FF
asel писал(а):вычисляем задержку относительно R13R14 и прибавляем к R11R12. Почему не так ... (R25-R23) и вычисляем задержку относительно R11R12??
Чтобы делать вычисление на базе R11R12 нужно перевести их в 0.7°, а там как раз это и сделано, R13R14 это 1.4°
У меня встречный вопрос, если вы не сильны в математике и кодинге АСМ, зачем резать и мучится с кодом? Почему просто не использовать оригинал?
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Аватара пользователя
Arwood
Держит паяльник хвостом
Сообщения: 986
Зарегистрирован: Чт янв 13, 2011 13:51:26

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

Сообщение Arwood »

Флэш, не с того начал.
Сначала общая структура. В какой последовательности расположены эти блоки?
Затем выложенные блоки.
И наконец кусок кода по каждому блоку.

А иначе, это всё лишь имитация.
asel
Опытный кот
Сообщения: 750
Зарегистрирован: Вт янв 06, 2015 11:00:44

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

Сообщение asel »

Flash.#13
Оригинал "сырой" и неотесаный.
Я понимаю, что 2х2=4. Но зачем делать 2х5-6=4? Непонимаю.
Потом немного понял
что при 600об 50027импульсов, а при 500об 60124импульса, и их нужно как то привести к 360градусам.
Потом еще понял, что вы делаете программу универсальную 2.1. И так как длина метки разная, то нужно сделать такие сложные формулы расчетов. Ладно с этим. Поверим вашим расчетам.
Еще вопрос. Раз уже пошли ниже 460оборотов в версии 2.1, которые можно легче посчитать , отталкиваясь оборота по длине метки.
600обор = 50027импульсов = С36В ---С3 инвертируем = 60.
500обор = 600124импульса = ЕАDC ---EA инвертируем = 21
460обор = переполнение =FFFF
Почему в таблице нет числа 21?
Немного также не понимаю. В таблице крайнее число 60, что есть 600оборотов. А в графике крайнее число 500оборотов. Т.е. все что ниже 600оборотов расчитывается как FFFF?.
Пс. Возможно это и лишнее.
Зима долгая, пока еще "стенд" не включал...
Попробую также нарисовать всю блок-схему для себя. Есть пару нюансов, учтены ли они?
Последний раз редактировалось asel Ср ноя 20, 2019 08:58:18, всего редактировалось 2 раза.
ats4
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср ноя 20, 2019 07:26:50

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

Сообщение ats4 »

Здравствуйте. Подскажите на что обратить внимание. Мопед дельта 72сс, прошивка контроллера v2.1, настройки по умолчанию, ничего не правил. Проблема следующая: мопед заводится и работает не средних и больших оборотах, но светодиод не тухнет. На малых оборотах работает секунд 10 и глохнет. Завести можно только после полного снятия питания с контроллера, светодиод при этом потушен.
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

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

Сообщение Flash.#13 »

ats4 то что не тухнет диод говорит что МК не смог провести "автозамер", угол датчика нужно смотреть "вручную", собираюсь тестировать 2.1 на мото, может увижу еще чего, 2.1 еще не испытывалась на реальной технике :cry:

asel угол в таблице задается программой правки графика, по умолчанию начинается с 0...600..., и ничего не мешает кликнуть мышкой, и задать там 500/мин.

Arwood понимаю о чем вы, но делать такой детальный разбор будет очень долго, примерно как писать сам код, при том программисту такое разжевывание и ненужно, он сразу поймет что внутри, ассемблер простой язык, а самого кода там всего 8 страниц А4. К тому же для АВР делать подобные проекты не на ассемблере плохо, на Си оно будет работать только с STM32, у меги8 не то ядро. Текущая проблема не в языке, а в том что мне нужно идти, и испытывать плату на мото, а такая возможность сейчас есть.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
ats4
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср ноя 20, 2019 07:26:50

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

Сообщение ats4 »

Flash.#13 меня смущает то, что на малых оборотах секунд через 10 двигатель глохнет и до полного снятия питания его не заведешь. На v2.0 наблюдалось что то похожее, поэтому грешу на железо.
asel
Опытный кот
Сообщения: 750
Зарегистрирован: Вт янв 06, 2015 11:00:44

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

Сообщение asel »

Flash.#13
Испытывать нужно на стенде. Моторчик-диск-метка-датчик-двухлучевой осциллограф. Все видно.
Например при пуске. Моторчик вращается. Осциллограф в сингл. Включаете питание на Фуоз. И осцилограф показывает и первый и второй и третий импульсы.

Ладно. В "norm" минимальные обороты 600. =60
Можно ли дописать, вписать, добавить строчку (или как вам еще объяснить) 500об. =21?
Т.е. в программе , всечто ниже 600, это переполнение.
cpi R21, 60 ;сравнение РОН с контстантой
brsh rpm0k6 ;если больше или равно
cpi R21, 21
brsh rpm0k5
clr R26 ;если 500 и меньше об/мин

ну и там далее поменять.

В чем проблема?
ПС. Попробую на сденде все сфоткать с осциллографа и выложить. Как оно есть в реальности.
ПС2.
В v.1 дописал вот так. Посмотрим, что это дает в реале.. 32 строки, как и написано. А не 31. Т.е. 500об из таблицы будет как положено 500об. А ниже 500об будет FFFF :))

cpi R21, 60 ;сравнение РОН с контстантой
brsh rpm0k6 ;если больше или равно
cpi R21, 21 ;сравнение РОН с контстантой
brsh rpm0k5 ;если больше или равно
rjmp RpmEnd ;всего 32строки
...............
rpm0k6:
ldi R26, 0x01
rjmp RpmEnd
rpm0k5:
ldi R26, 0x00
;адрес ОЗУ "lowХ" определен
;задействованно ОЗУ 0х0100-0х011F,32строки
RpmEnd:
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

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

Сообщение Flash.#13 »

ats4 понял вас, скоро буду тестировать на моторе у себя, думаю вылезет и смогу вылечить. Похоже на автоопределение угла, что МК не может его корректно нащупать, попробуйте подобрать угол в программе правки графика, параметр "длина метки", это длина магнитного наплыва.

Изображение

asel изменить строчку можно без проблем, хоть на 01, сколько это в оборотах нужно считать, а вот добавить ее сложнее, сейчас в таблице ОЗУ 32 строки. ЧТобы не мучится возьмите оригинал и в прогамме графиков измените обороты на 500/мин, нажмите сохранить и посмотрите как она изменит значение на той предпоследней строчке.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
asel
Опытный кот
Сообщения: 750
Зарегистрирован: Вт янв 06, 2015 11:00:44

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

Сообщение asel »

Flash.#13
Поменял.
Было 460-600-700
Стало 460-500-600.
Просто нужно нормально писать описание и т.п. . Что 460 это не 460. А все что ниже 600, или (по тому как стало) ниже 500. Ты же борешься с пуском тапкой. Какие обороты при пуске лаптем?
Но если сделать так, то теряем одну строчку в таблице.

А почему нельзя , как я написал постом выше. Добавив строчку. Ну убрал clr R26. Программа зависнет?

Еще. Нарисовал блок-схему. И много чего "полезло".
Ну это конечно "фонтан".
datchik2:
..
;если есть разрешение,считаем 0.7°
sbrs R20, 7 ;if bitX,n='0' then do
rjmp jmp1 ;очень низкие обороты
ser R16 ;R16=0xFF
mov R11,R16
mov R12,R16
jmp1:

Это ж когда Р20, 7 будет равно 1? Ну да. Есть вариант, когда датчик стоит между первой и второй меткой. И запускаем мотор. И что дальше? Все равно все пойдет от первой метки....
Аватара пользователя
Flash.#13
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

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

Сообщение Flash.#13 »

asel писал(а):Ну убрал clr R26. Программа зависнет?
Отрезал больному ногу, вторая осталась :facepalm: Вы же не смотрите зачем нужны строки которые удаляете, затем обвиняете, код "сырой", и тянетесь "улучшать". В таблице 32 точки, вот вы убрали одну из них, программа зависнет? У вас есть замысел зачем это делать и как должно быть? Напишите код с нуля! А то получается кривой магнитофон, отрезали, вроде едет, режем дальше...
РОН20,7 будет "1" когда поршень остановится не дойдя до второй метки, что произойдет? Водитель повторно дернет лапку кик-стартера, но счетчик прошел круг и данные уже некорректны, а вы снова тянетесь вырезать условие, которое защищает от отдачи, чтобы экономить пол микросекунды и пару байт пространства.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
asel
Опытный кот
Сообщения: 750
Зарегистрирован: Вт янв 06, 2015 11:00:44

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

Сообщение asel »

Flash.#13
Понятно. с 500, 600. Поэтому я и записываю не FFFF, а EA60=500 оборотов.
А FFFF -это 458 оборотов. Ну это уж совсем мало. И очень большая разница между 600 и 458. Т.е. при 580об, угол уже будет как по 460. Разобрались.

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

Да и ошибка
;второй(поздний) импульс датчика
;при первом проходе разрешим обработку датчика2 (правильно. вкл. ожидание датчика2)
ori R20, 0b00001000 ;sbiR20/3,контроль
andi R20, 0b11011111 ;cbiR20/5,контроль
ret
А R20, 5 зачем выключили? (датчика1)
И зачем "гонять" по всему кругу, ожидая датчик2? "ret" заменить на "rjmp norm".
Хотя и так и так есть нюанс. Если датчик2 придет в момент перед :
sbrc R20, 2 ;if bitX,n='1' then do
rjmp vtoroi ;переход на мат2
а не перед norm? То получим R25 из полного оборота, а не от дат1 до дат2. Как решить?
Предлагаю вместо "вкл ожидания дат2", вписать цикл "ожидания дат2" (как в версии 2.0), и выход rjmp norm

Здесь-----
iskra:
clr R29 ;ослепление
sbrs R20, 3 ;if bitX,n='0' then do
sbi PortD,7 ;лог"1"на выход "flyback"
sbrs R20, 3 ;if bitX,n='0' then do
sbi PortC,0 ;лог"1"на выход "искра"
andi R20, 0b11010011;cbiR20/532,контроль
ret
Почему R20, 4 =1? Еще хотим искру?
sbrs R20, 3 if bitX,n='0' then do зачем?

Еще одна беда. Как поведет себя программа..? Например хх обороты. Угол-задержка находится в диапазоне R25=R23. И например - замедление или разгон маховика от дат1 до дат2, при нестабильных оборотах. Сложно. Пока посчитаем, что произойдет с углом.

ПС. Просто было интересно что вы там наваяли в программе. Что и для чего.
Больше писать вам не буду. "Глухой со слепым."
Последний раз редактировалось asel Чт ноя 21, 2019 13:09:19, всего редактировалось 5 раз.
Аватара пользователя
Deepcrasher
Родился
Сообщения: 11
Зарегистрирован: Чт ноя 14, 2019 22:11:51
Откуда: Москва
Контактная информация:

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

Сообщение Deepcrasher »

Пять копеек: Отличная программа для рисования блок-схем (и ещё много чего) - Diagram Designer. Бесплатная.
Свидетель Волшебного дыма
Ответить

Вернуться в «АвтоМотоВело»