Проект "MaxController"

Автор jeka, 23 Май 2010 в 23:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

jeka

Поиски нормального контроллера для вела к сожалению успехом не увенчались. Поэтому зрела идея собрать свой контроллер, и созрела.
Проект - хобби, в бизнес превращать не хочется. Поэтому делаем все для людей и собственного удовольствия.
Что я хочу от контроллера. В иделе:
1. Низкое потребление в режиме бездействия (<1ма). 60 ма от китайского контроллера (или двух на полном приводе) - сутки простоя и пол батареи нет.
2. Регулировка максимального тока.
3. Множество мелочей, такие как индикация заряда батарей, управление поворотниками и т.д.
4. Рекуперация с регулируемым ограничением по максимальному току и аналоговым управлением.
5. Диапазон допустимых напряжений: 20v - 100v.

Возможно нужные функции:
- реверс (если не той стороной поставили колесо)
- задний ход


Железо:
- Схема должна быть защищена от глюков микроконтроллера, т.е. одновременно 2 плеча мосфетов одновременно не могут быть открыты.
- Аварийное схемное закрытие мосфетов при большом токе.
- Схема и разводка печатной платы простая и интуитивно понятная, сжигание мосфетов не должно отправлять в гроб другие компоненты (максимум - драйверы мосфетов).
- При неправильном подключении контроллер не должен сгореть.
- Схемная часть с распространенными деталями, максимально простая и универсальная.
- Выход на 12v для питания доп. электрооборудования (лампочек, поворотников и т.д.) с макс. током 5A
- 5 свободных входов
- 4 управляемых выхода 12v, в т.ч. на стоп-сигнал по ручке тормоза.
- Съем сигналов с обмоток мотора для возможности крутить колесо без датчиков холла.
- Съем потребляемого/отдаваемого тока и напряжения батарей.
- Внешний дисплей (не оязателен) с кнопками для установки на руль. Соединяется он с контроллером по 3м проводам (плюс-минус-data). С его помощью можно менять любые настройки контроллера.
- Разумеется, jtag интерфейс для внутрисхемной перепрошивки.
Ручки газа-тормоза также можно подключать к дисплею (ликвидируем паутину из проводов).
- Возможно, будет полезен акселерометр.

Прошивка.
Прошивка с открытым исходным кодом (GPL). Ее может доработать по своему вкусу всякий желающий.
Прошивка писаться будет чуть позже, сейчас нужно заложить нужный функционал в схему. Если есть дельный предложения по функционалу, озвучивайте.

Предварительно, цена всех компонентов для построения контроллера в чип-дипе (учитывая завышенные цены чипа) будет около 4000р (кроме корпуса, платы и внешнего дисплея).


Основные компоненты схемной части.

Ключи: IRFP4468PBF Nкан 100В/290А TO247AC. Корпус to220 не хочу: во-первых менее мощные выводы, во-вторых в корпусе TO247 проще изолировать винты от радиатора.
Драйвер: IR2110S. Нравится тем, что просто паять, минимум деталей.
Контроллер: MSP430F1222IPW

Схему как нарисую выложу для всеобщей критики.

Открытые вопросы:
Открыт вопрос с корпусом для контроллера.
Нужен энтузиаст, который может помочь с разводкой платы: нужно в altium designer или на худой конец в pcad создать/найти все компоненты из списка (список по запросу отошлю), развести плату по схеме (схема на мне).
Ваши предложения по нужным функциям контроллера и помощи.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

nikvic

Цитата: jeka от 23 Май 2010 в 23:54
Что я хочу от контроллера. В идеале:
Хорошо бы "настоящий синус" на выходе и возможность сдвигать его по фазе для достижения макс. КПД для разных режимов.

jeka

Насколько я понимаю, это ни что иное как вынос преобразователя с индуктивностей мотора на индуктивности контроллера. Т.е. 3 катушки индуктивности со сглаживающими фильтрами, устанавливаемые между мотором и контроллером.
Можете дать параметры катушек (материал, параметры намотки), расчет их КПД и частоту преобразования? И как делать сглаживающие фильтры, чтоб отсечь частоту преобразования от мотора с минимумом потерь? Какой будет выигрыш?

Сдвиг фазы и интерполяция сигналов с датчиков холла делается программно, это следующий этап. Никаких проблем в реализации этого алгоритма нет.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

aL75

ЦитироватьНасколько я понимаю, это ни что иное как вынос преобразователя с индуктивностей мотора на индуктивности контроллера. Т.е. 3 катушки индуктивности со сглаживающими фильтрами, устанавливаемые между мотором и контроллером.
Речь немного не том... Почитайте апноту от Атмела AVR447 http://www.atmel.com/dyn/resources/prod_documents/doc8010.pdf или аналогичную от Микрочипа .

jeka

Такое управление псевдо-синусом изначально и планировалось. Думал, что идет речь о подаче на мотор чистого синуса, а не pwm-модулированных сигналов.

Изменение: контроллер будет msp430f149. В f1222 одного канала таймера не хватает.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

DarthGray

ЦитироватьПредварительно, цена всех компонентов для построения контроллера в чип-дипе (учитывая завышенные цены чипа) будет около 4000р
Предпочитаю иметь дело с Платаном
Тот же IR2110S в Чипе 160р., а в Платане 56р.
Почувствуйте разницу...
Различие между теорией и практикой на практике гораздо больше, чем в теории.

DarthGray

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

FAS_r7

Цитата: jeka от 24 Май 2010 в 05:11
Изменение: контроллер будет msp430f149.
А вот это вообще здорово.
у 149-й  как я помню три канала ШИМ у одного таймера, и ажъ 7 у второго.  Да и вообще, машинка суперовая!
У меня имеется "готовое решение" для модуля индикации на графическом дисплее - мой велокомп, на этом же 149м контроллере. Может кто-то кажет 149-й "жирно" для модуля индикации, но как есть. При желании можно и что-то полегче поставить, главное чтобы флэша для прорисовки шрифтов хватило. А так, его только немного упростить надо, убрав лишнее.  Ещё протокол для обмена с основной частью контроллера напрограммить.

jeka

MSP еще очень удобен тем, что дебаг через jtag у него отличный. Ничем не уступает дебагу для ПК.

В контроллере как раз шрифты не нужны. Но раз такая тема пошла, можно поставить в индикатор самый простой контроллер с аналогом (тормоз-газ чтоб подключался) и шрифты гнать с контроллера в модуль индикации.
Единственное что немного смущает - msp очень слаботочные. По опыту при сильноточных коммутациях рядом с msp бывало его плющило. Так что надо будет разводить правильно.

Если видели подходящие корпуса с радиаторами, высказывайтесь.
Еще ведется розыск нормального индикатора с подсветкой. На штатный велокомповый плююсь - ни фига не видно.
Все еще ищется спец, готовый помочь с разводкой платы в altium designer.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

FAS_r7

Если уж и упрощать модуль индикации, то в нём только дисплей и нужно оставить, он по и2ц шине грузится. :)  А, ещё кнопки и ручки газа-тормоза надо в эту шину например включить (т.е. что-то мини микроконтроллерное понадобится).
Только как-то не нравится мне идея всё впихать в один F149. Прорисовка содержимого экрана в оперативе и его отгрузка в дисплей занимает прилично ресурсов.  А тут ему же ещё и за всем остальным следить придётся, ШИМы менять, ещё чего-то.   Что думают коллеги по этому поводу?

PS  по поводу плат, я их разводил в paint'е    :D  (во маньяк скажут некоторые)
По поводу корпуса тоже пока не нашел более красивого решения, чем стандартный алюм кожух от китайского контроллера.

jeka

Ничего страшного. Мотор будет полностью обрабатываться по прерываниям, т.е. процессор по ресурсам будет процентов на 90 свободен. Главное - не запрещать прерывания на длительное время.
По платам - я тоже разводил в программе sprint-layout. Это аналог paint-a, только заточенный для рисования двухсторонних плат. Как поработал в pcad - обплевался. В altium designer гораздо лучше, больше возможностей и понятнее. Буквально за день разобрался как компоненты схему делать.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

FAS_r7

Цитата: jeka от 24 Май 2010 в 19:58
Ничего страшного. Мотор будет полностью обрабатываться по прерываниям, т.е. процессор по ресурсам будет процентов на 90 свободен.
Ну вообще-то у меня весь софт кроме первичной инициализации вертится в прерываниях :be:
АЦП намерил - прерывание, SPI байт передал - прерывание, таймер часов тикнул - основное прерывание (кнопки, отрисовка содержимого ЖКИ, и пр.), геркон в колесе щелкнул - прерывание, и т.д. и т.п. 
главное не запутаться когда что может прерывать, выполнять и т.д.. Ну и стек не переполнять, блин его так. :bu:

И как я знаю, вроде такое построение ОС вполне нормально.   или я  слишком_религиозен \ отстал_от_жизни  ?


Кстати, наверное вы правы. Один F149 должен справиться. Ведь крутить МК не такая уж и сложная задача. Если мне память не изменяет, там с этим один таймер с тремя ШИМами почти без вмешательства софта справится (там вроде даже dead_time аппаратный есть).  Надо освежать знания по многочисленным фишкам его таймеров, навороченные они там  :af:

jeka

Схема мосфетового плеча:


Ищите косяки, критикуйте.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

zap

#13
Я бы не стал пихать всё в один микроконтроллер.

Мне кажется, схему надо разделить на два модуля:

- Сопсно контроллер мотора - в бензобаке или рядом.
- Модуль индикации, фары и прочие некритичные свистелки-перделки, возможно велокомп - на руле.

Не хотелось бы при подвисании процедуры отрисовки дисплея сжечь мотор или ещё чего-нить в этом роде.

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

Я себе сейчас делаю модуль свистелок-перделок (проект назвал Electric Bike Alarm & Lights, сокращённо...), заднюю фару на такой вот хреновине. Задняя фара уже полностью работает, сделал простенький скриптовый язык, можно выводить навороченные многопоточные анимации, пишутся очень просто и легко. Сейчас делаю звонок, потом займусь передней фарой.

12 вольт чтобы не заморачиваться лучше взять готовый dc-dc контроллер, их дофига разных, лучше сделать сложно и геммор ненужный.

100 вольт на мой взгляд избыточны, но это пусть каждый себе ставит какие мосфеты хочет :) для батареи 48В лучше взять какой-нибудь IRFP3207 или IRFP3077, они дешевле и сопротивление канала меньше.

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

Далее с одной стороны хотелось бы ещё один мосфет между шунтом и нижним концом всех трёх фаз, чтобы был аварийный рубильник на случай пробития обоих плеч одной из фаз (как у меня - хорошо, дорожка сгорела, аккумулятор спасло). С другой стороны, даже при сопротивлении канала 3 миллиома при токе 40 ампер эта хрень будет жрать аж 5 ватт... жаба душит :)

Насчёт драйверов, я смотрел в сторону HIP4086, он сразу трёхфазный, с программируемым dead time. Правда выходной ток всего 0.5А на канал, не очень понятно насколько этого хватит для заполнения ёмкости затворов мосфетов.

По поводу аналогового управления рекуперацией - я себе это представляю так: ручка газа повёрнута на максимум (100%), в этот момент левой рукой чуть давлю на тормоз, включается режим рекуперации и ограничение тока в (100%-100%=0%) от максимума. Постепенно отпускаю правой рукой ручку газа, соответственно увеличиваю ток рекуперации. То есть тормоз работает в обратном направлении газу.

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

Поражаю масштабностью некопмпетентность (ц) из лички

lotos

Цитата: jeka от 24 Май 2010 в 15:07

Если видели подходящие корпуса с радиаторами, высказывайтесь.
Еще ведется розыск нормального индикатора с подсветкой. На штатный велокомповый плююсь - ни фига не видно.
Все еще ищется спец, готовый помочь с разводкой платы в altium designer.
У китайцев в качестве корпуса используется обычный разрезанный алюминиевый профиль, дешево и сердито, и людям нравится :)

zap

Цитата: lotos от 25 Май 2010 в 06:31
У китайцев в качестве корпуса используется обычный разрезанный алюминиевый профиль, дешево и сердито, и людям нравится :)
Это не обычный профиль, это специальный профиль для изготовления корпусов :) Я такие в чипидипе видел кажись, по-моему от корейской фирмы Gainta.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

DarthGray

Может имеет смысл поставить IR2184?
У него dead time внутри, а то обвески многовато получается
Различие между теорией и практикой на практике гораздо больше, чем в теории.

i

Спаял вот такую штуку, но ещё не написал программу, так как не решил точно, что мне надо.
Нечто подобное требуемому, только не "Max..", я за разделение функций и упрощения модулей.