Электротранспорт

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск    

Новости:

Страницы: 1Вниз

Автор Тема: go-swissdrive , что внутри .  (Прочитано 1892 раз)

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

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« : 14 Янв 2016 в 19:53 »
Похожие темы
http://electrotransport.ru/ussr/index.php?topic=26854.0
http://electrotransport.ru/ussr/index.php?topic=34583.0

После нового года купил на распродаже за 4000р. . Если в двух словах ,то конструкция под европейские дороги и скорость 25 км/ч .

Производитель http://www.go-swissdrive.com/das-go-swissdrive-system/motor/
Сайт не на английском , но таблица внизу страницы понятна и без перевода . Похоже мне попался первый столбец в таблице . Разобрал , посмотрел на особенности щвейцарской инженерной мысли  :bw: .
Форум , где посмотрели на внутренности http://evel-ural.ru/index.php?topic=272.0 .
Видео с фотографиями разобранного двигателя .Ставите на паузу и смотрите :
 
.
0.13 Сняты обе крышки . Слева статор , с контроллером , вид со стороны кассеты .
0.17 Вид со стороны проводов . С этой стороны стоит подшипник 6907 RS , он остался в крышке .
0.21 Плата контроллера вид со стороны кассеты .
0.24 Красными стрелочками обозначены 3 микросхемы .
 Левая микросхема 78L05 для питания датчиков холла , три видны на фото (слева приклеены желтоватой эпоксидкой ) , два 100 амперных датчика тока типа ACS756 включены на выходе двух фаз . Третья фаза не имеет датчика тока .
 В центра и справа драйвера транзисторов 5101 . Транзисторы 12 штук с другой стороны платы . Датчики тока ACS756 там же .
0.28 Вид на датчик момента со стороны кассеты . Подшипник 6001 .
0.31 Вид на датчик момента с другой стороны . Видны магниты расположенные по радиусу . Магнитов 20 штук , на роторе 40 штук , всю информацию о положении ротора и моменте на кассете берут с 3-х датчиков холла .
0.35 джамперы . на 4-х ножечный выведены 2 датчика холла , которые дают положение ротора ( датчик холла выдающий момент не выведен ) . 3-х ножечный 32 и 33 нога процессора M430F247T выводы . Внизу контрольные точки +12 в , +5 в , IN и ещё что-то .
0.39 Ротор в крышке с датчиком момента . Магниты покрашены в разные цвета , в центре датчик момента .

 Мотор имеет питание 36 вольт (конденсаторы контроллера на 50 ) . Входят три провода , два питание и один называется IN . Провод  IN через делитель напряжения 470К/1М идёт на 5 ногу(разрешение работы) MAX5033 (стабилизатор +12) , что означает , что при напряжении меньше 2.8 вольта на входе IN стабилизатор +12 вольт не работает . Питание +5 вольт и +3.6 вольт работают от +12 вольт .

 Наконец информация по двигателю:
1 Ротор:
 40 магнитов 25х12.5х2.5 , мерял линейкой .
 зазор между магнитами 1.5 мм . Магниты покрашены , толщина краски неизвестна .
 ширина 25.4 мм .
 наружный диаметр 196 мм  , мерял линейкой .
 обойма для магнитов ( магнитопровод ) - монолитное железо толщиной 5 мм .
2 Статор :
 45 катушек .
 толщина листов железа 0.5 мм
 ширина 25.4 мм .
 ширина зуба(железа) 7.7 мм
 ширина зазора между зубцами 4.7 мм
 соединение обмоток звездой .
 провод 5 х 0.8 мм
 намотка - три зуба первой фазой , потом три зуба второй фазой , потом три зуба третьей фазой . Пять таких групп последовательно .
 сопротивление одной фазы 0.080 Ом , то есть между двумя проводами 0.160 Ом точность 20 % ( не доверяю я своему тестеру ) 
3 зазор ротор - статор 1.1 мм  .
Габаритные размеры похоже как двигателя из этой темы http://electrotransport.ru/ussr/index.php?topic=714.0 , а вот количество катушек / магнитов отличается .

Ось : диаметр 10 мм , длинна 145 мм ( не точно ) . В раму Старт-шоссе можно впихнуть , но насиловать раму 1967 года я не рискнул . Спилить 6 мм можно , дальше не уверен .
« Последнее редактирование: 07 Окт 2016 в 20:03 от 495 »

Abos

  • Старожил
  • *****
  • Репутация:
    +37/-1
  • :
    33
    110
  • Сообщений: 1195
  • Россия
  • Многознанье уму не научает (Гераклит)
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #1 : 14 Янв 2016 в 22:55 »
А чем Вам не нравится соотношение катушек/магнитов? В Вашем случае оно идеальное (45/40).

grale

  • Начинающий
  • *
  • Репутация:
    +0/-1
  • :
    0
    0
  • Сообщений: 6
  • Россия, Москва
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #2 : 05 Апр 2016 в 13:12 »
Подскажите, как запустить данный мотор.

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #3 : 06 Апр 2016 в 00:56 »
 Простейший способ :
1 Разобрать
2 вынуть всю электронику
3 вывести 3 провода по 2 квадратных миллиметра
4 Купить безсенсорный контроллер на 25 ампер номинальных , могу ошибаться с цифрой 25 . По вольтам считайте сами у родного контроллера в 28" колесе при 36 вольтах скорость Х.Х. между 45 и 50 км/ч . Реальная скорость будет как минимум процентов на 10 меньше . Нужен sensorless контроллер для ДД мотора на 500 ватт .
 Не тривиальный способ :
Разобраться с протоколом обмена между мотором и батареей . Канал из мотора точно совместим с COM портом . Канал из батарейки может быть полуаналоговый . Инициатор обмена батарея .
У меня батареи не было поэтому я этого даже не пытался сделать . Прошивку я уже стёр .

Есть разные модификации мотора , я писал о самой лёгкой . На сайте  http://www.go-swissdrive.com/das-go-swissdrive-system/motor/ есть вес всех моделей . Тяжёлые модели больше 500 ватт .

В разделе было несколько тем про установку датчиков Холла . Это тоже возможно , причем в двух вариантах :
1 Как в обычном двигателе .
2 К магнитам энкодера . Стоящие в плате Холлы использовать не удастся , они аналоговые и стоят под 90 градусов . Придётся делать специальную плату .
« Последнее редактирование: 25 Июл 2016 в 13:04 от 495 »

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #4 : 06 Май 2016 в 19:37 »
У этого двигателя есть одна особенность - крышка с датчиком угла+момента имеет 2 подшипника , поэтому двигатель без второй крышки может работать без радиальной нагрузки на холостом ходу . В этом виде хорошо видно положение ротора и статора . Статор по железу 9 фаз , по 3 зуба на фазу .
 Я вывел провод от центра звезды и запитал одну фазу стабильным током 2 ампера . Померял максимальный момент весами , получил 1 кг . Потом тем же током запитал две фазы в звезде , как делает контроллер . Померял максимальный момент весами , получил 1,6 кг . Значит из 6 зубов момент дают максимум 5 , а в среднем за оборот 4.5 если учитывать переключения фаз . Как использовать этот эффект я не знаю и обнаружился он при попытке померять статический момент от тока фазы . До 20 ампер момент линейно зависит от тока , дальше мерять боюсь .

EPO

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    0
    0
  • Сообщений: 10
  • Россия, Екатеринбург
  • Помогаю мотору крутить педали
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #5 : 11 Май 2016 в 07:40 »
Всем привет, что мне удалось найти по прошивке в сети
Список инструкций , сервисные программы и прошивки акк и мотора, так же видео инструкции
http://www.simplon.com/login/downloads/downloads/

Прошивка мотора видео  https://vk.com/video42599119_456239037?list=a96698f67312877175
Утилита прошивки мотора  https://yadi.sk/d/qDUgXdZ0rDaJ5
Драйвер кабеля https://yadi.sk/d/B45Dm3d-rDaH6
Сервисная программа  https://yadi.sk/d/GMQ3u_CsrDaJS
Прошивка батареи 1.47 https://vk.com/doc42599119_437468819?hash=4f3da75ac1820af21a&dl=ff2ce5a92532fccb9d

https://vk.com/topic-88657301_33696168

Непонятна распиновка кабеля для прошивки


Утилита прошивки Go swiss drive






Перевод из мануала по прошивке батареи и мотора

Симплон батареи и обновление двигателя
Файлы и соответствующие видео-уроки по www.simplon.com
1. Обновление батареи с помощью инструмента Service
Требуемые файлы : Service Tool 1.64 , FW1.47.hex
1.1 Подготовка обновления
Во-первых, сохранить все файлы в готовом виде на слегка
обнаружимого место ( например, Desktop ) на вашем компьютере .Теперь подключите кабель USB диагностический к компьютеру .
Не имеет значения , в каком положении тумблер находится
,
 Теперь вам потребуется последняя версия 1.64 инструмента обслуживания . Они будут устанавливаться пользователем
запустите файл Servicetool.exe . Уже установленные предыдущие версии автоматически
перезаписаны .
1.2 Выполните обновление
Пожалуйста, убедитесь , что пустой аккумулятор во время обновления может вызвать проблемы.
 батарея должна быть предварительно установлена ​​в Deep Sleep для обновления .
Для этого нажимайте кнопку на батарее в течение приблизительно 10 секунд до 2-х светодиодных огней .
Затем он должен быть разбужен на короткое время повторным нажатием кнопки .Этот процесс очищает память данных и гарантирует безошибочное обновление.
 Теперь вы можете подключить батарею к лобной связи с кабелем обновления
( Не работает на стороне ) и перезапустить инструмент службы .
инфицирован  Если нет ключа не является Fehlermedung , что они могут игнорировать . Теперь нажмите построить в разделе «Firmware Update " в правом нижнем углу подключения .
 Индикатор состояния должен быть зеленого цвета и отображения текущей версии FW ( z.B.1.36 ) .
• в 2-ой строке наклейке на батарее обратно вы можете найти тип батареи ( NCR или РКУ ) .Пожалуйста, выберите соответствующий "параметра набор" в выпадающем меню (рис.1).
 Теперь у них есть кнопка " ... " и выберите , чтобы ввести путь прошивки ( FW1.47.hex ) , чтобы
которые они это сохраненные ранее (см 1.1 , возможно, рабочий стол ) .
 Сидит кабеля стабильным? Затем они начинают обновление сейчас на "Начать программирование "
Важно,что это не прерывается во время обновления !
 Обновление может занять несколько минут .
 Нажатие раз программы он запрашивает кнопку сейчас .
 После успешного обновления соединение автоматически прекращается ( с сообщением ) после того, как
подтвердили с помощью "OK" . Успешное обновление версии вы также можете использовать беспроводное соединение , зачитав
" Версия прошивки " управления .
; • проверка версии при повторном подключении возможно только после перезапуска сервисного инструмента .
Рис. 1 обновление прошивки , аккумулятор подключенным
SIMPLON BIKE GMBH │ │ Верхняя Achdamm 22 A- 6971 Hard │ Тел.: +43 ( 0 ) 5574/72 564 0 │ E-mail : service@simplon.com 2
обновление 2.Motor
Необходимые файлы : MotorUpdate.exe , KabelTreiber.exe (для Win7 )
2.1 Ручная установка USB кабеля двигателя
Как правило, ваш компьютер должен автоматически определить кабель используется и соответствующие порты
назначить для дальнейшего использования .В то время как компьютеры с Windows XP или старше, как правило, автоматически
обнаружены, Windows 7 необходим специальный драйвер . Это они могут сделать,
К " KabelTreiber.exe " Легко установить на компьютерах Windows. После установки,
это потребуется перезагрузка компьютера .
 Для того, чтобы прочитать порт, используемый иличтобы определить другой они идут в
Быстрый запуск - > Панель управления - > Диспетчер устройств ( Win7 : Система -> Диспетчер устройств)
 Здесь вы можете найти список всех устройств , которые используются в качестве USB Serial Port .



495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #6 : 11 Май 2016 в 22:41 »

Непонятна распиновка кабеля для прошивки



Я сделал BSL кабель под микроконтроллер и прошивал утилитой для микроконтроллеров ( у меня мотор используется для эксперементов над ним ).
 На скрине из видео разъём датчиков Холла в энкодере . Разъём под JTAG\BSL у меня не был впаян . На видео в первом посте время 0.35 этот разъём выглядит как два горизонтальных ряда по 4 отверстия . Возможно используется хитрый разъём , которому достаточно металлизированных отверстий .
Попробую посмотреть ваши ссылки , может чего получится , но у меня мотор без батареи .
 Могу написать распиновку разъёма на плате .
Левая нога в ряду ближайшем к центру имеет рядом с собой цифру 1 , чтоб не ошибиться прозвоните  ногу на землю и не торопитесь .
1 TDO                                                         2 GND(0 вольт)
3 TDI + BSL приёмник через 1 килоОм  4 TMS
5 TCK                                                           6 RST+ 1 килоОм к 3.6 вольт
7 BSL передатчик                                       8 Avcc (3.6 вольт)
 

P.S. Посмотрел видео . Прошивка модифицируется через COM порт . Можно использовать USB - COM взяв сигнал TTL и ограничив уровень сигналов до 3.6 вольт , похожее решение в прилагаемом файле .
 Трёхножечный разъём .
1 GND
2 RX + 1 килоОм к 3.6 вольт
3 TX
RX это вход у микропроцессора ,TX это выход у микропроцессора . Уровни сигналов 3.6 вольт CMOS .

Кабель похож на кабель для старых телефонов . Нужно только не перепутать вход / выход и разобраться с уровнями сигналов . Мне кажется в схеме не хватает одного резистора 100 Om и стабилитроны нужны на 3.2 вольта .
  Дополнение , для не электриков :
Подклчать кабель можно только после соединения земли двигателя с землёй компьютера , вообще некоторые простые на вид действия лучше выполнять квалифицированным людям , потому как электроника явно не делалась в расчёте на "чайника" .
« Последнее редактирование: 31 Июл 2016 в 17:03 от 495 »

Alexander

  • Неравнодушный
  • **
  • Репутация:
    +1/-0
  • :
    17
    3
  • Сообщений: 142
  • moscow
  • Ездю на 18650
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #7 : 22 Июн 2016 в 01:35 »
Мотор за 4000?  Ого да вы видимо сторговали Пятихат ) Сегодня они уже по 4500..  А мне вот было оч интересно куда ушло столько моторов.
Я вот тоже купил себе такой мотор. И хочу из него собрать Безсенторный мотор с питанием от 60в с термодатчиком и с управлением от  Контроллера Ku 63.
У меня есть такоей контроллер на 14а 48в, и мне нужен ваш совет уважаемые знатоки. Если я вот в этой схеме http://www.avdweb.nl/solar-bike/electronics/ku63-motor-controller.html   поменяю все кондеры на 63в по входу этого будет достаточно?  Схема от похожего контроллера на 36. Ключи установлены по даташиту на 70 в

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #8 : 22 Июн 2016 в 13:19 »
Мотор за 4000
Мотор за 4000?  Ого да вы видимо сторговали Пятихат ) Сегодня они уже по 4500..  А мне вот было оч интересно куда ушло столько моторов.
Я вот тоже купил себе такой мотор. И хочу из него собрать Безсенторный мотор с питанием от 60в с термодатчиком и с управлением от  Контроллера Ku 63.
У меня есть такоей контроллер на 14а 48в, и мне нужен ваш совет уважаемые знатоки. Если я вот в этой схеме http://www.avdweb.nl/solar-bike/electronics/ku63-motor-controller.html   поменяю все кондеры на 63в по входу этого будет достаточно?  Схема от похожего контроллера на 36. Ключи установлены по даташиту на 70 в
1 они велосипедисты с веломании .
2 у них было 30 штук моторов на 25 км/ч  .
3  25 км/ч это программное ограничение , сам двигатель на 45 км/ч от 36 вольт ( я пишу о своём моторе ) . Судя по написаному на веломании мотор начинал заряжать батарею через диоды транзисторов при скорости за 50 км/ч .  Похоже больше 48 вольт в 28 колесе уже " не в коня корм " .
4 Датчики тока в родном контроллере на 100 ампер , то есть выдают +/- 50 ампер фазных ( евростандарты 250 ватт реализованы программно ) . Провода вроде на 30 ампер номинальных , но в двигателях не всё однозначно .
5 Постарайтесь не сломать при разборке электронику и энкодер . В этом моторе есть все железо для реализации Чупиной мечты о настраиваемых таймингах для Холлов . Может кто и напишет приблуду которая из двух сигналов энкодера делает три сигнала Холлов , при это внося временные поправки в зависимости от оборотов . В этом энкодере похоже есть даже индексная метка (один импульс на оборот) , но она совмещена с датчиком момента .
 

Alexander

  • Неравнодушный
  • **
  • Репутация:
    +1/-0
  • :
    17
    3
  • Сообщений: 142
  • moscow
  • Ездю на 18650
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #9 : 24 Июн 2016 в 12:36 »
А где там энкодер?  Мне не нужна электронная начинка.  я хотел бы исспользовать только обмотку и магниты, так как у меня не хватает ни знаний ни времени разбираться с эл начинкой. А зачем настраивать тайминги датчиков хола? Функции опережения и замедления уже релизованы в контроллерах типа инфиниона или мини е. Подскажите по схеме контроллера, я ограничусь лишь заменой кондеров что бы повесить этот контроллер на 60в:?

Alexander

  • Неравнодушный
  • **
  • Репутация:
    +1/-0
  • :
    17
    3
  • Сообщений: 142
  • moscow
  • Ездю на 18650
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #10 : 24 Июн 2016 в 12:42 »
Электроника цела и лежит на полочке могу отдать так как она мне не нужна.

Alexander

  • Неравнодушный
  • **
  • Репутация:
    +1/-0
  • :
    17
    3
  • Сообщений: 142
  • moscow
  • Ездю на 18650
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #11 : 31 Авг 2016 в 00:10 »
ок спасибо за помощь.
Пожалуста .
Отпишитесь в теме о результатах , если не лениво .

Так вот. Контроллер в итоге взял не на 14 а на 19 а.. такой же . Поменял кондеры все что были на 63в на 100 в и поменял резюк на побольше который стоит по питанию питания микрух )



Два дня покатал немного все работает.. покачто.... Ток не мерил пока нечем... А мотор этот так я и не приладил и за дэбильного крепления.. побоялся что провернется на 60вольтах  при мощьности в 1квт хотя бы. В оригинале этот мотор держит с одной стороны толстый усилитель дропаута а с другой прижимает эксцентрик.. А так как в него много не вкачивается то этого крепления хватает.. Вообще моторы которые крепятся на зажимной эксцентрик полный отстой. 

EPO

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    0
    0
  • Сообщений: 10
  • Россия, Екатеринбург
  • Помогаю мотору крутить педали
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #12 : 09 Сен 2016 в 18:52 »
Короче извлекли из мотора контроллер и подключили фазы к Китайскому Инфиниону и ручке газа, завели мотор ура ! Закрепили мотор в тисках, приладили родной датчик скорости и покрутили на 500w режиме до упора, мотор выдал 70 км\ч , ясен перец без нагрузки + погрешность, но результат порадовал , мотор остался тихим , хотя инфинион не является синусным , уровень шума остался на прежнем уровне, то есть как не жужжал так и жужжит. 
PS У кого на Алиэкспресс купить инфинион ? Если кто знает , дайте пожалуйста ссылку , можно и не инфинион, но что-бы также сам определял фазы итд .. Человек с которым проводили эксперименты , не хочет выходить на связь .

vovchok

go-swissdrive , что внутри .
« Ответ #13 : 24 Ноя 2016 в 12:09 »
А если просто подать на питающие мотор провода напряжение с батареи - без управляющих сигналов с компа не заведется? У меня мотор BullsGreenMover250w - немцы пишут, что управляющий компьютер, что на руле подходит к нему от GoSwissdrive, значит внутри что-то похожее (сам не разбирал и не понятно как его разбирать - снаружи никаких болтов, стягивающих цельные половинки движка, нету). Между аккумом и движком у меня два силовых и два сигнальных провода, и на сигнальные в параллель посажен компьютер (которого нет в наличии). Также по этим силовым проводам из движка выходит сгенерированное напряжение для освещения (написано 6V5W, хотя я намерил больше в разы при кручении), фара подключена через какой-то керамический кондер с надписью "xx x110 xhfe" (или то не кондер вовсе, но выглядит так)...

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #14 : 24 Ноя 2016 в 20:02 »
А если просто подать на питающие мотор провода напряжение с батареи - без управляющих сигналов с компа не заведется?
Где то в ссылках была история про то как продавец на Авито убедил покупателя , что мотор работает с не подключённым входом управления . Похоже продавец переехал в Германию и продолжил свою деятельность . :laugh:
 
Тема про BullsGreenMover250w
http://escooter.org.ua/forum/4-2298-1
« Последнее редактирование: 10 Дек 2016 в 12:37 от 495 »

495

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    22
    2
  • Сообщений: 28
  • moskva Юго-западная
  • Оффлайн Оффлайн
    • Награды
go-swissdrive , что внутри .
« Ответ #15 : 07 Янв 2017 в 21:18 »
Не большое дополнение по электронике ( о прошивке речь не идёт ).
Электроника сделана как можно проще . Все входы ( кроме интерфейса с внешним миром ) на АЦП . Выходы на феты с таймера
;--------  ADC12  --------------
;external
; ADC0    SIN
; ADC1    COS
; ADC2-61 current sensor rd_1
; ADC3-2 current sensor or_2
; ADC4-3 IN 68k/4.7k
; ADC5    MOMENT
; ADC6-5 empty 130k/9.1k
; ADC7   not used
;Uref used for ADC
; ADC8,9-10,11 Ubat 68k/4.7k
;internal
; ADC10-Rt
; ADC11...15-Avcc/2

 P4.1-37   Порт 4 бит 1 нога 37
;--------  Port P4 out 3 faz --------
;          Li              Hi
; rd_1 P4.1-37 P4.4-40
; or_2 P4.3-39 P4.6-42
; bk_3 P4.2-38 P4.5-41  not current sensor

ADC4 Входной сигнал , кроме АЦП идёт на компаратор ( 24 нога ), что даёт возможность использовать ШИМ управление .
ADC6 Возможно второй входной сигнал , в моём случае он не был впаян .
Электроника может работать от 15 вольт минимум .  В моём случае 5s лифера .
Первый тест  мигает  светодиодом на разъёме  для COM порта .
любителям исходников
; msp430F247 16 Mhz  32K Flash 4kB RAM
;0x0200-0x09FF RAM 2KB   (mirrored at 0x1100-0x18FF)
;0x0C00-0x0FFF BSL ROM mem
;0x1000-0x10FF info Flash mem
;0x1100-0x20FF RAM 4KB
;//0x1100-0x18FF RAM 2KB mirrored 0x0200-0x09FF
;//0x1900-0x20FF RAM 2KB
;0x8000-0xFFFF main Flash mem

;************************************************************
; STATUS REGISTER BITS
GIE        .equ         0008h
OSCOFF     .equ         0020h
SCG0       .equ         0040h   ; 1 DCO off
SCG1       .equ         0080h   ; 1 SMCLK off

;************************************************************
; SPECIAL FUNCTION REGISTER ADDRESSES + CONTROL BITS

IE1     .equ           0000h
OFIE      .equ          02h
IFG1     .equ          0002h
OFIFG     .equ          02h

;************************************************************
; Basic Clock Module

BCSCTL1     .equ       0057h    ;/* Basic Clock System Control 1 */
XTS         .equ        40h   ;/* LFXTCLK 0:Low Freq. / 1: High Freq. */
XT2OFF      .equ        80h   ;/* Enable XT2CLK */

BCSCTL2     .equ       0058h    ;/* Basic Clock System Control 2 */
SELS        .equ       08H   ;/* MCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */
SELM0      .equ        40h   ;/* MCLK Source Select 2: XT2CLK/LFXTCLK */
SELM1      .equ        80h   ;/* MCLK Source Select 2: XT2CLK/LFXTCLK */


;************************************************************
; WATCHDOG TIMER

WDTCTL   .equ      120h                 ;watchdog control register address
WDTPW    .equ      5A00h                ;password for watchdog access
WDTHOLD  .equ      80h                   ;bit position for watchdog reset

;************************************************************
; Ports

P3OUT     .equ         19h  ;/* Port 3 Output */
P3DIR     .equ         1Ah  ;/* Port 3 Direction */

P4IN      .equ         1Ch  ;/* Port 4 Output */
P4OUT     .equ         1Dh  ;/* Port 4 Output */
P4DIR     .equ         1Eh  ;/* Port 4 Direction */
P4SEL     .equ         1Fh  ;/* Port 4 timer_B Module Enable */

;************************************************************

RAMSTART .equ      200h                 ;RAM start address
RAMSIZE  .equ      0800h                ;size of RAM (excluding stack)

;-------------------------------------------------------------------------------
              .sect "Init", 08000h         ; Progam Start (32KB Flash device) 
START         mov.w   #09FFh,SP            ; Set stackpointer ( 2kB RAM device )
;-------- Init WDT subsustem --------------
StopWDT       mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop watchdog timer
      BIC #GIE,SR          ; Mask Interrupt off

;-------- Init ADC12  --------------
;external
; ADC0   SIN
; ADC1   COS
; ADC2-61 current sensor rd_1
; ADC3-2 current sensor or_2
; ADC4-3 IN 68k/4.7k
; ADC5   MOMENT
; ADC6-5 empty 130k/9.1k
; ADC7   not used
;Uref used for ADC
; ADC8,9-10,11 Ubat 68k/4.7k
;internal
; ADC10-Rt
; ADC11...15-Avcc/2

;-------- Init Port P3.5-33 out led --------
      bis.b   #020h,&P3DIR            ; Set P3.5 to output direction
      bis.b   #020h,&P3OUT            ; Set P3.5-33 3pin_COM-2 (GND-1)
;      xor.b   #020h,&P3OUT            ; Toggle P3.5 LED on\off 
;      bic.b   #020h,&P3OUT            ; Clear P3.5-33 3pin_COM-2 (GND-1)

;-------- Init Port P4 out 3 faz --------
;       Li   Hi
; rd_1 P4.1-37 P4.4-40
; or_2 P4.3-39 P4.6-42
; bk_3 P4.2-38 P4.5-41  not current sensor
;      mov.b   #000h,&P4OUT              ; Set   P4
;      mov.b   #0FFh,&P4DIR            ; Set P4 to output direction
;      xor.b   #0ffh,&P4OUT            ;  on\off 

;-------- End Init ----------------------------------------------------------------
      bic.b   #020h,&P3OUT            ; Clear P3.5-33 3pin_COM-2 (GND-1)
;-------- End Init ----------------------------------------------------------------

;**** Main Loop      ******************************************************************

Loop      
      xor.b   #020h,&P3OUT            ; Toggle P3.5 LED on\off 
      mov.w   #03FFFh,R15             ; Delay to R15
L1      dec.w   R15                     ; Decrement R15
      jnz     L1                      ; Delay over?
            jmp          Loop            ;never ending loop
      nop                           
                nop                           

;-----Interrupt Vector Addresses------------------------------------------------
         .sect "Int_Vect", 0FFE0h    
         .word      0FFFFh       ;P0IFG.27
         .word      0FFFFh      ;BTIFG
         .word      0FFFFh            
         .word      0FFFFh            
         .word      0FFFFh            
         .word      0FFFFh      ;ADCIFG
         .word      0FFFFh            
         .word      0FFFFh         
         .word      0FFFFh         
         .word      0FFFFh            
         .word      0FFFFh      ;WDTIFG
         .word      0FFFFh         
         .word      0FFFFh      ;P0IFG.1
         .word      0FFFFh      ;P0IFG.0
         .word      START      ;RSTI/OFIFG/ACCVIFG
         .word      START      ;PUC/reset/WDTIFG

На этом  "изучение опыта предидущих поколений " можно считать законченным . :drink:

16.02.2017
ЭДС одной фазы имеет форму ближе к треугольнику  чем к синусоиде . Примерно половина периода прямая наклонная линия , только вершины полукруглые . Когда  ток между фазой и центром звезды , примерно 90 градусов из 360 момент отсутствует . Похоже двигателисты получили ТЗ с блочным контроллером и минимизировали колебания момента . Микроконтроллер под блочный режим , если сожгу родной       
https://www.chipdip.ru/product/msp430g2553in20
Из прошлогодних тестов переключение на внешний резонатор и прерывание по сбою резонатора . Для ПИД регулятора "кварцованное время" необходимо , а для стабилизатора тока фазы хватает внутреннего генератора .
осторожно ассемблер
;*******************************************************************************
; msp430F149 8 Mhz

; asm430 led.asm -l
; rem lnk430 led.obj -o led.out
; rem rom430 -txiw led.obj(led.out) led.txt led1.txt
; rom430 -x led.obj led.txt

; R0
; R1
; R2
; R3

; R10
; R11
; R12
; R13
; R14
; R15 wait--count cycle -- wait

;*******************************************************************************

;************************************************************
;* STATUS REGISTER BITS
;************************************************************

;#define C                   0x0001
;#define Z                   0x0002
;#define N                   0x0004
;#define V                   0x0100
;#define GIE                 0x0008
;#define CPUOFF              0x0010
;#define OSCOFF              0x0020
;#define SCG0                0x0040
;#define SCG1                0x0080

GIE        .equ         0008h
OSCOFF     .equ         0020h
SCG0       .equ         0040h   ; 1 DCO off
SCG1       .equ         0080h   ; 1 SMCLK off

;************************************************************
;* SPECIAL FUNCTION REGISTER ADDRESSES + CONTROL BITS
;************************************************************

;#define IE1_                0x0000  /* Interrupt Enable 1 */
;sfrb    IE1               = IE1_;
;#define WDTIE               0x01
;#define OFIE                0x02
;#define NMIIE               0x10
;#define ACCVIE              0x20
;#define URXIE0              0x40
;#define UTXIE0              0x80

;#define IFG1_               0x0002  /* Interrupt Flag 1 */
;sfrb    IFG1              = IFG1_;
;#define WDTIFG              0x01
;#define OFIFG               0x02
;#define NMIIFG              0x10
;#define URXIFG0             0x40
;#define UTXIFG0             0x80

;#define ME1_                0x0004  /* Module Enable 1 */
;sfrb    ME1               = ME1_;
;#define URXE0               0x40
;#define USPIE0              0x40
;#define UTXE0               0x80

;#define IE2_                0x0001  /* Interrupt Enable 2 */
;sfrb    IE2               = IE2_;
;#define URXIE1              0x10
;#define UTXIE1              0x20

;#define IFG2_               0x0003  /* Interrupt Flag 2 */
;sfrb    IFG2              = IFG2_;
;#define URXIFG1             0x10
;#define UTXIFG1             0x20

;#define ME2_                0x0005  /* Module Enable 2 */
;sfrb    ME2               = ME2_;
;#define URXE1               0x10
;#define USPIE1              0x10
;#define UTXE1               0x20

IE1     .equ           0000h
OFIE      .equ          02h
IFG1     .equ          0002h
OFIFG     .equ          02h

;************************************************************
;* Basic Clock Module
;************************************************************

;#define DCOCTL_             0x0056  /* DCO Clock Frequency Control */
;sfrb    DCOCTL            = DCOCTL_;
;#define BCSCTL1_            0x0057  /* Basic Clock System Control 1 */
;sfrb    BCSCTL1           = BCSCTL1_;
;#define BCSCTL2_            0x0058  /* Basic Clock System Control 2 */
;sfrb    BCSCTL2           = BCSCTL2_;

;#define MOD0                0x01   /* Modulation Bit 0 */
;#define MOD1                0x02   /* Modulation Bit 1 */
;#define MOD2                0x04   /* Modulation Bit 2 */
;#define MOD3                0x08   /* Modulation Bit 3 */
;#define MOD4                0x10   /* Modulation Bit 4 */
;#define DCO0                0x20   /* DCO Select Bit 0 */
;#define DCO1                0x40   /* DCO Select Bit 1 */
;#define DCO2                0x80   /* DCO Select Bit 2 */

;#define RSEL0               0x01   /* Resistor Select Bit 0 */
;#define RSEL1               0x02   /* Resistor Select Bit 1 */
;#define RSEL2               0x04   /* Resistor Select Bit 2 */
;#define XT5V                0x08   /* XT5V should always be reset */
;#define DIVA0               0x10   /* ACLK Divider 0 */
;#define DIVA1               0x20   /* ACLK Divider 1 */
;#define XTS                 0x40   /* LFXTCLK 0:Low Freq. / 1: High Freq. */
;#define XT2OFF              0x80   /* Enable XT2CLK */

;#define DIVA_0              0x00   /* ACLK Divider 0: /1 */
;#define DIVA_1              0x10   /* ACLK Divider 1: /2 */
;#define DIVA_2              0x20   /* ACLK Divider 2: /4 */
;#define DIVA_3              0x30   /* ACLK Divider 3: /8 */

;#define DCOR                0x01   /* Enable External Resistor : 1 */
;#define DIVS0               0x02   /* SMCLK Divider 0 */
;#define DIVS1               0x04   /* SMCLK Divider 1 */
;#define SELS                0x08   /* MCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */
;#define DIVM0               0x10   /* MCLK Divider 0 */
;#define DIVM1               0x20   /* MCLK Divider 1 */
;#define SELM0               0x40   /* SMCLK Source Select 0 */
;#define SELM1               0x80   /* SMCLK Source Select 1 */

;#define DIVS_0              0x00   /* SMCLK Divider 0: /1 */
;#define DIVS_1              0x02   /* SMCLK Divider 1: /2 */
;#define DIVS_2              0x04   /* SMCLK Divider 2: /4 */
;#define DIVS_3              0x06   /* SMCLK Divider 3: /8 */

;#define DIVM_0              0x00   /* MCLK Divider 0: /1 */
;#define DIVM_1              0x10   /* MCLK Divider 1: /2 */
;#define DIVM_2              0x20   /* MCLK Divider 2: /4 */
;#define DIVM_3              0x30   /* MCLK Divider 3: /8 */

;#define SELM_0              0x00   /* SMCLK Source Select 0: DCOCLK */
;#define SELM_1              0x40   /* SMCLK Source Select 1: DCOCLK */
;#define SELM_2              0x80   /* SMCLK Source Select 2: XT2CLK/LFXTCLK */
;#define SELM_3              0xC0   /* SMCLK Source Select 3: LFXTCLK */

BCSCTL1     .equ       0057h    ;/* Basic Clock System Control 1 */
XTS         .equ        40h   ;/* LFXTCLK 0:Low Freq. / 1: High Freq. */
XT2OFF      .equ        80h   ;/* Enable XT2CLK */

BCSCTL2     .equ       0058h    ;/* Basic Clock System Control 2 */
SELS        .equ       08H   /* MCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */
SELM0      .equ        40h   ;/* MCLK Source Select 2: XT2CLK/LFXTCLK */
SELM1      .equ        80h   ;/* MCLK Source Select 2: XT2CLK/LFXTCLK */


;************************************************************
;* WATCHDOG TIMER
;************************************************************/

;#define WDTCTL              0x0120  /* Watchdog Timer Control */
;#define WDTHOLD             0x0080
;#define WDTPW               0x5A00
WDTCTL   .equ      120h                 ;watchdog control register address
WDTPW    .equ      5A00h                ;password for watchdog access
WDTHOLD  .equ      80h                   ;bit position for watchdog reset

;#define P1OUT              0x0021  /* Port 1 Output */
;#define P1DIR              0x0022  /* Port 1 Direction */
P1OUT     .equ         21h  ;/* Port 1 Output */
P1DIR     .equ         22h  ;/* Port 1 Direction */



;_______________________________________________________________________________
;-------------------------------------------------------------------------------
RAMSTART .equ      200h                 ;RAM start address
RAMSIZE  .equ      0F0h                 ;size of RAM (excluding stack)
INITVAL  .equ      0h                   ;RAM initialization value

;-------------------------------------------------------------------------------
              .sect "RAMInit", 01000h     ; Progam Start (60K Flash device 149) 
START       mov.w   #0280h,SP               ; Set stackpointer (128B RAM device)
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop watchdog timer
      BIC #GIE,SR ;  ; Mask Interrupt off

      bis.b   #001h,&P1DIR            ; Set P1.0 to output direction
      bis.b   #001h,&P1OUT                  ; Set   P1.0
;              bic.b   #001h,&P1OUT                  ; Clear P1.0
;-------- Init COM port  !!!

;-------- Init CLK subsustem --------------
;    Select XT2  for MCLK
      BIs #OSCOFF,SR ;  1 Switch on the LFXTCLK
;      BIS #SCG1,SR ;   Switch off the SMCLK
      BIC.B #XT2OFF,&BCSCTL1 ; Enable XT2CLK

L3       BIC.B #OFIFG,&IFG1 ; 2 Clear the OFIFG flag
      MOV #07FFFh,R15 ;  3 Wait at least 50 ?s
L2      DEC R15 ;
      JNZ L2 ;
; Tx warning code to UART !!!
      xor.b   #001h,&P1OUT             ; Toggle P1.0
      BIT.B #OFIFG,&IFG1 ; 4 Test OFIFG, and repeat steps 2-4 until OFIFG remains cleared.
      JNZ L3 ; Repeat test if needed

      BIS.B #OFIE,&IE1 ;   enable NMI for OSC

      BIS.B #SELM1,&BCSCTL2 ; MCLK Source Select 2: XT2CLK/LFXTCLK
      BIC.B #SELM0,&BCSCTL2 ; MCLK Source Select 2: XT2CLK/LFXTCLK
       BIS.B #SELS,&BCSCTL2 ; SMCLK Source Select 2: XT2CLK/LFXTCLK

;-------- Init ADC12  --------------



;-------- Init Timer_B --------------




;**** Main Loop:

Loop      nop
      xor.b   #001h,&P1OUT             ; Toggle P1.0
      mov.w   #03FFFh,R15             ; Delay to R15
L1      dec.w   R15                     ; Decrement R15
      jnz     L1                      ; Delay over?
            jmp          Loop         ;never ending loop
                                           
;---- Interrupt Service Routine for NMI ----------------------------------------
         .sect "NMIInt", 0FA00h
NMIInt      nop
;            reti                         ;NOT return from interrupt
; test source of NMI
; STOP all out ( LPM3 ? )
; Tx error code to UART
; LED on\off
        bis.b   #001h,&P1DIR            ; Set P1.0 to output direction
Errloop     xor.b   #001h,&P1OUT             ; Toggle P1.0
Wait        mov.w   #0FFFFh,R15             ; Delay to R15
L0          dec.w   R15                     ; Decrement R15
            jnz     L0                      ; Delay over?
            jmp     Errloop                 ; Again
; write to flash err code
; jmp START ?
END         nop                             ;

;-----Interrupt Vector Addresses------------------------------------------------
         .sect "Int_Vect", 0FFE0h;PUC/reset address
         .word      START      ;P0IFG.27
         .word      START      ;BTIFG
         .word      START            
         .word      START            
         .word      START            
         .word      START      ;ADCIFG
         .word      START            
         .word      START            
         .word      START            
         .word      START            
         .word      START      ;WDTIFG
         .word      START         
         .word      START      ;P0IFG.1
         .word      START      ;P0IFG.0
         .word      NMIInt      ;RSTI/OFIFG/ACCVIFG
         .word      START      ;PUC/WDTIFG

« Последнее редактирование: 16 Фев 2017 в 16:04 от 495 »

Страницы: 1Вверх