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


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

Реклама:

AVR в качестве универсальной замены чипа на контроллере.

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

Автор Тема: AVR в качестве универсальной замены чипа на контроллере.  (Прочитано 206 раз)

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

prostosergik

  • Неравнодушный
  • **
  • Репутация: 4
  • Сообщений: 135
  • Markovići, Crna Gora
  • Оффлайн Оффлайн
    • Награды
Привет братва.

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

Вопрос в следующем. Поскольку электроника там боле лимене (с)(тм) одинаковая, уровни сигналов тоже, может где-то уже существует прошивка для ATMega такая, чтобы просто подключить соответствующие ножки на нужные места, и оно выполняло бы базовую функциональность: контроль мотора, газ 1.1-4.8в, тормоза по низкому уровню, круиз, остальное не надо.

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

Ну или подскажите проект опенхардвер контроллера на базе AVR. Почему не STM? Да можно и STM в принципе =) Но c AVR опыта больше, там я могу подправить код под свои нужды.

Спасибо!

fondrosel

  • Старожил
  • *****
  • Репутация: 17
  • Сообщений: 1558
  • Москва, измайлово\гольяново
  • Электротрайкист
  • Оффлайн Оффлайн
    • Награды
Подобные темы уже обсуждались на форуме. Все кто мог написать прошивку ушли в коммерцию и бесплатно ничего не раздают, а кто не может тот не может. Так что это хоть и не плохая но тупиковая идея, если только не начать писать самому

Сообщение понравилось: prostosergik

acyd

  • Старожил
  • *****
  • Репутация: 74
  • Сообщений: 3652
  • Хлынов=Вятка=Киров
  • Кот-терминатор
  • Оффлайн Оффлайн
    • Награды
В теме про модельный движок товарищ Pawel поделился контроллером на авр. Там и схема и прошивка, контроллер реально рабочий, сам собирал с нуля, по технологии лут.
Думаю можно прикрутить управляющие ноги к драйверам китайца.
Но учтите надежность такой надстройки :neg:+ там с рождения нет более-менее вменяемых защит,  круиза и тормоза вроде не было, зато есть выход на экран.

В качестве ознакомления с принципом работы микроконтроллеров имеет смысл, но времени и сил заберет, проще купить нормальный контроллер.
« Последнее редактирование: 09 Июл 2018 в 23:14 от acyd »

495

  • Начинающий
  • *
  • Репутация: 0
  • Сообщений: 44
  • улус Джучи ТёплыйСтан
  • Оффлайн Оффлайн
    • Награды
В фирменной документации можно много чего найти .
http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR444.htm
Меня интересовал бездатчиковый режим , в закладках осталась ссылка .
Если АЦП у всех контроллеров мало отличаются , то таймеры и компараторы сильно влияют на код , сужу по отличию PIC и MSP430 . АЦП часто работает вместо пары компаратор + ЦАП , но на порядок медленее .
 Сделать можно , если не копать недостатки существующей схемотехники , а то можно закопаться  . /:-)
« Последнее редактирование: 10 Июл 2018 в 11:06 от 495 »

prostosergik

  • Неравнодушный
  • **
  • Репутация: 4
  • Сообщений: 135
  • Markovići, Crna Gora
  • Оффлайн Оффлайн
    • Награды
У меня на самом деле полу-академический интерес. Нашел пару проектов, нужно будет таки сесть, поправить прошивку и постараться завести =) Но на всякий случай заказал еще 4 шт MC33035. Если не МК, так хоть оно. Бездатчиковый режим не нужен, рекуперация не нужна, тормоз по низкому уровню реализуется очень просто без вмешательства МК, плавный старт не нужен, круиз тоже... ну такое, короче.

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

TRO

  • Старожил
  • *****
  • Репутация: 149
  • Сообщений: 6675
  • Украина, г. Запорожье.
  • Оффлайн Оффлайн
    • Награды
В большинстве контроллеров которые сейчас есть применяются микроконтроллеры с встроенным трехфазным ШИМом аппаратно заточенным под управление моторами (имеющим деадтаймы и входы защиты по току). Дешевые AVR туда прямой заменой очень плохо лезут.

JT

  • Неравнодушный
  • **
  • Репутация: 3
  • Сообщений: 223
  • Украина, Каменское
  • Ездю на батарейках!
  • Онлайн Онлайн
    • Награды
Если я память неизменяет то clawham делал контролер и на коте вылаживал.

495

  • Начинающий
  • *
  • Репутация: 0
  • Сообщений: 44
  • улус Джучи ТёплыйСтан
  • Оффлайн Оффлайн
    • Награды
В большинстве контроллеров которые сейчас есть применяются микроконтроллеры с встроенным трехфазным ШИМом аппаратно заточенным под управление моторами (имеющим деадтаймы и входы защиты по току). 
Всё это заточено под вектор/синус для гладкого момента в сервоприводах , в транспорте достаточно сгладить фронты трапеции как функцию от скорости .
 Когда у вас нормально отлаженная петля обратной связи по току , то болшинство защит не нужны . Аналоговый тормоз становится тем же стабилзатором тока наоборот  , то есть код пишется за один день .
Дешевые AVR туда прямой заменой очень плохо лезут.
Дешёвые контроллеры не имеют достаточно таймеров для реализации всех функций одновременно . 
Ставить по дешёвому контроллеру на фазу никто не запрещает , только у 8 ног корпуса недостаточно ног для обработки датчиков . Безсенорный режим при этом в 8 ног упакуется .

on4ip

  • Старожил
  • *****
  • Репутация: 4
  • Сообщений: 2072
  • Россия, Раменское
  • Славяним Байк
  • Оффлайн Оффлайн
    • Награды
всегда все очень просто и за один день+) Но в сказках.

495

  • Начинающий
  • *
  • Репутация: 0
  • Сообщений: 44
  • улус Джучи ТёплыйСтан
  • Оффлайн Оффлайн
    • Награды
всегда все очень просто и за один день+) Но в сказках.
Коммерсанты набежали . Конец теме . :sorry:

mr.Dream

  • Старожил
  • *****
  • Репутация: 107
  • Сообщений: 3036
  • Ternopil, Ukraine
  • Ездю на лифере :)
  • Оффлайн Оффлайн
    • Награды
За один день вполне можно оживить контроллер, включая написание прошивки. У меня на примитивизм, который просто вращал мотор, опираясь на показания датчиков, подмешивая ШИМ, ушло от силы 15 минут с перекуром. И больше времени я просто подбирал рабочую комбинацию, а верней не подбирал, а логически высчитывал последовательность :)
обработку холлов делал в прерываниях

в "сетапе" проинициализировал прерывания по изменению состояния пиов порта
  PCICR |= B00000001;
  PCMSK0 |= B00011100;

ну и сам обработчик прерывния
ISR(PCINT0_vect){
  if ((PINB & 1<<2) and (~PINB & 1<<3) and (~PINB & 1<<4)){  //100
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B10001000; //ab
  }
  else if ((PINB & 1<<2) and (PINB & 1<<3) and (~PINB & 1<<4)){  //110
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B00101000; //cb
  }
  else if ((~PINB & 1<<2) and (PINB & 1<<3) and (~PINB & 1<<4)){  //010
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B00110000; //ca
  }
  else if ((~PINB & 1<<2) and (PINB & 1<<3) and (PINB & 1<<4)){  //011
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B01010000; //ba
  }
  else if ((~PINB & 1<<2) and (~PINB & 1<<3) and (PINB & 1<<4)){  //001
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B01000100; //bc
  }
  else if ((PINB & 1<<2) and (~PINB & 1<<3) and (PINB & 1<<4)){  //101
    PORTD = PORTD & B00000011;
    PORTD = PORTD | B10000100; //ac
  }
  else{
    PORTD = PORTD & B00000011; //111 or 000 err
  }
}

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

TRO

  • Старожил
  • *****
  • Репутация: 149
  • Сообщений: 6675
  • Украина, г. Запорожье.
  • Оффлайн Оффлайн
    • Награды
, в топку условия, все решается логическими операциями над группой входных бит и выдачей результата в порт (опять же группой), оптимизация делается по старинке по картам карно.

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

Помощь форуму | Отказ от ответственности | Новая версия форума
©, Форум электротранспорта, electrotransport.ru, 2007—2018.
Копирование материалов возможно только с согласия правообладателя.

Размер занимаемой памяти: 5.5 мегабайт.
Страница сгенерирована за 0.179 секунд. Запросов: 92.