ECU on FPGA

Это оффтопик или флудилка или курилка
Post Reply
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

ECU on FPGA

Post by UA3MQJ »

Посоны, общий привет! Сразу извиняйте, если что не так.
В общем, давно у меня мысли о ЭБУ на ПЛИСе. Ну сами понимаете, там практически полный реалтайм, все в один такт, куча дел, которые можно делать параллельно.
Но в двигателестроении я как-то совсем слаб. Ну так, общие понятия есть, и опыт владения 11м корытом на ваз 21124, мелкие там ремонты, перепайка шнурка дпкв, и замена датчика положения валов. Ну сброс ошибок, не более того.
И, в общем, есть тут идея, переделать снегоходный карбюраторный двигатель, на инжекторность. Ну и открытый проект на ПЛИС сделать по управлению двигателем.

О себе коротко, радиолюбитель коротковолник, с позывным. Паять умею, электронику понимаю с детских цифровых спектрумовских времен. Раньше программировал АРВ, но МК давно разлюбил и перешел на ПЛИСы. Плисами уже нормально овладел за пару лет. Использую Verilog и плисины от Altera. Они по цене оптимально. Даже пишу статьи про популяризацию ПЛИС на хабре. Иногда МК все же требуются, например те же сетевые контроллеры или usb контроллеры обычно даже в виде phy это контроллер, который надо понимать, шить... В общем без мк все равно никак нельзя, поэтому в STM32 тоже разбираюсь, но в контексте Libopencm. Почему ПЛИС? Потому что сами знаете, плюс переносимость хороша, пробовал перенос проектов с Altera на Lattice - в целом никаких проблем. Так же между поколениями микросхем идет нормальный переезд. И даже в будущем, когда не будет этих ПЛИСин, обязательно будут какие-то другие, но все они подойдут. Подому что это HDL - определение логики - аппаратчина, хоть микросхемы заказывай. В общем, жалко учить какой-то МК, жалко создавать проект под какой-то МК, если его потом перестанут делать. Отчасти, и выбор stm32 был по причине того, что оно arm, и всетаки совсем оно не вымрет. Так что приоритет на ПЛИС. А, да. Ну образование техникум, потом академия по специальности ВС. Так что программирование и вычислительное железо знаю. По работе всю дорогу - программист. Паялово - это хобби по большей части.

Так вот. Идея - эбу на ПЛИС. Хотелось бы примерно оценить пробелы моих знаний. Опыт у вас есть, собак уже наелись, может чего сразу подскажете.

1. на сколько сложно переделать карб на инжектор? 1 цилиндр от снегохода буран
2. на сколько датчиков и какого типа нужно чтобы элементарно запустить эту вот тарахтелку?
3. гуглил, видел материалы о том, что существуют модели двигателей внутри компьютера, на которых можно отлаживать эбу. может есть информация?

Со свой стороны, готов всячески помочь в освоении ПЛИСостроения. Имея опыт программирования МК и ПЛИС, хочу сразу сказать, что сначала это, конечно, отрыв башки. Но в целом, разработка на ПЛИС - на много проще!!! Вот в разы! Причем она по настоящему идет модульно и блочно. Причем не обязательно всем быть глубокими гуру этого ПЛИСа. Сейчас вот делаю проект синтезатора на ПЛИС. И все чудесно получается в виде блоков. Фактически, под конкретные требования просто берешь набор аппаратных модулей, соединяешь их между собой и проект готов. В моем случае - это блоки для управления внешними устройствами, генераторами сигналов, блоки для приема данных. В случае с ЭБУ это будут блоки датчиков логических, аналоговых итд.

В общем, буду рад почитать камменты, а может я вообще не туда попал )
С уважением, Алексей. Спасибо
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

Вопросы проще задавать, чем отвечать :)

пожалуйста прочитай http://forum.cxem.net/index.php?/topic/133403-%D0%B2%D0%BF%D1%80%D1%8B%D1%81%D0%BA-%E2%80%94-%D1%8D%D1%82%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE/
слишком много ответов http://rusefi.com/forum/viewtopic.php?t=213

итого - ты хочешь и карб переделать, и про датчики понять, и плату сделать вероятно с нуля, и прошивку вероятно сделать с нуля?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

Плюс поиск на FPGA по этому форуму - например http://rusefi.com/forum/viewtopic.php?f=8&t=1012
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: ECU on FPGA

Post by UA3MQJ »

russian wrote:пожалуйста прочитай...
Благодарю!
russian wrote:итого - ты хочешь и карб переделать, и про датчики понять, и плату сделать вероятно с нуля, и прошивку вероятно сделать с нуля?
Более реальным вижу вариант уже на инжекторном двигателе заменять эбу. Про датчики - да, хотелось бы понять.
По платам, я при создании прототипов уже давно решил использовать готовые платы с ПЛИС, и к ним делать платы расширения. Причем я не один, кто решает так делать, из более серьезных разработчиков.
Платы я делаю в альтиуме. Сам не произвожу, заказываю в китае. Но про плату говорить рано. И про прошивку тоже. Сейчас цель - собрать информацию, оценить масштабы бедствий.
С нуля писать - это однозначно не задача для одного человека. Да и наработки все равно уже существуют, возможно их можно портировать/адаптировать. Да даже алгоритмы работы знать - это уже не с нуля.
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

UA3MQJ wrote:Да даже алгоритмы работы знать - это уже не с нуля.
http://rusefi.com/wiki/index.php?title=Manual:Software:Fuel_Control

http://rusefi.com/wiki/index.php?title=Manual:Software:Ignition_Control
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

UA3MQJ wrote:мысли о ЭБУ на ПЛИСе. Ну сами понимаете, там практически полный реалтайм, все в один такт, куча дел, которые можно делать параллельно.
Я не знаю правильных терминов, но мне кажется, что в ЭБУ задач уровня 100МГц таймера просто нет. Могу поправиться - в случае впрыска в коллектор (низкое давление топлива) такой точности кажется не нужно, в случае непосредственного впрыска топлива высокого давления - да, может быть, но нам до туда как до звёзд пока.

Пока мы сидим в реальноси низкого давления, намного важнее мониторинг, диагностика ошибок, алгоритмы и управление медленными агрегатами. Я искренне на основании своего детского опыта не вижу нужны в большей точности, чем моя наивная 1МГц имплементация.

Есть ли желания для начала запустить впрысковую машину на rusEfi на базе stm32, написать пару улучшений в прошивку на C++, оглядеться и на основании опыта реального предлагать, что именно и где именно можно качественно улучшить ПЛИСом?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: ECU on FPGA

Post by Abricos »

Давай так ...
У тебя есть свободные 1000$ ???
У тебя есть свободные 8 часов в день каждый день на протяжении 1 года ???
У тебя познание в переделки моторов (станки токарные фрезерные сварочьные опораты) ???
У тебя есть опыт проектирование печатных плат и понятие индукцыя и электромагнитная индукцыя эфир и прочий бред ???
У тебя есть опыт по написанию программ в с+++ java делфи и прочий бред ???


Если ты проста хочешь завести Один снегоход а не 1000 штук ... то купи готовую плату RusEFI или Январь ...
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: ECU on FPGA

Post by UA3MQJ »

Спасибо за ответы. Большое спасибо. У вас собран, понят и систематизирован огромный объем информации. Для меня это целое море новой информации. Надо ее получить, как-то переварить, а там уже и попытаться прийти к выводам.
Вообще, да. На фоне скоростей двигателя, скорость работы МК - это несколько порядков. Даже при генерации звука и музыки (та тема, где я сейчас плисоводничаю), частоты до 20 КГц, а в моторе всё же поменьше. Не пытаясь притянуть задачу к плис, там просто надо очень много управляющих сигналов генерить (полифония, микшеры, фильтры, коммутация). А по впрыскам, увы, я даже не в курсе, в чем там разница. Неужели требуются такие высокие точности и скорости, что МК не успевает?
russian wrote:Пока мы сидим в реальноси низкого давления, намного важнее мониторинг, диагностика ошибок, алгоритмы и управление медленными агрегатами. Я искренне на основании своего детского опыта не вижу нужны в большей точности, чем моя наивная 1МГц имплементация.
Да. Я понял. Ну, хочу сказать, что первый восторг от ПЛИСов и мигания лампочками у меня уже давно прошел. И я на самом деле не считаю ПЛИС - универсальным решением всех проблем. На самом деле нахожусь в поиске некоего оптимального набора инструментов для решения широкого круга задач. Считаю, что самая дорогая часть проекта - это программист. Его время стоит дорого. И поэтому, если я учился писать под avr и сейчас для проекта с USB мне пришлось переучиваться на STM32, то я просто выкинул время на изучение на помойку. Со временем начинаешь задумываться об ограниченности свободного времени, и времени вообще. И как-то становится без желания что-то изучать, если эти знания потом нужно будет выкинуть. В этом плане ПЛИС - это те знания, которые со временем не стареют. Наработки на тех же Opencores пойдут и через 10 лет.
Но, к сожалению, математика с дробями, развесистая логика - это проблема для ПЛИС. Потому что на какую-то более менее сложную логику, приходится создавать более сложную стейт машину. А мозг человека всетаки больше императивный. Я уже для себя принял факт того, что без микропроцессорного ядра обойтись почти невозможно. Почти. Можно упороться, конечно, но смысла в этом нет. Время стоит дорого. Однозначного решения я пока не нашел. И пока решил взять самый доступный МК но архитектуры, которая завтра не изчезнет, как attiny2313, какой-нибудь arm. Доступнее всех стм32. Инструмент gcc noneabi выбрал тоже из соображений универсальности. Хотя плисовое решение на софт ядре внутри плис - весьма интересное решение. Но всё это требует определенный объем ячеек плис, и уже самыми доступными сейчас моделями циклонов в 4-6 тысяч ячеек (за 900-1200 рублей) будет не обойтись. А может и обойтись. Я пока в поиске решения. Дело в том, что каждый производитель предлагает свое софт ядро: Xilinx - microblaze, Altera - nios. И мне это очень не нравится, ибо приняв одну из сторон, будет потом трудно сменить производителя. Знания в помойку. Видимо, надо либо подбирать что-то из ядер на Opencores, какой-нибудь OpenRISC. Либо вообще свой универсальный мастер-конструктор архитектуры под выбранные параметры, чтобы он сгенерил в итоге набор Verilog файлов для архитектуры. На это надо время, конечно. Поэтому пока что пользую stm32. Тут главное, чтоб при переходе от низких давлений к звездам, не пришлось все выкинуть, но как я понял, все пишется по максимуму отвязано.
russian wrote:Есть ли желания для начала запустить впрысковую машину на rusEfi на базе stm32, написать пару улучшений в прошивку на C++, оглядеться и на основании опыта реального предлагать, что именно и где именно можно качественно улучшить ПЛИСом?
Я думаю, что это было бы единственным осмысленным вариантом аргументированно что-то предлагать. К сожалению, у меня пока нет платы STMDiscoveryF4 или другого F4, есть куча STM32F103 и одна борда на stm32l152 discovery. Но надо пока еще осмотреться, почитать. Вика есть, материалы есть, сырки на гите нашел. Мне теперь чтива на месяц. Спасибо еще раз, и простите за многобуков.
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: ECU on FPGA

Post by UA3MQJ »

Abricos wrote:Давай так ...
Давай. Ко мне можно на ты, без проблем.
Сразу просто скажу заранее, наперед, что я не один. У нас определенный коллектив специалистов в разных направлениях. Один может коробку перебрать, второй деталь выточить, третий сервер написать, четвертый сервомотор перемотать, пятый сделать дом из бруса, шестой делать мебель и так далее. Каждый из нас сам по себе не может всего на свете, поэтому мы все помогаем друг другу.
Abricos wrote:У тебя есть свободные 1000$ ???
Это вообще не проблема.
Abricos wrote:У тебя есть свободные 8 часов в день каждый день на протяжении 1 года ???
Вот это - да. Это вот проблема. Но часы тоже покупаются.
Abricos wrote:У тебя познание в переделки моторов (станки токарные фрезерные сварочьные опораты) ???
Познаний в переделке моторов у меня лично нет.
Abricos wrote:У тебя есть опыт проектирование печатных плат и понятие индукцыя и электромагнитная индукцыя эфир и прочий бред ???
Есть, образование, опыт проектирования, заказа производства, собственного изготовления, пайки. Когда моих знаний не хватает - мне помогает товарищ, в основном по аналоговой схемотехнике.
Abricos wrote:У тебя есть опыт по написанию программ в с+++ java делфи и прочий бред ???
Есть. Более 10 лет. Опыт Pascal, asm x86, Delphi, c++ Qt, erlang, сетевые приложения, базы данных, сетевые многопользовательские игры, даже немного web(angular, react). По мк avr на asm, stm32 си libopencm3. По ПЛИС опыт на Verilog по Altera и по Lattice.
Abricos wrote:Если ты проста хочешь завести Один снегоход а не 1000 штук ... то купи готовую плату RusEFI или Январь ...
Есть желание завести именно 1000 штук. Пустить устройство в серию на реальном местном заводе по производству снегоходов. При этом очень хочется сделать проект открытым. Иначе мне не интересно.
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: ECU on FPGA

Post by Abricos »

Почему так написал ... на форуме много таких постов но как-то глохнет всё буквально за месяц ...
А чем тебе готовый франки не устраивает ??? И пускать на поток ??? Всё уже готова ... по цене договоримся ...
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: ECU on FPGA

Post by UA3MQJ »

Abricos wrote:Почему так написал ... на форуме много таких постов но как-то глохнет всё буквально за месяц ...
Так это нормально. Человек потерял интерес и ушел. Мотивы могут быть разными.
Abricos wrote:А чем тебе готовый франки не устраивает ??? И пускать на поток ??? Всё уже готова ... по цене договоримся ...
У меня пока мало информации по проекту. Если он достаточен, для работы с двигателем от снегохода, то это и отлично. Другое дело, что мне, как разработчику, делать будет и нечего (кроме как поучаствовать в проекте).
По поводу договоров по цене, покупками/продажами у нас занимается другой человек. Я в деньгах ничего не понимаю ))))
Только вот уточню - в wiki написано, что проект с открытым исходным кодом. Ты предлагаешь договориться по цене. Что ты хочешь продавать? Изготовленные блоки, под конкретный двигатель, на отдельно изготовленной и смонтированной печатной плате на stm, плюс обвязка и все это в корпусе? Как это соотносится с правилами проекта?
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: ECU on FPGA

Post by Abricos »

UA3MQJ wrote:
Abricos wrote:Почему так написал ... на форуме много таких постов но как-то глохнет всё буквально за месяц ...
Так это нормально. Человек потерял интерес и ушел. Мотивы могут быть разными.
Abricos wrote:А чем тебе готовый франки не устраивает ??? И пускать на поток ??? Всё уже готова ... по цене договоримся ...
У меня пока мало информации по проекту. Если он достаточен, для работы с двигателем от снегохода, то это и отлично. Другое дело, что мне, как разработчику, делать будет и нечего (кроме как поучаствовать в проекте).
По поводу договоров по цене, покупками/продажами у нас занимается другой человек. Я в деньгах ничего не понимаю ))))
Только вот уточню - в wiki написано, что проект с открытым исходным кодом. Ты предлагаешь договориться по цене. Что ты хочешь продавать? Изготовленные блоки, под конкретный двигатель, на отдельно изготовленной и смонтированной печатной плате на stm, плюс обвязка и все это в корпусе? Как это соотносится с правилами проекта?
Это всё спорные вопросы ... к примеру Тесла Моторс тоже опен сорс (Tesla motors open source ) ... Все твои запросы и нужды решаются за $ и будет вам радость ... может сразу обсудить это с вашим финансистом ??? Франки поддерживает всё што угодно ... если будет заказ в 1000шт то можно и под вашы зодочи заточить (так как у вас 1 цылиндор а плата поддерживает 12 лишнее вам не нужно .))))
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

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

Re: ECU on FPGA

Post by puff »

чтойто? hip?
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

наброски аппаратного генератора углов,подобного тмс570. но там он не работает не только у меня.
нужно еще много причесывать и определиться с реакциями на разные ситуации.
потом интерфейс еще думать и самое сложное для меня: критерий обновления компараторов.
====
https://github.com/peredelkin/fpga_hwag_test/blob/master/test.v
осторожно,не сожгите себе глаза - код пилить и пилить
окло 700-800 LE в таком виде
Screenshot_20191210_221441.png
Screenshot_20191210_221441.png (98.53 KiB) Viewed 34356 times
а вот главная моя проблема на 16.12.19
Screenshot_20191216_180303.png
Screenshot_20191216_180303.png (35.6 KiB) Viewed 34289 times
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

Я пока не понимаю важности этой работы :( Кажется, что много усилий - но не явно, какие проблемы решаются. У меня пока нет настолько принципиально нерешённых проблем :(
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

08.02.2020
сылка на гит
краткий видеообзор
пока все плохо и из этой схемы можно вытянуть максимум 50 МГц (квартус дает Fmax около 100 МГц без компараторов угла и без переключения 360->720).
возможно боьшую частоту не получить изза большой разрядности счетчиков (24 бита некоторые).

счетчик периода 24 бита
оконный компаратор 24 бита
поиск метки 24 бита
счетчик зубов 8 бит
счетчик генератор отсчетов 22 бита
счетчик отсчетов в периоде 19 бит
асинхронный счетчик углов 24 бита
синхронный счетчик углов 24 бита

пробовалотдельно счетчик анализировать. разница около 60 МГц при понижении разрядности до 16 бит.
параллельно веду некоторую документацию по регистрам.
интерфейс асинхронный параллельный.
в пн приедут платки. буду пробовать подключить и хотя бы поморгать лампочкой в заданных положениях.
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »


Пара счетчиков задают момент срабатывания.
Интерфейса нет - всё пока на плис.
Теперь нужно делать плату мк+плис.
Объясните кто нибудь,как описать spi на верилоге? )) :mrgreen:
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

Рассинхронизация из-за помехи от искры.
Фильтр есть. Пока можно свалить все на очень длинные провода. Надо бы на машине проверить - может и не будет так сбоить. При меньшем зазоре вероятность сбоя выше многократно.


Отправлено с моего H4213 через Tapatalk

User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: ECU on FPGA

Post by AndreyB »

нет вступления, без контекста ничего не понятно. в голове историю ветки не удержать. хочешь напомнить с начала и до конца, на что мы смотрим?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

можно сказать,сделал hwag(HardWare Angle Generator), но работать пока не хочет.
https://www.ti.com/lit/ug/spnu515c/spnu515c.pdf
страницы с 1115 по 1136. у меня лишь только основа,которая показана на странице 1118 плюс синхронные счетчики на каждую катушку/форсунку(пока только зажиганием пытаюсь заняться).
отдалил катушку подальше от платы,но результат тот же - теряется синхронизация.
spi интерфейс уже делал туда,но пока всё разобрал,чтобы причесать можно было.
держу в курсе.
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: ECU on FPGA

Post by Abricos »

Коробочька обклей фольгой и накроль котушку ... Шелкания услышеш ...
peredelkin
Posts: 33
Joined: Sat Jun 24, 2017 7:48 am
Location: Neftekamsk

Re: ECU on FPGA

Post by peredelkin »

начал переписывать с 0.
пока что стало стабильней,но в определеных условиях все еще глючит при работе катушки зажигания
хваг.gif
хваг.gif (135 KiB) Viewed 25976 times
Post Reply