eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2016-12-30 11:12 am
Entry tags:

Эмулятор джиповского датчика коленвала

Закончил железяку и оформил в коробочку из-под селедки. Вот такая штука получилась:


Светодиоды с кнопочками и выходной мосфет с подтягивающими резисторами распаял на макетках:

Желтая перемычка отключает внутреннюю подтяжку стока (я не прозванивал джиповский датчик на предмет того, где расположена подтяжка: в нем, или в ЭБУ, поэтому сделал перемычку). С обратной стороны напаяны резисторы 0603:

Схемка проста до безобразия:

Железяка в действии:

И еще фото:

Коробочка, вид сзади:

Пока отлаживал, неоднократно вмешивался в код прошивки для STM32. Скажем, выкинул затворный резистор у выходного транзистора, заменив режим работы соответствующей ноги мелкоконтроллера на push-pull. Изменил методику пересчета оборотов (чтобы как можно ближе было к целым сотням, а то изначально какой только шаг не получался) и т.п.
Функционирует железяка просто: как только включаем, генерируется сигнал, как будто бы коленвал вращается на 1000об/мин. Кнопка у зеленого светодиода уменьшает скорость на 100об/мин, около красного — на столько же увеличивает. Допустимая скорость ограничена значениями в 200 и 6000 об/мин. Если достигается минимальная скорость, загорается зеленый светодиод, максимальная — красный. Кроме того, можно мелкоконтроллер по USB подключать и рулить оттуда (заодно и смотреть текущую скорость).
Если железяка получит развитие, можно будет туда и LED-экран добавить.

[identity profile] eddy-em.livejournal.com 2016-12-30 04:30 pm (UTC)(link)
На макетке F030 — да, т.к. этот мелкоконтроллер без USB идет. Никакой PL2303 с другой стороны нет.
А вот на F042 по-идиотски как-то NUCLEO сделали (я на работе заказывал, чтобы на ней потренироваться): там с одной стороны платы F042, а с другой st-link на F103. И USB подключен только к F103. Могли бы и на 042 еще одно гнездо запаять. Придется колхозить USB проводочками. Хорошо хоть, у них новая прошивка st-link'а, которая умеет транзит на UART.

Под 030 я себе давным-давно рисовал девборду с разводкой еще и на PL2303, но слишком здоровая дура получилась: невозможно ЛУТом разместить их на двухсторонней плате компактно, чтобы еще и все ноги микроконтроллера выходили наружу.

[identity profile] simsun.livejournal.com 2016-12-30 04:45 pm (UTC)(link)
> Никакой PL2303 с другой стороны нет.
была бы - прямо сейчас заказал бы:)

или хотя бы такой разъёмчик туда ST-LINK хотелось бы, хотя может и лишнее,



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

[identity profile] eddy-em.livejournal.com 2016-12-30 05:05 pm (UTC)(link)
Зачем ST-link? Там же отдельно выведен UART1 для бутлоадера. Я вообще уже забыл, когда последний раз прошивал STM32 через дурацкий st-link. Переходник на PL2303 значительно дешевле самого простого стлинка.
Вот, правда, с 042 придется пользоваться st-link'ом (он все равно на девборде распаян). Но у меня makefile сразу написан и на то, и на другое.

А почему бы питание не подавать через p-канальный мосфет с низким Rdson? Стабилитроном выставить пороговое напряжение, и будет МК запитан лишь когда напряжение дойдет до требуемого уровня.

[identity profile] simsun.livejournal.com 2016-12-30 06:01 pm (UTC)(link)
с бутлоадером я не знаком совсем пока, а с ресетом - тогда уж лучше диоды:) шотки тока надо мелкие надыбат что ли

[identity profile] eddy-em.livejournal.com 2016-12-30 06:33 pm (UTC)(link)
Да там ничего сложного: установить stm32flash, подключить дешевым переходником UART<->USB на PL2103 UART1 микроконтроллера к компу, вместо перемычки boot удобней кнопку забульбенить. Жмем кнопку, жмем reset, отпускаем reset, отпускаем кнопку. Пишем make boot. Вуаля!

А Шоттки с низким прямым напряжением дорогущие. Дешевле мосфет с резисторами и стабилитроном.

[identity profile] simsun.livejournal.com 2016-12-30 06:48 pm (UTC)(link)
> Да там ничего сложного: установить stm32flash,

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

а про диоды я вот:

понимаю, что ща так наверное не делают, но TTL схемотехника у мя со школы и ужё всё:)
ps NRST если память не изменяет внутренне у этого МК подтянут к +

[identity profile] eddy-em.livejournal.com 2016-12-30 06:50 pm (UTC)(link)
Вообще не въехал в цель этой схемы...

[identity profile] simsun.livejournal.com 2016-12-30 06:58 pm (UTC)(link)
Стлинк юзает ресет, а если на нём висит кондёр, то всё обломается, ресет там быстрый нужен, ну типа развязать. На 5В всё отлично, на 3.3В тоже норм, но наверное правильнее все же Шотки что бы с 0.2 начиналось или сколько там у продвинутых, а не 0.6 как у обычне диодиев

[identity profile] alex-avr2.livejournal.com 2016-12-30 05:32 pm (UTC)(link)
>>Хорошо хоть, у них новая прошивка st-link'а, которая умеет транзит на UART.

А вот тут поподробнее!
Программатор работает как виртуальный ком порт? Физисески подключать UART надо или через SWD может?

[identity profile] eddy-em.livejournal.com 2016-12-30 05:38 pm (UTC)(link)
Их последняя версия прошивки st-link представляет собой дико комбинированное устройство (кажись, они полностью выбрали все доступные концевые точки МК). Помимо прошивалки и VCP там еще два каких-то непонятных устройства. Из-за этой галиматьи непонятно, как написать нормальное правило для udev, чтобы только один симлинк был на программатор.

Работает он как обычный транзит: Rx/Tx микроконтроллера подключены к его UART'у, а он уж все проксюет в USB.

[identity profile] alex-avr2.livejournal.com 2016-12-30 05:41 pm (UTC)(link)
Понял, спасибо. На дискавери помню были от программатора RX/TX разведены, но не работали. Видать допилили.

[identity profile] eddy-em.livejournal.com 2016-12-30 06:36 pm (UTC)(link)
Да мне самому в новость. Еще буквально год или два назад их st-linkv2 такое не умел. Подозреваю, что эта же фича будет и у дорогущих "коробочных".
Вообще, поражаюсь с цены этой NUCLEO: такое впечатление, что китайцам насрать и они не хотят ее копировать. Понятное дело, у них прошивка st-link довольно древняя (был инцедент, когда в какой-то партии получилось считать бинарь — с тех пор и пошли копеечные стлинки).

А вообще, если бы ST опубликовали код прошивки своего стлинка, было бы намного веселей! Потому как реверсить это по даташитам — тот еще мазохизм. Хотя, на каком-то форуме (кажись, изыдиэлектроникс) я встречал тему о реверсе и вроде как благополучном.