Вопросы по эсуд

Это оффтопик или флудилка или курилка
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Вопросы по эсуд

Post by darxfame »

Доброго времени суток. Есть несколько вопросов по Вашему проекту и хотелось бы по возможности получить развернутый ответ. Заранее спасибо.

Итак, вот список вопросов:
- есть ли таблица накопления для катушек зажигания?
- есть ли таблица afterstart enrichment?
- какие таблицы для настройки РХХ?
- есть ли таблица впрыска при запуске двигателя?
- есть ли таблицы калибровочных кривых термисторов (CLT,IAT)?
- видели на форуме, что были попытки сделать измерение ускорения коленвала для rusEFI. Чем закончилось?
- Есть такая платка: hardware/CJ125_board - она рабочая? Есть ли поддержка в прошивке?
- в config/engines/ зашиты конфиги разных машин - это просто для удобства или любую новую машину нужно туда добавлять?
- для хранения изменяемых параметров и таблиц используется запись во флеш-память (эмуляция EEPROM). Не лучше ли использовать внешнюю EEPROM-память при частом включении/выключении зажигания в режиме ежедневной эксплуатации?
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: Вопросы по эсуд

Post by AndreyB »

darxfame wrote:- есть ли таблица накопления для катушек зажигания?
- есть ли таблица afterstart enrichment?
- какие таблицы для настройки РХХ?
- есть ли таблица впрыска при запуске двигателя?
- есть ли таблицы калибровочных кривых термисторов (CLT,IAT)?
Ответ кажется да по всем пунктам. Как вариант - почитать файл https://github.com/rusefi/rusefi/blob/master/firmware/tunerstudio/rusefi.ini или скачать TunerStudio и открыть этот файл и пройтись по менюшкам? Если еще и видео записать - то будет всем огромная помощь на будущее :) https://github.com/rusefi/rusefi/issues/373

darxfame wrote:- видели на форуме, что были попытки сделать измерение ускорения коленвала для rusEFI. Чем закончилось?
пока ничем. есть мнение, что нужен ниссановский опто-диск на 360 зубьев. Сейчас как раз наш индонезийский друг пробует ниссан на 360 зубьев запустить.
darxfame wrote: - Есть такая платка: hardware/CJ125_board - она рабочая? Есть ли поддержка в прошивке?
пока нет.
darxfame wrote:- в config/engines/ зашиты конфиги разных машин - это просто для удобства или любую новую машину нужно туда добавлять?
Это просто для удобства, новые машины добавлять туда 100% не нужно.
darxfame wrote:- для хранения изменяемых параметров и таблиц используется запись во флеш-память (эмуляция EEPROM). Не лучше ли использовать внешнюю EEPROM-память при частом включении/выключении зажигания в режиме ежедневной эксплуатации?
кажется там проблемы только с количеством перезаписывания, не с количеством чтения? а перезапись сейчас только при перенастройке. в любом случае - принимаем патчи :) можно например начать читать с sd карты.
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: Вопросы по эсуд

Post by AndreyB »

andreika wrote:Приветствую!

Подскажи, пожалуйста, по требованиям для маппинга пинов STM32F4 в прошивке rusEFI.
Вопросы такие:
1. Можно ли назначать для всех аналоговых датчиков произвольные каналы ADC на любой соответствующей ножке? Видел, есть упоминание в прошивке про "медленный" и "быстрый" АЦП, про ADC1 и ADC2... Имеет ли значение аппаратная привязка к конкретным каналам АЦП?
ADC может быть только на тех ножках, где можно ADC с точки зрения даташита процессора.
andreika wrote:2. Можно ли назначать произвольные пины для CAN? Есть ли разница, использовать ли CAN1 или CAN2? Видел функции isValidCan*xPin(), которые предписывают только PB6+PB12 и PD0+PD1. Или нет ограничений? В т.ч. по скорости? Что предпочтительнее?
CAN может быть только на тех ножках, где можно CAN с точки зрения даташита процессора.
andreika wrote:3. Есть ли ограничения для выбора пинов для Cam и Crank?
input capture может быть только на тех ножках, где можно timer channel 1 или 2 с точки зрения даташита процессора.
andreika wrote:4. Аналогичный вопрос для USART - можно ли использовать произвольные пины любых USARTов?

5. Тот же вопрос по SPI? Можно ли выбрать любые SPI на любых поддерживаемых их пинах? И для контроллера детонации, и для MicroSD-карты?
6. Есть ли ограничения на выбор GPIO-пинов для всего остального? Особенно для быстродействующих выходов зажигания и впрыска? ШИМ-пины тоже можно любые?
да
andreika wrote: 7. Может, я что-то ещё забыл про особенности маппинга ножек, и есть ещё рекомендации? :)
очень советую не начинать с дизайна личной платы, очень советую купить набор или собранную плату для начала.
andreika wrote:1. Можно ли использовать встроенный в STM32 hw USB-контроллер вместе с ESD-защитой? Будет ли это полноценной заменой отдельного USB-UART чипа? Видел, что встроенный используется в mini48, но в Frankenso почему-то стоит отдельный FT232...
Нужно обратить внимание, что на Frankenso два USB разъёма - один вовсю как раз hw USB-контроллер вместе с ESD-защитой
andreika wrote: 2. Если в проце нет ножки VRef, то это не страшно для работы прошивки? Видел, как в Frankenso она связана с VDDA...
3. Можно ли использовать встроенный в чип бутлоадер для загрузки прошивки по USART? Как лучше сделать управление пинами Boot0 и Boot1?
ответов качественных нет - я программист :(

очень еще раз советую не начинать с дизайна личной платы, очень советую купить набор или собранную плату для начала.
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Спасибо за ответы! (хотя я задавал их и не в этой ветке, а лично)
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: Вопросы по эсуд

Post by AndreyB »

Фаном могло бы было что-нибудь допилить :) Например управление cj125, или электродроссель, или автонастройку топлива :)
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

russian wrote:Фаном могло бы было что-нибудь допилить :) Например управление cj125, или электродроссель, или автонастройку топлива :)
Если сделаем платку, запустимся, то сразу бегом допиливать, а как же! :) И автонастройку можно сделать, и что-то ещё из функционала (возможно и cj125, пока не уверен). Вот электродросселя нет у меня, увы. В общем, что сможем, тем поможем!
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Вопросы по эсуд

Post by Abricos »

Чё-то я запутался ...
Блок управления мотором свой с нуля делать на это вы готовы ...
А вот электронную дросельную заслонку которая стоит от 10-50$ и 5$ Н-бридж Эта проблема ...???
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: Вопросы по эсуд

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
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Abricos wrote:А вот электронную дросельную заслонку которая стоит от 10-50$ и 5$ Н-бридж Эта проблема ...???
У меня многодроссельный впуск, и я не знаю, как "прилепить" к нему электропривод. Впрочем, я рассмотрю Вашу рекомендацию, спасибо.
Моя задача-минимум простая: в качестве эксперимента, попробовать применить прошивку rusEFI для ЭСУД своей машины. И, если это удастся, поделиться наработками.
Иных обязательств я на себя пока не беру и предпочитаю действовать итерационно.
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Позвольте ещё несколько вопросов.

1) Видел на форуме фразу "жмёшь Burn, зависают мозги секунды на 2-3, за которые двигло глохнет". Скажите, действительно ли при каждой записи во флеш (сохранении настроек или таблиц) происходит фриз на пару секунд? Как всё происходит на самом деле?

2) По поводу RTC и VBat в прошивке.
а) Чем будет отличаться работа прошивки, если VBat просто посадить на питание, а не на батарейку? Какой функционал завязан на резервное питание и не будет работать?
б) Что именно ухудшится, если для RTC использовать менее точный внутренний RC-генератор вместо кварца (т.е. STM32_LSE_ENABLED=FALSE)? RTC нужен только для диагностики и логов?

3) Действительно ли MAX9926 нормально работает с обычным датчиком холла в качестве датчика фаз (если сделать подтяжку к +5В)?

4) Автосборщик прошивок build_server собирает только 1 версию прошивки для "мозгов" STM32F4Discovery или способен собирать и выкладывать билды и с другими опциями компиляции?

5) Что именно пишется на карту памяти SDcard? Можно ли это настраивать? Можно ли вставлять/вытаскивать карту "на горячую"? И можно ли где-то скачать архивчик с примером содержимого карты памяти?

6) По плате Frankenso.
а) Ревизия 0.5 Frankenso ещё не выпущена в железе? Что-то не могу найти фотки платы...
б) И есть ли где-то список планируемых аппаратных изменений на ближайшую ревизию платы?
в) И ожидаемые даты выхода?
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: Вопросы по эсуд

Post by AndreyB »

текущий процессор stm32f407 включает только один банк flash, поэтому он не может одновременно выполнять из flash и писать во flash. Следовательно да, зависает при записи. Следовательно при работающем двигателе прошивка не пишет во внутренний, откладывает запись до момента остановки двигателя.

батарейка сейчас нужна только для правильного астрономического времени, которое сейчас нужно только для красивого имени лога на SD карточке. одна и та же прошивка работает и с кварцем, и без кварца - оно автоматически понимает, что кварца нет на старте.

действительно да

точнее две версии прошивки, точнее не для STM32F4Discovery а для stm32f407. домашнее задание увидеть две версии прошивки.

только логи на карточку. можно включать и выключать логи. немного по-живому работает, но не идеально

0.5 нет и не будет, пока не продадутся 5 собранных 0.4 :) вот такой шантаж.
блок питания из версии 0.5 возможно сегодня-завтра соберётся и пошлётся по почте на тестирование всплесками и так далее.

если тебе нравятся ответы - с тебя $3 donation, ссылка сверзу-справа.
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Спасибо за ответы, вопросов пока больше не имею...
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Вопросы по эсуд

Post by darxfame »

Поддерживается ли моновпрыск в прошивке?
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: Вопросы по эсуд

Post by AndreyB »

darxfame wrote:Поддерживается ли моновпрыск в прошивке?
Отвечу самоцитатой:
Как вариант - почитать файл https://github.com/rusefi/rusefi/blob/master/firmware/tunerstudio/rusefi.ini или скачать TunerStudio и открыть этот файл и пройтись по менюшкам? Если еще и видео записать - то будет всем огромная помощь на будущее :) https://github.com/rusefi/rusefi/issues/373
На самом деле вопрос - поддерживается ли он железом, потому что Peak & Hold в стандартном железе нет. Есть зачатки платки под P&H чип, но её никто не тестировал.
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Как-то немного странно составлен список доступных портов для триггеров в TunerStudio (Primary input channel & Cam Sync/VVT input):

Code: Select all

PA2 TIM9_CH1
PA3 TIM9_CH1
PA5 TIM2_CH1
PA6 TIM3_CH1
PA7 TIM3_CH2
PA8	TIM1_CH1
PC6 TIM3_CH1
PE5 TIM9_CH1
PE6 TIM9_CH2
При этом в списке есть только часть портов, на которых доступны эти CH1 & CH2 таймеров TIM1, TIM2, TIM3, TIM9.
Я к тому, что было бы неплохо добавить в тот же список и другие похожие порты:

Code: Select all

PA0 TIM2_CH1
PA1 TIM2_CH2
PA9 TIM1_CH2
PA15 TIM2_CH1
PB3 TIM2_CH2
PB4 TIM3_CH1
PB5 TIM3_CH2
PC7 TIM3_CH2
PE9 TIM1_CH1
PE11 TIM1_CH2
Тем более что некоторые из них (PE9, PE11) уже есть и в getInputCaptureChannel(), и в getInputCaptureDriver(). Другие тоже есть, но частично ;)
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: Вопросы по эсуд

Post by AndreyB »

Очень хорошее замечание, сделал https://github.com/rusefi/rusefi/commit/62c8b512467a7c0bacc40b49e0dc508311b0bfae
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

tunerstudio-port-connection-settings-double.png
tunerstudio-port-connection-settings-double.png (7.88 KiB) Viewed 32081 times
Неопрятненько...

P.S. Кстати, надо будет что-то придумать для аппаратных конфигураций с всего одним UART-портом для связи с компом. Так, чтобы можно было подключаться по одному порту и консолью, и ТюнерСтудио на выбор... Как по мне, было бы здорово, если бы прошивка умела сама определять, кто к ней подключен (без джамперов и т.п.), и переходить в соответствующий протокол общения по UART-порту (если пришла isKnownCommand(), то переходим в режим ТюнерСтудио, иначе - в режим efiConsole)...
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: Вопросы по эсуд

Post by AndreyB »

дублирование убрал, спасибо!

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

еще есть идея https://github.com/rusefi/rusefi/issues/220 - принимаю патчи :)
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Есть предложение сделать engineConfiguration->sdCardSpiDevice по аналогии с hip9011SpiDevice и cj125SpiDevice. Тем более, что sdCardCsPin уже есть.
И, конечно, засунуть его в mmc_card.cpp, к примеру, так:

Code: Select all

hs_spicfg.ssport = ls_spicfg.ssport = getHwPort(boardConfiguration->sdCardCsPin);
hs_spicfg.sspad = ls_spicfg.sspad = getHwPin(boardConfiguration->sdCardCsPin);
// >>>>
mmccfg.spip = getSpiDevice(engineConfiguration->sdCardSpiDevice);
В преддверии появления других конфигураций плат это было бы весьма кстати... ;)

* * *

Вообще, неплохо бы подумать над рефакторингом engine/board HAL... Чтобы разделить конфиги машин и конфиги плат.
Т.е. такие вещи как

Code: Select all

boardConfiguration->cj125CsPin = GPIOB_0; // rev 0.4
должны, по идее, сидеть не в условном dodge_neon.cpp, а в конфиге board Frankenso (И Frankenstein тоже, если там есть)...
Т.е. нужно бы вынести все board-dependent вещи из config/engines/* в config/boards/*. Создав там соответствующие конфиги для плат.
Как минимум, по двум причинам:
1) Во-первых, могут появиться те же машины, что уже были, но на других платах. Будет проще мэйнтейнить общие части конфигов.
2) Будут появляться новые платы, совместимые с прошивкой, но с другими маппингами пинов, с другой периферией. И реюз конфигов машин для этих плат был бы кстати.
Причём, для GPIO тоже желательно бы добавить прослойку HAL, например:

Code: Select all

// config/engines/example.cpp
boardConfiguration->injectionPins[0] = EFI_LOW_OUT_CH12; // *NOT* GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = EFI_LOW_OUT_CH11; // *NOT* GPIOB_8; // Frankenstein: low side - out #11
По аналогии, как это уже сделано с EFI_ADC_*.
И тогда назначение каналов I/O будет в config/engines/*, а сами каналы будут маппиться на конкретные пины в config/boards/*.
Конечно, в будущем можно будет и вовсе избавиться от hard-coded конфигов машин, но пока предлагаю хотя бы начать с этого рефакторинга...

P.S. Если это уже было в issues - сорри. Я как акын - что вижу, то пою... :)
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: Вопросы по эсуд

Post by AndreyB »

Спасибо! немного закоммитил, но есть нюансы :)

во-первых, есть существующие (три) пользователя - им ломать конфиги не хочется

во-вторых, некое микро-выделение есть в виде setFrankenso_01_LCD() и так далее

в-третьих, не понятен окончательный план - целевая аудитория жуткой гибкости на уровне исходников? Кажется нормальные пользователи по факту всё-таки в Tuner Studio, получается нужно еще один уровень меты - rusefi_frankenso.ini и удобные названия там... Не понятно :) Как-то улучшать можно, но сейчас думаю не самое важное. Лучше багу какую починить или фичу сделать :)
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

За патч спасибо - то что нужно!
По поводу рефакторинга GPIO, да, ситуация понятна, тогда спешить пока не будем.

Но нужно бы доделать конфигурирование плат в нынешнем виде:

1) CAN. Поскольку уже задействованы canxxPin, то нужно добавить автоопределение canDeviceMode по пинам. Например:

Code: Select all

static can_device_mode_e getCanDeviceMode(brain_pin_e pinRx, brain_pin_e pinTx) {
	if ((pinRx == GPIOA_11 && pinTx == GPIOA_12) || (pinRx == GPIOB_8 && pinTx == GPIOB_9) || (pinRx == GPIOD_0 && pinTx == GPIOD_1))
		return CD_USE_CAN1;
	if ((pinRx == GPIOB_5 && pinTx == GPIOB_6) || (pinRx == GPIOB_12 && pinTx == GPIOB_13))
		return CD_USE_CAN2;
	return CD_OFF;
}
void initCan(void) {
//...
	boardConfiguration->canDeviceMode = getCanDeviceMode(boardConfiguration->canRxPin, boardConfiguration->canTxPin);
}
И юзать его вместо EFI_CAN_DEVICE:

Code: Select all

static CANDriver *getCanDevice() {
	static CANDriver *canDrivers[] = { NULL, &CAND1, &CAND2 };
	return canDrivers[engineConfiguration->canDeviceMode];
}
Плюс допилить isValidCanxxPin() для поддержки всех вариантов:

Code: Select all

static bool isValidCanTxPin(brain_pin_e pin) {
	return pin == GPIOA_12 || pin == GPIOB_6 || pin == GPIOB_9 || pin == GPIOB_13 || pin == GPIOD_1;
}

static bool isValidCanRxPin(brain_pin_e pin) {
	return pin == GPIOA_11 || pin == GPIOB_5 || pin == GPIOB_8 || pin == GPIOB_12 || pin == GPIOD_0;
}
Правда, там есть ещё рудиментарный кусок кода, с которым непонятно что делать: :oops:

Code: Select all

#if EFI_PROD_CODE
	enableFrankensoCan();
#endif
2) UART. Тут сложнее. Ни consoleUartDevice (в том виде как он задуман первоначально), ни binarySerialxxPin сами по себе задачу не решат. Есть, к примеру, пин PC10, который может быть как USART3_TX, так и UART4_TX. Поэтому нужно делать либо на базе consoleUartDevice, но более хитрого:

Code: Select all

"Off", "UART1 (PA9,PA10)", "UART1 (PB6,PB7)", "UART2 (PA2,PA3)", "UART2 (PD5,PD6)", "UART3 (PB10,PB11)", "UART3 (PC10,PC11)", "UART3 (PD8,PD9)", "UART4 (PA0,PA1)", "UART4 (PC10,PC11)", "UART5 (PC12,PD2)", "UART6 (PC6,PC7)"
Либо сделать на базе binarySerialxxPin, аналогично CAN'у, но для конфликтных пинов (PC10,PC11) выбрать первый попавшийся USART3. Второй вариант проще...
И перейти на него с нынешнего TS_SERIAL_*.
2a) Для "старой" EFI_CONSOLE_* тоже надо, по идее?
2b) Может быть тогда вынести в конфиг и CONSOLE_MODE_SWITCH* ? Не знаю, насколько это нужно...

3) Есть ещё совсем уж жуткие рудименты типа egt2can и neo6m - надо ли их трогать, или пусть уже сидят на своих пинах от греха подальше? :lol:

4) Добавить переназначение для красного и оранжевого LED (убрать LED_ERROR_* и LED_WARNING_*).

И вот тогда на 99% железо уже будет отвязано - и не так важно, на уровне конфига машины или платы, главное, что на уровне soft. И все будут счастливы! :)
По идее, если всё сделать аккуратно, то ничего у юзеров сломаться не должно.

Я могу попробовать сделать соответствующий патчик, если так будет быстрее, но могу что-нибудь упустить (пока пишу код "вслепую")...
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: Вопросы по эсуд

Post by AndreyB »

Что-то закоммитил про CAN - но я подозреваю пины не обязаны быть именно такими парами, или обязаны? Я сделал немного по-другому.

Про консоль - а как обрабатывать начальную конфигурацию заливки в голый чип? Про лампочки - а как обзабатывать ошибку записи конфигурации? https://github.com/rusefi/rusefi/issues/341

Спасибо за CAN патчи!

Предлагаю заиметь хотя бы stm32f4discovery?
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: Вопросы по эсуд

Post by AndreyB »

PS:

Code: Select all

	// todo: confirm that same AF works for all pins on all devices?
	mySetPadMode2("CAN TX", boardConfiguration->canTxPin, PAL_MODE_ALTERNATE(EFI_CAN_TX_AF));
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

russian wrote:Что-то закоммитил про CAN - но я подозреваю пины не обязаны быть именно такими парами, или обязаны? Я сделал немного по-другому.
Сделано замечательно, спасибо! Да, наверное, пины лучше сделать независимыми - я-то не пробовал их в работе, но надеюсь, что проблем не возникнет...
russian wrote:Про консоль - а как обрабатывать начальную конфигурацию заливки в голый чип?
Реальных варианта по консоли всего два - либо собирать версии прошивки под конкретный дефолтный UART (плохо), либо, как STM-овский бутлоадер, слушать сразу по всем каналам Rx, и сделать активным первый же, который "заговорит". Т.е. у прошивки, получается, должно быть первоначальное состояние "uninitialized", в котором прошивка ещё не знает, на какой плате она сидит.

Code: Select all

#define DEFAULT_ENGINE_TYPE UNINITIALIZED_ENGINE // *NOT* CUSTOM_ENGINE
И в этом состоянии, кстати, прошивка не имеет права устанавливать output ни на одном из GPIO! Мы пока не можем строить никаких предположений в плане pinout, даже по LED'ам!
Фактически, это будет свой мини-бутлоадер для таких случаев (т.е. когда в защищенной части флеша ещё не записан правильный engineType), который будет просто ждать первого коннекта по UART. По умолчанию, вероятно, стоит назначить встроенный USB-UART (SDU1) и слушать на нём, а по остальным RX-пинам просто ловить изменение состояния с 1 на 0. Т.е. не обязательно честно парсить все эти Rx, просто ловим изменение - если "проглотим" первый байт, не страшно, ТюнерСтудио всё равно спамит запросы сигнатуры по нескольку раз... По идее, на незадействованных портах не должно быть шума - везде есть внешние пулдауны/пулапы, поэтому ложных срабатываний быть не должно (хотя бутлоадер должен бы подождать пару миллисекунд после старта, чтобы транзиенты угомонились). А юзер тоже понимает, что никакие из внешних датчиков и т.п. пока не должны быть подключены, и от них тоже не будет ложных сигналов...
В общем, всё это звучит сложновато на первый взгляд, но пока ничего проще в голову не приходит, так чтобы было robust...
Кстати, можно сделать "финт ушами", и на работающем блоке "запекать" в файл прошивки на компе текущую конфигурацию с блока, создавая свою личную резервную копию для рекавери - как это сделано в секу...
russian wrote:Про лампочки - а как обзабатывать ошибку записи конфигурации?
Судя по вышеописанным соображениям, дёргать лампочки на незнакомой плате мы не имеем права. Т.е. сидим и молчим, пока к нам не законнектятся по консоли, и не зададут engineType (раз уж мы решили пока не разделять HAL engine и board, будет один интегральный параметр типа "железа")...
russian wrote:// todo: confirm that same AF works for all pins on all devices?
Судя по даташиту текущего семейства STM32F4, AF9 - общий для всех вариантов CAN. Так что вроде бы должно работать. А вот с UART'ами чуть хуже - там уже AF7 и AF8, и надо выбирать из этих двух в зависимости от номера UART.
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: Вопросы по эсуд

Post by AndreyB »

Всё это красивые и верные идеи - но один вопрос: почему?

Почему мы не можем взять и решить, что на всех платах красная лампочка будет на PD14? Стоят ли усилилия большей гибкости геммороя пользователей по инициализации прошивки с UART?

Я склоняюсь к варианту, что стандарная прошивка всё-таки будет требовать более-менее стандартную плату, хотя бы по четырём или шести главным пинам.
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

russian wrote:Всё это красивые и верные идеи - но один вопрос: почему?
Почему мы не можем взять и решить, что на всех платах красная лампочка будет на PD14? Стоят ли усилилия большей гибкости геммороя пользователей по инициализации прошивки с UART?
Геморрой, пожалуй, будет только в том, что при первичной инициализации платы юзер не будет видеть горящую красную лампочку, пока не законнектится с компом. Если это критично, то, конечно, тогда придётся зарезервировать PD14 для стандартной прошивки в виде исключения, ничего не поделаешь... А в остальном предложенный вариант будет удобным и прозрачным для юзеров, разве нет?
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: Вопросы по эсуд

Post by AndreyB »

andreika wrote:особенно когда мои платы, наконец, приедут
Заводи ветку про твою плату? :)
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Вопросы по эсуд

Post by andreika »

Есть, кстати, и альтернативный вариант - при старте пытаться опознавать известные платы по различиям состояний на входах. Т.е. логика очень простая - если на старте видим на нужных пинах нужное состояние, значит, это плата ХХХ. Если нет - значит, плата по умолчанию... Уж этот вариант точно не повредит никому.
russian wrote:
andreika 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: Вопросы по эсуд

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
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Вопросы по эсуд

Post by Abricos »

С угодаикой платы по пинам ... если тока в конечно результате будет всплывать окошко подтвердите что это ваше ...
Ито кода будут разьёмы под каждую марку авто ...
К примеру у меня у VW Один и тодже блок управления мотором и фишка одна и таже но моторы Один 4 цилиндра другой 6 ... и кажется такаяже тема и на новые vw ... Не забывайте Пока контингент самопаЙшиков и каждый припаевает пины как ему хочется ... Воть .....
Post Reply