давай FPGA впиндюрим ! и обьеденим проекты ?

Железо внутри ЭБу и железо снаружи ЭБУ
Post Reply
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Зачем ?

1. Во первых потому что я уже сделал пол проекта :)
что зря трахался чтоль ?
[video][/video]
Извиняюсь за кометы, я не особо режиссер "ютуб-ер"

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

Триггер у меня уже написан под CHRYSLER V6, насколько помню чуть ли не самый сложный из всех движков. (именно V6-V8)
cam+crank_label2.jpg
cam+crank_label2.jpg (133.6 KiB) Viewed 46809 times
Триггер хер положишь !, смотри на диаграмму в конце видео. ( тайммарк 3:30 )

Скачки оборотов с 300 до 50 000 за 0,01сек обрабатываются как должное.
Такого в жизни не бывает, это тестбенч.
В ПЛИС терминологии это тест на баги в нереально жестких условиях с софтового/аппаратного эмулятора.

Определение угла с 1/2 !!! оборота !!! в аварийном режиме (обрыв одного из датчиков коленвал/распредвал)
Либо с одного CAM либо с одного CRANKSHAFT !
V6 CAM & CRANKSHAFTS Emulator 222.jpg
V6 CAM & CRANKSHAFTS Emulator 222.jpg (44.16 KiB) Viewed 46805 times
- Spark1 - Spark6 это уже вычисленные свечки по одному распредвалу.

В штатном режиме с обоих даже с 1/4 оборота КОЛЕНВАЛА !

Короче задержки запаздывания и срыв угла вращения просто не реальны. ( зачем я и вмандил ПЛИСку )
Дело в том что что бы не было написано под FPGA, оно все происходит В "ФИЗИЧЕСКОЙ мультизадачке"
на абсолютной скорости. Конкретно обработка CAM/CRNKSHAFT.

3. Что бы разгрузить проц, взвалить большую часть обработки сигнала (сенсора кромя аналоговых)
и вывода управляющих сигналов (форсунки, свечки, соленойды АКПП) на ПЛИСку !!!

Пусть он (проц) занимается более приятными делами не требующих критичного отклика.
К примеру как у меня в проеке - цветной ЖК интерфейс.
Сделано на самом дешевом типе цветных ЖК, параллельный 16 битный FSMS

4. А главное FPGA на плате ЭТО КРУТО и очень проффесионально смотриться даже как маркетинговый ход ;)
Не один "индюк" уже рта не откроет, мол ардуринский детский проект :D
Да глянь на любой пром контроллер (Особенно, где спарка с TCM (АКПП))
везде и контроллер и FPGA стоит.

А прикинь именно PCM делать, где и управление АКПП и всей подкапотной периферией ?!
Проц то то тоже не резиновый, да и RTOS это не идеал для такой задачи.

=========================================================================================================================
Если russian согласишься - готов сделать мануал по Verilog-FPGA, вроде FPGA для микроконтрольщика, Си-шника за 1 час на примерах :)

Можно сделать просто версию PCM rusEFI c FPGA,
вон у AEM же куча версий контроллера. Вот и у нас будет под разные задачи / кошелек :)

Я планирую приступить к стендовым испытаниям и допилке примерно с середины-конца апреля 2016
вот на этом железе :
IMG_20150819_132036.jpg
IMG_20150819_132036.jpg (497.87 KiB) Viewed 46805 times
IMG_20150820_175608.jpg
IMG_20150820_175608.jpg (726.37 KiB) Viewed 46805 times
Есть идеи ?
Естественно и действующую версию rusEFI попутно обкатаю.
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Abricos »

Привет...
Прочёл пост мало чё понял :)) ...
У тебя два разных блока управления один мотором второй коробкой ???
Со сложностью моторов наверно это не про v обратные а про 3 цылиндровые ...
И я не уловил процес слияния двух проэктов с вашей стороны что предложено ???
Тема вообще хорошая проэкт быстрее будет развиватся...
Last edited by Abricos on Tue Apr 05, 2016 1:07 am, edited 1 time in total.
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Abricos »

Эта интерпидер ... я на таком впервый раз мотор менял в 17 лет ...:)))сам ...
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by puff »

вот это движуха! а ценник? даже плюс сотня долларов к цене - уже ощутимо. и идёт в разрез с основной целью русефи (насколько я помню, там соревнования какого-то класса предполагают из говна и палок без вложений строить болиды)
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Abricos wrote:Эта интерпидер ... я на таком впервый раз мотор менял в 17 лет ...:)))сам ...
ага "интер-пидер" :D :D :D где услышал такое прозвище ?
я 17 лет назад помоем только на мерс190 движки менял, секс с K-Jetronic-ами и.т.п.
или это 27 назад было, могу ошибаться.
17 лет назад вроде первый интер-пидер только был LH1
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

puff wrote:вот это движуха! а ценник? даже плюс сотня долларов к цене - уже ощутимо. и идёт в разрез с основной целью русефи (насколько я помню, там соревнования какого-то класса предполагают из говна и палок без вложений строить болиды)
Да ну блин, какие деньги к черту ? ты тут из за денег разве ?
этож секс проект для души ;)

Да и нет там денег особо 10ка$ не сотня ни как.
JTAG алтеровский 600 рублей.
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Abricos »

ali00ff wrote:
Abricos wrote:Эта интерпидер ... я на таком впервый раз мотор менял в 17 лет ...:)))сам ...
ага "интер-пидер" :D :D :D где услышал такое прозвище ?
я 17 лет назад помоем только на мерс190 движки менял, секс с K-Jetronic-ами и.т.п.
или это 27 назад было, могу ошибаться.
17 лет назад вроде первый интер-пидер только был LH1
В 17 лет ... Мне было 17 ... а не 17 лет назад ...))
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Abricos wrote:Привет...
Прочёл пост мало чё понял :)) ...
У тебя два разных блока управления один мотором второй коробкой ???
Со сложностью моторов наверно это не про v обратные а про 3 цылиндровые ...
И я не уловил процес слияния двух проэктов с вашей стороны что предложено ???
Тема вообще хорошая проэкт быстрее будет развиватся...
Привет, не заметил 1ый твой пост вопрос, чет рассмешил второй пост про интер-пидор :D

Дождусь что russain скажет.
Если полениться, отмажеться - что толку выкладывать ?
Там на объяснение про слияние время уйдет как на 40 страниц кода :)
Если лично интересно - ну Ок изложу поподробней.
У меня самостоятельный проект готов, но пока не запускался на реальном моторе. (климат не позволял)
На эмуляторе датчиков коленвал/распредвал работает четко.

Блок у меня 1, (когда маму нарисую, сейчас на макетках)
но на ней И проц STM (контроллер) который вычисляет коэффиценты смеси и углы опережения, И FPGA, которая
занимается непосредственной работой с аналоговой частью + так же (что критично по скорости и ресурсам) она определяет в каком положении валы.
+ закидывает в STM значения об/мин.

Работает даже без проца и расчетов, по усредненной программе.
STM рассчитал по датчикам MAP/MAF+TPS+RPM, обновил оптимальные значения для работы в FPGA
и.т.д.

В полное мере у меня уже готов триггер положения валов (угла заж)
причем триггер зверский. Не повалишь. (я диаграммы с коментами выложу, так проще будет)

Смеси примитивно, по фикс значению, опережения нету 0град
но уже можно вводить ОТ КУДА ТО (я вот и думаю с rusefi) значения опережения зажигания/впрыска +/-35град
и коэфф обогащения.
Уже как то договориться надо с russain в мне принципи то пох как - можно и коэффициент +/- % с пляской от 1:14,7 а можно и тупо условное значение на длит открытия форсунки.

Проще говоря - ПЛИСину как то нужно влепить между процем rusefi и силовым аналогом + датчики валов.
Проц рассчитывает кол смеси и углы опережения , ну и регулярно закидывает значения в ПЛИСину
ПЛИСина же будет работать постоянно даже если сдохнет проц, типа в аварийном режиме, по усредненным параметрам (опережение 0град, смесь 14,7:1)
Разгрузка проца тут колоссальная. (Да так и сделано на всех пром контроллерах, выше января и бош под УАЗ конечно :D )

Соответственно сконектиться между проектами по какому то универсальному протоколу SPI/CAN.
По мне бы конечно проще самопальный параллельный протокол, вроде : clk + 8 проводов дата (байт за 1 такт)
хоть на 4мгц, хоть на 50. Со стороны FPGA на скорость и загрузку по ресурсам пох, а вот от скажем деление 8 на на 5 знаков
сожрет ПЛИСку как гамбургер. Обработка сигналов, когда мнОООООго сигналов вот что кайфово на ней делать.
Как сказал будет ликбез если будет интерес :)



Лан...... где там главный лентяй ? ;)
Last edited by ali00ff on Tue Apr 05, 2016 6:41 pm, edited 1 time in total.
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Abricos wrote:В 17 лет ... Мне было 17 ... а не 17 лет назад ...))
я в 18 мерсы, да мерсы :)
короче помню ельцин был вместо уе-пута :D
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Дополню :

Что я хочу от проекта rusEFI
1. Смеси
2. Консоль
3. Мне скучно одному всем этим сексом заниматься :D

Из rusEFI можно будет смело выкинуть все что касается обоих валов, обороты и угол будет получать уже готовенькие
и добавить скажем граф интерфейс.
User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Maxi »

Хорошая идея на самом деле - много узких мест в контроллере закрываются (когда контроллер от будильника с float).

Какой конкретно FPGA используется? cколько он стоит?
denisvak
Posts: 403
Joined: Thu Oct 03, 2013 8:00 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by denisvak »

С самого начала планировал использовать FPGA в своем ECU но пока нет времени на освоение новой для меня области...по этому пока все программно :D А так очень гибко все получается...и нет ограничений по каналам таймеров :) Можно ещё само ядро запустить и тогда все в одном флаконе :)
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by puff »

вылезут вопросы лиценирования:-)

про консоль - вообще в том виде в каком она есть сейчас я вряд ли захотел бы заиметь её в своем проекте. совсем не объект вожделения. ей очень сильно не хватает нормального дизайнера ui. хотя мб у тюнеров авто устройство мозга схоже с программистским, и всё наоборот ок. с другой стороны пытался пару раз усиленно думать-предтавлять себе идеальную консоль - фигушки, нет идей, как это должно выглядеть.

а почему смеси нельзя в fpga уложить?
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: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by AndreyB »

Я пока не дошёл до проблем, где без FPGA никак :( Т.е. сначала нужна задача, а FPGA может быть вариантом решения. Какую задачу не решить просто stm32f4?
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
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

denisvak wrote:ограничений по каналам таймеров :)
- верно !, сколько угодно столько и шлепай таймеров.
Создать таймер по обьему кода/работы не больше/не сложнее чем просто про инициализировать готовы таймер в контроллере.

К тому же все ф-ции в плис срабатывают по захвату чего то.
Что бы слепить мультизадачный аналог Си шного void
достаточно захватывать CLK (глобальный клок)
always@(posedge clk)
begin
// тут пиши что хошь, будет выполняться каждый такт клока 50мгц (на циклон2)
end

Но при желании можно указать в скобках rising/faling edge ЛЮБОЙ НОГИ, ЛЮБОГО ФЛАГА, да пох чего.
always@(posedge CAM_IN)
begin
// ф-ция будет срабатывать при каждом повышении сигнала с датчика колена
//к примеру тут мы сделаем вот что :
FLAG1=1;
end

а тут >

always@(posedge FLAG1) // МОЖНО и NEGEDGE, можно кучу условий через и/или && ||
begin
// ф-ция будет срабатывать при каждом переходе битовой перемененной FLAG1 в лог 1.
end

denisvak wrote:нет времени на освоение новой для меня области...по этому пока все программно
- За день-два освоить можно при знании Си, а если по скайп с трансляцией экрана кто то поможет - то достаточно
буквально 2-3 примера разобрать, чтоб кто то перевел Verilog синтаксис на Си с пояснениями и в чем различия аналогичных действий (mcu/fpga)

- Да он и проще чем Си !!!, язык (Verilog синтаксис паскаля) и много гибче !, Чего стоит определение переменных с битах
с возможностью обращаться к любому биту любой переменной напрямую. в Си даже типа BOOL нету, трахайся со сдвигами,
а при обработке сигналов работа то как раз с битами а не байтами !

Регистров как в проце нет !, о них даже думать не нужно, они сами создаются, когда ты переменную с модификатором input/output/inout назначаешь
и обращаешься в дальнейшем уже как к переменной, зная что значение тут же окажется на пинах ! (если output reg)
Если же input reg то в переменной автоматом окажиться значение пинов, ( Пины указываются мышкой в "пинпланере" по желанию.)
module xpcm(
input nrst, //RESET
input clk, //CLOCK
input CAM_IN, //Camshft Input
input CRANK_IN, //Crankshaft Input
//input Key, //BUTTON
output reg [3:0]led, // 4 LEDS
output reg [3:0]SparkPlug = 4'b0000,
output reg [7:0]Next_Spark_1_6_State
);
Вот и создал ты регистры!, К примеру [3:0]led это 4 светодиода :)
А вот так обратился
led[0] <= Cam_Long_0_FLAG; //1ый = переменой Cam_Long_0_FLAG
led[1] <= SPARK_ON; //2ой = переменой SPARK_ON;

От чего даташиты(только характеристики) и reference manual отсутствуют как класс,в них просто нечего писать, кромя характеристик ))
У тебя чистый камень. Нужна периферия - возьми да присобачь любую (кромя DAC/ADC)
denisvak wrote: Можно ещё само ядро запустить и тогда все в одном флаконе :)
Ядро/ядра NIOS2 можно, да, но там Си голый совсем роскоши типа HALов нема :(
Так же НЕТУ ФЛЭШИ, DAC и ADC :(
По этому как раз лучше иметь отдельный контроллер.
Нууу и ядра платные ;)

Оговорюсь, уже есть SOC-и это FPGA с апп. ARM ядром/ядрами (все ведройды и гейФоны на них), там понятно рулит CMSIS, но они блядь стоят по 100$
да и штука новая, как ими пользоваться мало кто знает. Так что лучше по старинке, внешний контроллер :)

================================
Раз уж заговорили о нюансах FPGA
В общем давайте так - сделаю я видео урок с разбором пары примеров и пояснениями где что, и какой это эквивалент в Си.
Да прилеплю ссыль, или отдельным постом. Так и так собирался для своего форума делать.
Так будет проще и быстрей понять те существенные плюсы, которые дает сея железяка и ее язык. (к стати языков на выбор вроде аж 8 )) )
Ну и сложно / не сложно прикините. Я считаю что нех сложного, если без идиотизма и теории объяснить на живом примере.
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

russian wrote:Я пока не дошёл до проблем, где без FPGA никак :( Т.е. сначала нужна задача, а FPGA может быть вариантом решения. Какую задачу не решить просто stm32f4?
Ну я про версию PCM вроде как говорю.
Про !-=ВЕРСИЮ=-! а не полную КОН=ВЕРСИЮ проекта ))

Проблемы ?
- Ну добавь 30-40 I/O на АКПП
с не маааааленьким таким алгоритмом ! как нить выложу, давно обещал все времени то же не было (

Да если добавить цветной LCD интерфейс с тачскрином в салон.
/* И попробуй только сказать что мол это лишнее.... :twisted: с таким же успехом можно сказать что строчник 1620 лишний ;) */
Консоль информативно - надстроечная хорошо, но всеж это сторонний, дополнительный девайс. А так all inclusive

Ну и о том что можно обойтись, мол влезет - не спорю!, но с дуру можно и цельный PCM с упр. кондеями, соленоидами всякой подкопотной периферии, диагнозами и.т.п.
на диком ASM-е в PIC16 8мгц затолкать, но это как с дуру хуй ломать :)

На многофункциональные промышленные ЭБУ (они же PCM) - SPC5 ставят они по мощнее чем STM32 хотя той же ST !
http://www2.st.com/content/st_com/en/products/automotive-microcontrollers.html
Уж там запасу с лихвой, но тем не менее лепят и ПЛИСину. Они же то же не дураки...

А не приятней разве будет когда ресурса контроллера с запасом и за скорость вообще париться не надо !??
чтоб, с приоритетами не ебаться (знаю ты любитель ОС). Не сидеть часами в отладчике и охуевать чтоб подвинуть, да как бы
пару .us выкроить, которых как раз и не хватает в каком то форс-мажорном моменте, когда нужно одновременно (не в ОС очереди а одновременно!)
выполнить 2-3 каких то действия. Это не смотря на то, что пол проца еще свободно и по большей части рабочего цикла ресурса-времени с запасом.
Только не лукавь ;)

В общем заведу свой движок на макетках, сделаю видос с комментариями ПО КОДУ, сам скажешь - что так все же заебаче будет, если творить PCM версию.
Соберу твою франкензу, прикину как бы скомпоновать с минимум изменений. Если использовать дисковери, то как раз вижу место удобное
на плате, там, где сейчас площадка под напаечный STM. С учетом что fpga схематически как раз "между процем и сенсорно - силовой частью" и должна стоять.

Я еще думаю ты еще ломаешься от недоверия к fpga в виду отсутствии навыка работы с ней...
Ну так это легко исправить, зная как ты пишешь - 3-4 часа скайпа и будешь херачить как всю жизнь работал.
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: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by AndreyB »

Меня пугает, как много букв.

Ты можешь двумя строками сказать, какую конкретно мою ПРОБЛЕМУ сейчас FPGA решит? У меня сейчас нет ПРОБЛЕМ, которую FPGA мог бы решить. Делать "на будущее" или "потому что круто" у меня нет ни времени, ни сил - у меня гонка через 10 дней :)
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
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

Maxi wrote:Хорошая идея на самом деле - много узких мест в контроллере закрываются (когда контроллер от будильника с float).
Какой конкретно FPGA используется? cколько он стоит?
Я делаю на том что под рукой, сейчас на Cyclone2 (500-600р). Навороченный триггер положения валов с 2 аварийным режимами. (обрыв 1 из датчиков колен/распред валов)
Газо/искро-распределение по усредненной программе (без коррекций опережения и обогащения)

С учетом что там уже пол проекта - логических ячеек используется всего 9%
ЛЮБЫЕ коды FPGA совместимы с любыми другими FPGA, как упоминалось выше
- регистров тут нету, чистый камень, вся специфика чип задается кодом.
разница у них лишь в размерах, основной критерий кол-ве лог ячеек.
Т.е. влезет с запасом в "MAX2" за 300р.

И да, конечно только Altera! она хоть и дороже аналогов Xilinx, но у нее very human-friendly IDE в сравнении с ISE Xilinx это как сравнить Keil+CubeMx и CoCox :D
Причем БЕСПЛАТНАЯ если без "мега функций" (синтезируемая периферия, для чипсетов материнок и одно платных компов, всякие IDE, SCISI, DDR3, E-PCI и.т.п. кои нах нам не нужны! )

Что бы прицениться - вот полноценная, в меру фаршированная учебная SDK на Altera Cyclone IV а это ооочень большой чип.
На нем в пору одноплатники или граф ускорители писать. Да еще и с прогером и даже UART переходником ))
http://ru.aliexpress.com/item/Free-shipping-ALTERA-FPGA-EP2C5T144C8N-fpga-board-USB-BLASTER-fpga-development-board-fpga-altera-board/793643076.html
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

russian wrote:Меня пугает, как много букв.

Ты можешь двумя строками сказать, какую конкретно мою ПРОБЛЕМУ сейчас FPGA решит? У меня сейчас нет ПРОБЛЕМ, которую FPGA мог бы решить. Делать "на будущее" или "потому что круто" у меня нет ни времени, ни сил - у меня гонка через 10 дней :)
Лентяй ты ептить ! :)
На будущее. Иди гоняйся, кто тебя торопит ?!
я еще месяц движек буду заводить.

Как я тебе скажу какую конкретно ТВОЮ ПРОБЛЕМУ
От куда я знаю какие у тебя проблемы ?... :mrgreen:
Вот мои с акпп и ненавистью к халтуре арДурИно-ОСам решит :D
Если делать серьезную вещь, так делать основательно.

Ну не хочешь хрен с тобой, ставлю вопрос иначе - ПОМОЖЕШЬ МНЕ СО СМЕСЯМИ ? у тебя благо 3 года опыта.
я сам все сделаю по своему
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by puff »

мог бы ли кто-нибудь еще лет 15 назад даже помыслить, что люди будут едва ли не в одиночку разрабатывать мозги для моторов... :shock:
впечатляет!
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

puff wrote:вылезут вопросы лиценирования:-)

а почему смеси нельзя в fpga уложить?
- не если честно, то у меня просто опыта нету, мне придется с нуля, если лентяй не поможет.
у меня конечно есть 8 канальный осц, я могу обвесить родной мозг да передрать от туда, но этого мало.

Ну и проц всеж нужен если большой проект делать, как я и хочу
я и ЖК интерфейс цветной хочу и автоматы. И у fpga нету АЦП :( и даже флеши нету.
А ацп проца вполне хватит.

Кстати при интерфейсе с тачскрином можно и без консоли обойтись.
Ну дизайн можно придумать. На FPGA с графикой работать, это ПЛАТНОЕ (твой вопрос про лиц.) ядро портировать, SDRAM клеить... неее!
FPGA хорош для обработки сигналов на абсолютной скорости. А рутину на проце.
ali00ff
Posts: 14
Joined: Mon Apr 04, 2016 1:16 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by ali00ff »

puff wrote:мог бы ли кто-нибудь еще лет 15 назад даже помыслить, что люди будут едва ли не в одиночку разрабатывать мозги для моторов... :shock:
впечатляет!
И не говори ! обнаглели, зажрались :)
да помню 15 лет назад 1 канальный осц на 4msa покупал за 600$ :roll:
а сейчас за 100 8 канальник взял с генератором 8 канальным.

Что уж говорить за youtube и торенты ! такая экономия времени при освоении чего то нового.
Тогда книжку то найти толковую проблема была...
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: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by AndreyB »

ali00ff wrote:Ну не хочешь хрен с тобой, ставлю вопрос иначе - ПОМОЖЕШЬ МНЕ СО СМЕСЯМИ ? у тебя благо 3 года опыта.
я сам все сделаю по своему
я попробую, но ты оптимист - я пока считаю, что ничего не понимаю во всём этом :( особенно когда речь доходит до настройки. авто-настройка TS мой предел :(
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
XDA
Posts: 441
Joined: Wed Oct 23, 2013 7:28 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by XDA »

Время назад, я уже предлагал использовать плисину для двигателя :) (http://www.rusefi.com/forum/viewtopic.php?f=10&t=345&p=3234)
Итого, на данный момент сделана модульная система, где на ПЛИС ТПУ(условно -тайм процессор юнит), который занимается обработкой ДПКВ и прочих датчиков на валах, на выходе - в процессор - РПМ, оцифрованное в окне ДАД, ДМРВ, ТПС, ток ионизации т.д., всё это передаётся в процессор - STM32
Процессор получает одно прерывание на один такт сгорания - и всё :)
процессор кормит ТПУ/ПЛИС углами зажигания и впрыска и всех остальных актуаторов.

на столе всё прекрасно работает,
Закуплен V8, думаю уже скоро будем заводить :)
Теория хороша в том и только том случае, если она может достоверно предсказать результаты каждого нового опыта
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by UA3MQJ »

russian wrote:Меня пугает, как много букв. Ты можешь двумя строками сказать, какую конкретно мою ПРОБЛЕМУ сейчас FPGA решит? У меня сейчас нет ПРОБЛЕМ, которую FPGA мог бы решить. Делать "на будущее" или "потому что круто" у меня нет ни времени, ни сил - у меня гонка через 10 дней
ПЛИС всегда пугает. Это другой мир. В него можно прийти по своей воле, а можно путем боли и страданий от того, что привычные инструменты не могут решить задачу. Не могут то, что надо сделать по ТЗ. Банально, надо сделать 32 ШИМ генератора для управления вентиляторами. В МК столько аппаратных ШИМов, как правило, нет. Да да, можно там какие-нибудь микросхемы найти с spi загрузкой. Ну либо, нужно обработать нажатие 120 кнопок/датчиков срабатывания. Не нужно искать такой МК и изучать его. Просто выбирается ПЛИС нужного размера и количества GPIO. У нас была задача - сделать клон электрооргана юность, причем не в цифре, а с аналоговым выводов всех меандров, да плюс их коммутация. А их там 204 штуки. На МК никак. Пробовали и так и сяк. И на 16-ти МК не получилось ))) В случае с ПЛИС не задача натягивается на МК, где-то задачу может упростят, а просто решают задачу. Выясняется, сколько для этого надо ресурсов, и берется ПЛИС нужного размера. А если это уже массовое производство, то по HDL модели можно даже заказные микросхемы делать.
ali00ff wrote:К тому же все ф-ции в плис срабатывают по захвату чего то.
Что бы слепить мультизадачный аналог Си шного void
Сравнивать HDL и Си - это ошибка. Можно еще больше запутать.
ali00ff wrote: достаточно захватывать CLK (глобальный клок)
always@(posedge clk)
begin
// тут пиши что хошь, будет выполняться каждый такт клока 50мгц (на циклон2)
end
Вот тут все верно. Если логика не будет большой, то можно достичь порядка 250 МГц.
ali00ff wrote: Но при желании можно указать в скобках rising/faling edge ЛЮБОЙ НОГИ, ЛЮБОГО ФЛАГА, да пох чего.
always@(posedge CAM_IN)
begin
// ф-ция будет срабатывать при каждом повышении сигнала с датчика колена
//к примеру тут мы сделаем вот что :
FLAG1=1;
end
А вот это ошибка. ВСЕ always блоки должны работать на одном клоке. Схемы должны быть синхронными. Если какие-то части работают на разных частотах, то между ними нужно выполнять cross clock domain.
подробнее тут http://www.fpga4fun.com/CrossClockDomain.html
Возможно на простых схемах вы не заметите проблем, если будете на входе always подавать выходы, допустим, триггеров. Но на таких местах синтезатор уже выдаст серьезный warning.
А проблема возникнет, когда вы по сигналу с триггера, котрый встает с задержкой на переключение, начнете считывать регистр, значение которого меняется по клоку, а он может оказаться в середине между 1 и 0 и привет метастабильность. Еще любят пугать гонками. Но суть - клок должен быть один. А если вы хотите читать CAM_IN, то в always клок то будет тот же самый, а CAM_IN уже внутри в IF и далее уже то, что задумано.
ali00ff wrote:а тут >

always@(posedge FLAG1) // МОЖНО и NEGEDGE, можно кучу условий через и/или && ||
begin
// ф-ция будет срабатывать при каждом переходе битовой перемененной FLAG1 в лог 1.
end
То же самое. Кучу условий - внутри блока. Потому что куча условий - это будет некая асинхронная схема на логических элементах. Результат ее работы - фронт - будет отставать от фронта клока. И те же проблемы, что были выше.

Может показаться сложно, но это не сложнее, чем разобраться в тактировании СТМ. И уж точно проще, чем курить АВР и конфигурировать флаги настройки оборудования. Кстати, недавно была интересная статья, которая всетаки позволяет упростить код на Verilog и сделать его более читаемым, чтоли. Не знал, очень понравилось. Положу, вдруг пригодится, в общую плисоводческую копилку https://habrahabr.ru/post/321676/

В общем, на мелких проектах было все норм. А вот когда схема становится действительно большой... то жизнь заставляет знать такие вещи, что я описал выше. Хотя это, в общем-то не сложно. И далее применимо на любой другой плис. Но в целом, речь о том, что проектирование на ПЛИС не стоит сравнивать с программированием на Си. Это скорее проектирование на микросхемах 155-й серии, только схемы "рисуются" словами и более абстрактно.
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: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by AndreyB »

UA3MQJ wrote:Банально, надо сделать 32 ШИМ генератора для управления вентиляторами. В МК столько аппаратных ШИМов, как правило, нет.
Текуший подход rusEfi - программный ШИМ на 32 канала, на базе одного 1МГц таймера.
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
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Maxi »

UA3MQJ wrote: была задача - сделать клон электрооргана юность, причем не в цифре, а с аналоговым выводов всех меандров, да плюс их коммутация. А их там 204 штуки. На МК никак. Пробовали и так и сяк. И на 16-ти МК не получилось )))
думаю ruki.sys

в 2001 решали задачу кореляционного приема 12-ти частот. Кореляционный прием - это далеко не меандр вывести. там 24 умножения на такт опроса. Т.е. если просто вывод - то это примерно как 48 частот - легко...
так вот один ПИК образца 2001 года это делал - и в нем даже таблицы не хранились а на лету генерировались виртуально.

вывести 204 меандра на одном современном mcu - плевейшее дело!
UA3MQJ
Posts: 9
Joined: Fri Mar 03, 2017 6:44 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by UA3MQJ »

Maxi wrote:думаю ruki.sys
Эхх.. руские форумы. Какая бы область не была - первым делом надо оскорбить. Делиться знаниями и опытом не принято, видимо. Даже в рамках открытых проектов.

Потом, как правило, идет упоминание факта о своих прошлых достижениях:
Maxi wrote:в 2001 решали задачу кореляционного приема 12-ти частот. Кореляционный прием - это далеко не меандр вывести. там 24 умножения на такт опроса. Т.е. если просто вывод - то это примерно как 48 частот - легко...
так вот один ПИК образца 2001 года это делал - и в нем даже таблицы не хранились а на лету генерировались виртуально.
Вот для сравнения ответы с других форумов на совсем другую тему, но по применению ПЛИС:
Зачем там ПЛИС? Там 8-ми битного микроконтроллера Z80 хватало с головой, который успевал кроме того еще и все остальное делать, включая вывод графики на экран.
Я делал в 96г по такой схеме управление фильтром, мне не понравилось...
Может не будем такими?
Maxi wrote:вывести 204 меандра на одном современном mcu - плевейшее дело!
Как?
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: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by AndreyB »

UA3MQJ wrote:Эхх.. руские форумы. Какая бы область не была - первым делом надо оскорбить. Делиться знаниями и опытом не принято, видимо. Даже в рамках открытых проектов.
немного по теме https://hbr.org/2015/12/getting-to-si-ja-oui-hai-and-da
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
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: давай FPGA впиндюрим ! и обьеденим проекты ?

Post by Maxi »

UA3MQJ wrote:
Maxi wrote:думаю ruki.sys
Эхх.. руские форумы. Какая бы область не была - первым делом надо оскорбить. Делиться знаниями и опытом не принято, видимо. Даже в рамках открытых проектов.
ох уж эти руские разработчики - нихрена не умеют. но других учат. проблемы разводят на ровном месте.
Maxi wrote:вывести 204 меандра на одном современном mcu - плевейшее дело!
Как?
А вот так - берешь и пишешь! Вообще проблем не вижу. чтоб срань в 200misp не могла 204 меандра вывести - фантазии тех кто в лоб на яве пытается это сдлать...
Post Reply