avatar_ZYM

Контроллер Infineon

Автор ZYM, 24 Нояб. 2010 в 21:51

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

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

Vetal

2Zap
Вариант 1
Чтобы не париться с разбором протокола можно поступить следующим образом. Устанавливаем нужные нам значения и программируем контроллер на компе(вариантов значений программируете столько сколько хотите попробовать ). Во время программирования считываем протокол обмена(т.к.это RS232 то получиться последовательность байт, она будет как туда так может и обратно, если контроллер что-то отвечает) между программатором и контроллером.Пишете простенькую програмку на микроконтроллере любом с которым знакомы, записываете эти варианты данных в микроконтроллер(влезет думаю достаточно чтобы попробовать,если че то внешнюю память I2C или еще какую с которой обращаться умеете в программе микроконтроллера), и потом по кнопкам(цепляете к микроконтроллеру эти кнопки так сказать для выбора вариантов программирования) выдаете ту или иную последовательность в контроллер двигателя для его программирования(если есть подтверждения то их учитываем), так сказать эмуляция. Считать сканером желательно 2-3 раза одни и теже параметры программирования дабы убедиться что все одинаково.
Вариант 2
Снимаете сканером протокол с какими то параметрами программирования. Потом изменяете одно значение и снова программируете со снятием дампа, дабы вычислить где оно находится в дампе это значение, и сравниваете эти два дампа и так несколько раз с разными +- значениями одного и того же параметра. Если изменения дампа значительные при изменении одного параметра, то проще ну его нафиг и идем к варианту 1, там все просто и не надо ломать голову.

Vetal

Если необходимую последовательность можно с тел.выдать,то так еще проще. Правда как там учитывать и выждать ответ контроллера мотора,если этот ответ присутствует.
Снять данные/дамп с компа при программировании можно попробовать терминалом(это если местоположение ответов не учитывать,если они есть),цепляетесь на другой сом-порт на rx(через преобразователь уровней конечно,если стандартный сом) и терминалом ловите то что передается по другому порту во время программирования, ну и на другой ноге смотрите тоже наличие ответов так же, по крайней мере проанализировать что там происходит получится без особых временных затрат и потом определиться по какому варианту идти. Мож еще кто подскажет какой прогой можно сразу 2 линии принимать,чтобы было видно в какой момент ответ приходит.

zap

Угу, оно обменивается по RS232 с TTL уровнями. У меня есть три таких, один подключу к контроллеру, второй к TX компа, третий к TX контроллера, а дальше запишу логи в файл с временными метками, чтобы можно было понять кто кому в какой момент говорит.

Но я хочу всё-таки полноценную программу, а не просто "воспроизводитель записанной последовательности". Пока что нашёл вот декомпилятор для VB программ, попытаюсь понять что делает исходная программа.
С уважением,
Андрей

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

tony16

to zap & Vetal
Не парьтесь. Выдрать снифером протокол обмена дело не сложное но кропотливое. Хотя скорее вы получите прогу конкретно под Ваш контроллер, а не универсальную.(у вас же не будет возможности протестировать ее со всеми контроллерами.)
Облом приходит гораздо раньше. Дело в том что ни Symbian ни Windows mobile не поддерживают ни один переходник с USB to COM. А написать драйвер под данный девайс думаю будет гораздо сложнее.
Так что все нужно делать по порядку.
Как вариант таскать с собой нетбук (MID, UPMC) с winXP -и заодно можно использовать в качестве  бортового компьютера -))

mevial

Цитата: zap от 20 Апр. 2011 в 10:11
Угу, оно обменивается по RS232 с TTL уровнями. У меня есть три таких, один подключу к контроллеру, второй к TX компа, третий к TX контроллера, а дальше запишу логи в файл с временными метками, чтобы можно было понять кто кому в какой момент говорит.

Но я хочу всё-таки полноценную программу, а не просто "воспроизводитель записанной последовательности". Пока что нашёл вот декомпилятор для VB программ, попытаюсь понять что делает исходная программа.

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

zap

Докладываю промежуточные результаты.

Отснифал общение программы с контроллером, ни о какой полной перепрошивке контроллера речь не идёт, программа пишет в порт '8', контроллер отвечает 'U' (0x55), затем программа заталкивает в микроконтроллер порядка 18 байт (сколько точно - не знаю, мой терминал нули не пишет в лог... придётся прожку писать чтобы получать полные дампы), в конце выдаёт однобайтную контрольную сумму, контроллер записывает параметры себе в EEPROM и выдаёт конечное 'U', после чего программа выдаёт надпись об успешной заливке параметров в контроллер. В дампе отчётливо видны все параметры контроллера, меняешь параметр - заливаешь - изменяется какой-нибудь байт. Так что самодельную программу для настройки контроллера вполне возможно сделать.

Очень жаль, что нет дампа прошивки контроллера (если я правильно понял, там 8к всего). Инфинеон это 8051-совместимый микроконтроллер, можно было бы написать свою прошивку, с синусом и блэк-джеком. В принципе, можно прошивку и с нуля написать, надо только схему инфинеона срисовать. Кайф в том, что инфинеон поддерживает in-scheme-programming через RS232 порт, то бишь через тот же самый шнурок, по крайней мере я это вычитал в доке по XC836 (никто, кстати, не в курсе, чем XC846 отличается от XC836, по 846-му так и не смог найти даташит).
С уважением,
Андрей

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

pirate

ребята сколько щас стоят Infineon на 12 и сколько там выше, 15 или 18 мосфетные контроллеры? на колесо 48v-1000w.

mevial

Цитата: pirate от 20 Апр. 2011 в 16:22
ребята сколько щас стоят Infineon на 12 и сколько там выше, 15 или 18 мосфетные контроллеры? на колесо 48v-1000w.
Это в другую тему(была такая), или в личку AndreyM.

zap

Хо-хо-хо.

Держитесь, ребята, за стулья покрепче.

Окунулся я в тему контроллера поглубже, и вот что выяснил. XC846 это примерно то же самое, что и XC866, во всяком случае, китайцы их часто смешивают. Ядро у них, как я уже говорил, основано на Intel 8051. Далее я набрёл на китайскую помойку исходных текстов под названием www.pudn.com, это настолько реальнейшая аутентичная помойка, что в ней можно найти даже брульянты.

Итак, брульянт первый: E-Bike-scheme-firmware-XC866.rar
В архиве - нормально выполненная схема одного из клонов "Инфинеона" (а не та нечитабельная фигня, которую кто-то выложил на endless-sphere), а также исходные тексты прошивки велоконтроллера. К сожалению, это не самая свежая старая версия, она не поддерживает "прошивку" параметров через RS232 (хотя сам разъёмчик на схеме есть). Я надеялся найти код, который обрабатывает эти данные - увы.

Брульянт второй: e-Bike-controller-firmware-PIC.rar
Как я понял, это исходный текст "старых" контроллеров на PIC'ах. Всего один файлец на ассемблере. Между прочим, если приложить руки, можно из старых ямасаковских и подобных контроллеров сделать "инфинеон", ну, насколько позволяет аппаратная часть (а она не такая уж разная).

Ну и... брульянт не брульянт, но интересный камешек: e-bike-ctrl-sch-mega48.rar
Это схема велоконтроллера на ATMega48. Не видел таких, но было бы интересно глянуть.

Нучо, кто напишет синус для инфинеона?  :p
С уважением,
Андрей

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

mevial

Цитата: zap от 20 Апр. 2011 в 19:11
Хо-хо-хо.

Держитесь, ребята, за стулья покрепче.

Нучо, кто напишет синус для инфинеона?  :p
Мда, интересный получается контроллерчик, т.е. то что я принял за бутлоадер на самом деле кусок прошитого ПО в контроллер... Тогда другой интересный вопрос, значит обязательная прошивка контроллера при отключенных фетах тоже бред? А случаем не нашли, как слить прошивку с живого контроллера? С вопросом по синусу надо обращаться к Жеке, во всяком случае по алгоритму определения фазы. И ещё вопросик по инфинеону назрел, шимятся оба плеча или только верхнее? Для синуса надо шимить оба плеча, но не во всех контроллерах такое организовано физически.

TRO

Если уж и писать прошивку самостоятельно, то для донора инфинеоновский контроллер слишком жирноват(дорогой) будет. Проще брать полуторакиловатные на 72 вольта скутерные за 70 уе. Ставить свой чип с мозгами, и всё. Все остальные варианты будут или хуже, или не в пример дороже. Осталось найти альтруиста который напишет народную прошивку для легкодоступного камня, и можно будет самостоятельно переделывать практически любой контроллер. И походу добавить выход для подключения дешового экрана от нокиевской мобилки с функциями велокомпьютера и ватметра.

Wahoo 2012 29er, +собран складной двухосис на раме"Land Rover" 69er с эл. мотором, и и МОНОКОЛЕСО

zap

Ваттметр+ёмкостемер должен быть функцией умной бмски, а не контроллера. Вместе с возможностью просмотра напряжения каждой ячейки, возможно, даже с подсчётом ёмкости каждой ячейки раздельно. А вообще, есть цикланалист, достаточно на контроллере подпаяться к нужным точкам и всё.
С уважением,
Андрей

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

zap

Цитата: mevial от 20 Апр. 2011 в 21:19
Тогда другой интересный вопрос, значит обязательная прошивка контроллера при отключенных фетах тоже бред?
Нет, не бред по двум причинам:

а) Если напряжение после 7805 будет различаться от напряжения +5В, подаваемого от "прошивалки", то ток потечёт из одного источника питания в другой, с непредсказуемыми последсвиями
б) Контроллер ожидает запроса на RS232 только в момент включения (около секунды), после этого до него достучаться уже невозможно. Поэтому контроллер должен быть обесточен, а питание на него надо подавать непосредственно в момент, когда по RS232 до него уже "стучится" программа.

Цитата: mevial от 20 Апр. 2011 в 21:19
А случаем не нашли, как слить прошивку с живого контроллера?
Скорее всего, это невозможно. В XC866 имеется стандартная "фича" всех микроконтроллеров - защита флэш-памяти от чтения. Там ещё есть защита флэш-памяти от записи, надеюсь братья-китайцы нас пожалели и не включили её.

Цитата: mevial от 20 Апр. 2011 в 21:19
И ещё вопросик по инфинеону назрел, шимятся оба плеча или только верхнее?
Скорее всего только нижние, для блочного управления этого хватает.

Цитата: mevial от 20 Апр. 2011 в 21:19
Для синуса надо шимить оба плеча, но не во всех контроллерах такое организовано физически.
У XC866 6 аппаратных каналов ШИМ, так что всё можно сделать. Причём там не просто аппаратный ШИМ, там некий модуль под названием CCU6 который можно, как я понял, так настроить, чтобы он практически автономно работал драйвером трёхфазного двигателя (в блочном режиме), т.е. самостоятельно получает сигналы от датчиков Холла и переключает каналы. Но это необязательно, можно всем рулить и в ручном режиме (что нужно для синуса).
С уважением,
Андрей

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

zap

Сегодня за вечерок раскрутил я этот протокол обмена, всё достаточно просто оказалось.

Вот первая версия описания протокола.

По мере прогресса документ, конечно, будет исправляться и видоизменяться, исправленный документ будет лежать по тому же адресу.
Документ написал на буржуйском языке, чтобы два раза не вставать.
Завтра буду писать програмулину.
С уважением,
Андрей

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

TRO

Цитата: zap от 20 Апр. 2011 в 22:28
.... А вообще, есть цикланалист, достаточно на контроллере подпаяться к нужным точкам и всё.
Ага, есть то он есть, только давайте не забывать про его негуманную цену, которая зачастую переваливает за цену контроллера.

Wahoo 2012 29er, +собран складной двухосис на раме"Land Rover" 69er с эл. мотором, и и МОНОКОЛЕСО

mevial

Цитата: zap от 21 Апр. 2011 в 04:25
Сегодня за вечерок раскрутил я этот протокол обмена, всё достаточно просто оказалось.

Вот первая версия описания протокола.

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

zap

Цитата: TRO от 21 Апр. 2011 в 07:47
Цитата: zap от 20 Апр. 2011 в 22:28
.... А вообще, есть цикланалист, достаточно на контроллере подпаяться к нужным точкам и всё.
Ага, есть то он есть, только давайте не забывать про его негуманную цену, которая зачастую переваливает за цену контроллера.
А Вы думаете умные девайсы получатся гораздо дешевле? Глядя на цикланалист я вижу, что себестоимость деталей где-то рублей пятьсот (если плату заказывать массово), плюс корпус рублей двести, плюс труд паяльщика-наладчика ещё рублей пятьсот, плюс маржа производителя процентов 30, плюс маржа продавца процентов 30 - уже на две тыщи набегает, плюс зарплата программиста, который прошивку писал (и постоянно улучшает). Ну и, учитывая безальтернативность (монополизм - зло :D) они накидывают ещё одну треть, вот и выходят на $100.

Нет, если самому всё делать на коленке, получится дешевле, конечно -  не будет маржи производителя и продавца. Но труба будет пониже, и дым будет пожиже - выглядеть будет самопально (хотя мне лично даже нравится, как выглядит FAS'овский велокомп, но это дело вкуса).
С уважением,
Андрей

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

mevial

Цитата: zap от 21 Апр. 2011 в 11:25
А Вы думаете умные девайсы получатся гораздо дешевле? Глядя на цикланалист я вижу, что себестоимость деталей где-то рублей пятьсот (если плату заказывать массово), плюс корпус рублей двести, плюс труд паяльщика-наладчика ещё рублей пятьсот, плюс маржа производителя процентов 30, плюс маржа продавца процентов 30 - уже на две тыщи набегает, плюс зарплата программиста, который прошивку писал (и постоянно улучшает). Ну и, учитывая безальтернативность (монополизм - зло :D) они накидывают ещё одну треть, вот и выходят на $100.

Нет, если самому всё делать на коленке, получится дешевле, конечно -  не будет маржи производителя и продавца. Но труба будет пониже, и дым будет пожиже - выглядеть будет самопально (хотя мне лично даже нравится, как выглядит FAS'овский велокомп, но это дело вкуса).

Цикланалист, во всяком случае до 2х кнопочной версии, тот ещё самопал, а в теме про приборы пробегал местный показометр на avr, даже красивее вышло. Тут от приложения рук зависит. Всё когда-то начинается с самопала, ну конечно не всегда автор является дизайнером, чаще дизайнеров нанимают уже при массовом производстве. В идеале прибор должен быть не более размера экрана, благо современная электроника позволяет. Так что пока цена на цикланалист обуславливается монополизмом и мелкосерийностью американского подвала.
Сорри за оффтоп.
Предложение по теме: в формулах вычисления тока вынести шунт(а ведь именно он разный в разных версиях контроллеров) отдельным полем ввода, чтобы не было всяких standard edition, chinesse edition, Llien edition, да и сдвиг добавить тоже полем, но со стандартным списком значений и возможностью если что поправить вручную.