Аппаратный ШИМ против программного

Про байтики и логику ЭБУ
User avatar
XDA
Posts: 441
Joined: Wed Oct 23, 2013 7:28 pm

Re: Аппаратный ШИМ против программного

Post by XDA » Sat Dec 07, 2013 9:03 am

Sergey89 wrote:SPI ремапица на другие пины. А выгода такая, что имеем 8 ШИМ каналов с аппаратной точностью, но интереснее было бы сделать с разными частотами. В таком виде как сейчас предложено я не вижу практического применения, т.к. проще на аппаратные таймеры повестить что можно, а что нельзя сделать софтом. Геморроя не больше чем при реализации программного ШИМ на одном канале таймера :)
и это тоже легко делается,
буфер разделяется на два, по переменно выводится то один, то другой. количество одновременно обсчитываемых бит может быть любое в пределах аппаратных ресурсов. (тем более, что их тратится очень мало)
таким образом реализуется абсолютно любая частота в пределах теоремы котельникова :)
а так же сигналы открытия форсунок, зарядки катушек зажигания и искры и т.д. ВЕСЬ точный по времени вывод можно сделать унифицировано, через одну технологическую реализацию.

к примеру, Peak-and-hold можно сделать целыми двумя способами:
с помощью двух ключей - это заводим два бита на вывод и даём команду вроде
000001111111111111111111111111111111111111111111111111111111100000000 <-hold
000001111111100000000000000000000000000000000000000000000000000000000000 -<peak

или с помощью микроШИМа:
000001111111101010101010101010101010101010101010101010101010101000000000
-------||Peak||-----------------------------------------------------------------------------------
------------------||||||||||||||||||||Hold||||||||||||||||||||||||||-------------

а переживания по поводу того, что мы занимаем канал АЦП - так и так и так придётся ставить внешнее АЦП с 3.3 в питанием и 5в биасом на аналоговые датчики.
Теория хороша в том и только том случае, если она может достоверно предсказать результаты каждого нового опыта

User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Текущий прогресс по прошивке.

Post by rus084 » Wed Apr 23, 2014 5:30 am

Если программный ШИМ на базе 1MHz таймера, то 8 битный шим больше 4кгц нельзя сделать?

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Текущий прогресс по прошивке.

Post by russian » Wed Apr 23, 2014 11:09 am

rus084 wrote:т.е. 8 битный шим больше 4кгц нельзя сделать?
напомни мне пожалуйста, что такое "8 битный шим"? Такой термин вообще есть, или мы его здесь изобрели?

Нет, не т.е. Когда квант времени через пару дней станет микросекундой, тогда и померяем, какой ШИМ у нас работает.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by Maxi » Wed Apr 23, 2014 11:21 am

russian wrote:
rus084 wrote:т.е. 8 битный шим больше 4кгц нельзя сделать?
напомни мне пожалуйста, что такое "8 битный шим"? Такой термин вообще есть, или мы его здесь изобрели?
такой термин вообще есть.
имеется ввиду что это шим который будет обеспечивать гарантированное разрешение не хуже 1/256*1/4000=0,0000009765625 с
Нет, не т.е. Когда квант времени через пару дней станет микросекундой, тогда и померяем, какой ШИМ у нас работает.
собственно примерно вот такой и будет - если любой задаче будет обеспечена задержка в пределах 1 кванта...

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 3:09 pm

Maxi wrote:разрешение не хуже 1/256*1/4000=0,0000009765625 с
Ага. Тогда вообще говоря я не уверен, что мы успеем: если скважность будет 1/256 то на 4KHz ~168 тиков может не хватить включить, а потом сразу выключить. Вот чисто угадыванием без замеров я бы сказал, что между событиями нам нужно будет порядка тысячи тактов - но это цифра с потолка.

В моём понимании нам такие короткие сигналы не нужны - нам важно с большой точностью запланировть достаточно редкие события.

А вообще говоря, хороший вопрос: какой максимальной частоты именно ШИМ нам может понадобится? Соленойды обычно в районе 500Гц. Вот Дима хочет 30KHz для управления генератором, это по делу?
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by Maxi » Wed Apr 23, 2014 5:59 pm

Соленоиды - они разные бывают. Вот недавно как раз делал коробку - там соленоиды в P&H 4кгц как раз. 6 штук. правда я там делал 6 бит разрешение (этого вполне достаточно в том случае). Но все честно - 1/64*1/4000 отрабатывается.

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 6:03 pm

656.25 тика значит в нашем случае. Чёрт его знает, однажды нужно будет перевести event_queue.cpp со списка на дерево.

Нужны программисты, блин :)
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by rus084 » Wed Apr 23, 2014 6:37 pm

а мне можно тогда взять аппаратный шим?
или лучше отдельный шим контроллер? но им еще както управлять надо

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 6:38 pm

rus084 wrote:а мне можно тогда взять аппаратный шим?
Во-первых, тебе в твоей копии исходников можно всё, что угодно :)

Во-вторых, так какой же именно ШИМ тебе нужен? Откуда взялось 30KHz Откуда взялись 8 бит?
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by Maxi » Wed Apr 23, 2014 6:43 pm

ну вот например для электронного дросселя надо 5кгц. на счет битности сложно сказать но 8 мало точно. 10 было бы уже работоспособно. 14-16 идеал.

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 6:49 pm

Что-то мне подсказывает, что 1/4096 на дроссель не нужно будет, а 1713/4096@5KHz должно не быть проблемой. Короче я понял, нужно сделать команду тестирования ШИМа - и все смогут поиграться со своим любимым режимом :)
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
rus084
contributor
contributor
Posts: 678
Joined: Sun Dec 01, 2013 1:40 pm
Location: Russia , Stavropol
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by rus084 » Wed Apr 23, 2014 7:11 pm

russian wrote:
rus084 wrote:а мне можно тогда взять аппаратный шим?
Во-первых, тебе в твоей копии исходников можно всё, что угодно :)

Во-вторых, так какой же именно ШИМ тебе нужен? Откуда взялось 30KHz Откуда взялись 8 бит?
в моей копии - да , но если тебе понадобится таймер , куда мне деваться?

30кгц - с потолка , потом найду золотую середину между коммутационными потерями и пульсациями тока (феррит может в насыщение уйти)

нужно 2 синхронизированных шима для управлением нижним и верхним плечом по отдельности

puff
contributor
contributor
Posts: 2721
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: Аппаратный ШИМ против программного

Post by puff » Wed Apr 23, 2014 7:13 pm

а можно сколхозить допмодуль, транслирирующий из spi в шим

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Wed Apr 23, 2014 8:04 pm

russian wrote:Что-то мне подсказывает, что 1/4096 на дроссель не нужно будет, а 1713/4096@5KHz должно не быть проблемой.
А это как? Почему 1/4096 может быть проблемой, а 1713/4096 нет?

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 8:11 pm

Sergey89 wrote:А это как? Почему 1/4096 может быть проблемой, а 1713/4096 нет?
В случае с 1/4096@5KHz у нас сколько времени между фронтом и спадом? В 1713 раз меньше, чем в случае 1713/4096.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by Maxi » Wed Apr 23, 2014 9:20 pm

а какая для гарантированного реального времени разница?

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed Apr 23, 2014 10:44 pm

Maxi wrote:а какая для гарантированного реального времени разница?
Если речь про 1/4096@5KHz, то это 168000000/5000/4096=8 тактов процессора. Я боюсь никакая програмная имплементация ШИМа это не осилит.

Но спаспает то, что 1/4096@5KHz кажется нам не понадобится. С програмным ШИМ мы можем вероятно добится 128/4096@5KHz и шире, для 99.9% реальных приложений мне кажется этого хватит. Если не хватит - пара аппаратных таймеров у нас всё-таки в запасе есть.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by Maxi » Thu Apr 24, 2014 1:20 am

между 128/4096@5 и 129/4096@5 те же 8 тактов процессора.

нужно же не только сами условия гарантий переключения выполнять но и заданную битность.

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Thu Apr 24, 2014 1:28 am

Maxi wrote:между 128/4096@5 и 129/4096@5 те же 8 тактов процессора.
В том смысле, который я вкладываю - нет, не 8 тактов.
Если у нас ШИМ 128/4096, то у нас события бывают во время
0 / 4096 / 5000
128 / 4096 / 5000
4096 / 4096 / 5000
4224 / 4096 / 5000
8192 / 4096 / 5000
и так далее

минимум между событиями - 128 / 4096 / 5000

Если у нас шим скважности 129 битности 4096 частоты 5000, то события происходят в
0 / 4096 / 5000
129 / 4096 / 5000
4096 / 4096 / 5000
4225 / 4096 / 5000
8192 / 4096 / 5000
и так далее
минимум между событиями - 129 / 4096 / 5000

тут нигде нет (129 - 128) / 4096 / 5000, так что нет и 8ми тактов. скважность либо 128 либо 129, переходное состояние отдельная конечно история - но оно тут не важно, как мы обработаем переходное состояние.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Thu Apr 24, 2014 6:02 am

А если события разных каналов в одно время произошли? Или худший случай, но вроде как реальный. Все каналы должны изменить своё состояние в один момент времени. Сможет ли в этом случае такая реализация гарантировать, что 128/4096 и 129/4096 будут отличаться на 1/4096?

puff
contributor
contributor
Posts: 2721
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: Аппаратный ШИМ против программного

Post by puff » Thu Apr 24, 2014 7:54 am

что, опять упираемся в потолок быстродействия?

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Thu Apr 24, 2014 11:40 am

Sergey89 wrote:А если события разных каналов в одно время произошли? Или худший случай, но вроде как реальный. Все каналы должны изменить своё состояние в один момент времени. Сможет ли в этом случае такая реализация гарантировать, что 128/4096 и 129/4096 будут отличаться на 1/4096?
Если события слились в один момент - то они сольются в одно событие, обработаются вместе - лучший для нас вариант. Если же они подряд идут с разницей в микросекунду, то кто-то из них может чутка опоздать. Насколько именно - можно только тестом проверить, желаю удачи эту ситуацию воспроизвести :)

Я не парюсь, потому что я не вижу, как это может случаться чаще раза в сто лет.
puff wrote:что, опять упираемся в потолок быстродействия?
панику разводить не нужно, никто никуда не упирается :)
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Tue May 13, 2014 8:52 pm

В свежей версиии программы для логического анализатора они сделали экспорт в CSV

http://rusefi.com/articles/pwm_performa ... 4may13.csv
Кто хочет посчитать дребезжание этого теста? Надо как-то решать, что допустимо - что нет. 2 градуса дребезжания на 6000 оборотах - как часто мы можем себе его позволить? Первый раз будет последним? 1 раз в минуту допустимо? 10 раз в минуту допустимо? Если не 2 градуса, то сколько?

edit: исходный файл - http://rusefi.com/articles/pwm_performa ... .logicdata
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Wed May 14, 2014 2:04 pm

А что мы должны проверять, равенство времени между фронтами для каждого канала? И хорошо бы приблизить к реальным условиям тест. Например 4 форсунки, 4 катушки зажигания, клапан ХХ и т.д. И можно сделать тест, в котором все сигналы генерируются одновременно, чтобы посмотреть на сколько последний запаздывает от необходимого времени?

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed May 14, 2014 2:14 pm

Sergey89 wrote:И хорошо бы приблизить к реальным условиям тест. Например 4 форсунки, 4 катушки зажигания, клапан ХХ и т.д.
С такими реальными условиями это уже не тест, а просто реальная как раз прошивка с эмулированным триггером? Прошивка есть, готова к запуску желающими. Получается более важный вопрос - что считать приемлемым результатом, а что нет, по какому критерию?
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Wed May 14, 2014 2:30 pm

Разность между максимальным и минимальным временем между фронтами для каждого канала:

1 = 0.000002750
2 = 0.000022500
3 = 0.000003500
4 = 0.000009625
5 = 0.000031000
6 = 0.000005125

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed May 14, 2014 2:37 pm

Осталось понять, волнует ли нас максимум или среднее или медиана или распределение...

Еще можно попытаться проверить корреляцию дребезка с наличием событий на других каналах в окрестности дребезжащего сигнала.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Wed May 14, 2014 2:41 pm

russian wrote:
Sergey89 wrote:И хорошо бы приблизить к реальным условиям тест. Например 4 форсунки, 4 катушки зажигания, клапан ХХ и т.д.
С такими реальными условиями это уже не тест, а просто реальная как раз прошивка с эмулированным триггером? Прошивка есть, готова к запуску желающими. Получается более важный вопрос - что считать приемлемым результатом, а что нет, по какому критерию?
Зависит от характера сигнала или даже от требуемого разрешения. Например требования к точности УОЗ и времени впрыска могут быть разными. Когда мы говорим про точность УОЗ мы также должны учитывать, что ошибка будет зависеть от частоты вращения КВ. Но в общем случае мы не хотим получить ошибку больше одного младшего значащего разряда.

User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod
Contact:

Re: Аппаратный ШИМ против программного

Post by Sergey89 » Wed May 14, 2014 2:51 pm

Среднее значение по каждому каналу.

1 = 0.250017500
2 = 0.000250017
3 = 0.050003594
4 = 0.008333924
5 = 0.000333358
6 = 0.050003656

User avatar
russian
Site Admin
Posts: 9600
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Soldering skill: yes
Coding skill?: yes
Contact:

Re: Аппаратный ШИМ против программного

Post by russian » Wed May 14, 2014 2:52 pm

Sergey89 wrote: Зависит от характера сигнала или даже от требуемого разрешения. Например требования к точности УОЗ и времени впрыска могут быть разными. Когда мы говорим про точность УОЗ мы также должны учитывать, что ошибка будет зависеть от частоты вращения КВ. Но в общем случае мы не хотим получить ошибку больше одного младшего значащего разряда.
Ну нас для начала интересует максимальное требование к точности между сигналами, которые могут привести к разрушению двигателя.

Какие неточности каких сигналов нам что-то разрушат?
Зажигание: детонация: на каких оборотах какая угловая точность нам нужна?
Впрыск: я верно понимаю, что этот сигнал более грубый, на него можно чутка забить?

Меня смущает, что у нас нет конкретного понимания конкретных требований. Без конкретных требований есть риск потратить наше ценное время на ненужное повышение точности.
https://rusefi.com/s/howtocontribute
very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
my skype is arro239

Post Reply