Перейти к содержанию
    

VladimirYU

Свой
  • Постов

    426
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные VladimirYU


  1. Тут нарисовано именно то, о чем написано в предыдущем сообщении. Управление по моменту...моментом. Если усилитель сильно усиливает... Самый сильный усилитель - интегратор.

    Классическая двухконтурная система подчиненного управления (для поиска: +модульный оптимум+симметричный оптимум ). Внутренний контур тока для компенсации электромагнитной постоянной времени якорной цепи (L/R) и внешний контур скорости для обеспечения требуемого качества регулирования.

  2. Спаренные ДПМ никогда не видел.

    Не забываем про пусковой ток и отсутствие его измерения.

    Вы что, не видели как спариваются ДПМ-ки :rolleyes: ? Я даже не рискнул такое спросить.

    Ну не хочет человек контроллировать токи имея мегу128, это его право. Ведь еще один сдвоенный ОУ потребуется.

  3. ....что ST не рекомендует этот метод соединения. + [url="http://www.cnczone.com/forums/showthread.php?Схема в DataSheet (Figure7) может и дана для того, что так не делать, вернее делать, но с осторожностью.

    Про диоды - согласен, можно и пошустрее. Некоторые ставят FR30x.

     

    Картинка на fig6 как раз и говорит, что все каналы идентичны по логике.

     

    Предупреждение скорее всего для случая раздельного использования сигналов Enable - вот здесь как раз и проявятся казусы.

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

  4. Читал. Так а почему не быть осторожным, когда соединяешь каналы, как это сделали Вы? Смысл-то включения не меняется. И уж я стараюсь (пока особого опыта нет) следовать рекомендациям официальной документации, чем делать ход конем :rolleyes: Тем более, кроме предупреждения я альтернативы не видел. Ну обычно если предупреждают о чем-то опасном, дают альтернативное решение. В общем (ИМХО) ничего страшного нет в том, чтобы следовать даташиту.

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

  5. Еще один маладэц!  :biggrin: Картинку при этом смотрели? Надеюсь, плату еще не разводили.

    Зачэм зубы скалыть? По делу что ли не ответить?

    ИМХО, если уж так хочется параллелить, хотя для данного случая это не нужно. Да вообще говоря это (параллельная работа силовых каскадов) никогда не было лучшим решением. Параллельте тогда ПЛЕЧИ мостов, не забывая про их управляющие сигналы, а не МОСТЫ целиком (см. Fig. 7 DS L298).

     

    Картинку смотрел, смотрел и самую первую картинку ("внутренности"), разницы между каналами не заметно. .....

    "Тыкните" пожалуста, в DataSheet в строчки о проблемах при параллельном соединении, а то люди, возможно, которые будут её собирать испытают "лёгкое разочарование. :smile3009:

    DS это не картинки из журнала "Мурзилка" - найди десять отличий. См Fig 6. таблица истинности при равенстве входных сигналов.

    Inputs Function

    Ven = H C = H ; D = L Forward

    C = L ; D = H Reverse

    C = D Fast Motor Stop

    Ven = L C = X ; D = X Free Running

    Motor Stop

  6. Может у мег внутр. генератор и хорош, но у меня както повелось еще с ат90-х всегда ставить внешний супервизор и генератор, может это и перестраховка зато с этими узлами никогда небыло проблем и я уверен в стабильности поскольку требования довольно высокие :rolleyes:

    +1!

    Заложить супервизор в SOT23 (~30руб.), забыть про БОД, который х.з. как у Атмела сделан. Ни разу в таком исполнении не было проблем с улетом ЕЕПРОМ. Второе, тоже пошло от AT90, не использовать 0-ую ячейку, чаще всего слетала она.

  7. Доброго времени!

    Задача: Управлять двумя спаренными ДПМ в ручном режиме, задавать различные скорости, тормозить в режиме реверса и свободное торможение. Вот у коллеги взял готовую схему электропривода с обратной связью, убрал не нужные мне элементы. Вот что получидлось (см. приложения). Посоветуйте по самой схеме может что стоит добавить, и по разводке печатной платы может что не так

    P.S. Top layer не отзеркаленн.

     

    По схеме.

    1. Зачем при вашей мощности двигателя параллелить мосты. В Вашем случае одной L298 хватит ддля управления двумя движками.

    2. Если уж заточили мегу128, то есть смысл в качестве управления на драйвер использовать выходы аппартных ШИМ таймеров 1 и 3. Выводы 5,6,7 (OC3A, OC3B, OC3C) 15,16,17 (OC1A, OC1B, OC1C).

    3. Обратной связи не вижу никакой. Для ДПМ обратная связь по току не нужна. Можно включить шунт между 1 и 15 L298 и минусом источника 27В, для контроля тока и защиты двигателя от перегрузки и режима к.з. (заклинило рабочий вал, например). Сигнал с шунта через буферный ОУ ( с однополярным питанием rail-to-rail ) на входы АЦП меги 128.

    4. Если речь об обратной связи по скорости, то решение в зависимости от типа датчика скорости (импульсный, тахогенератор и т.д. ) или косвенно E = U +/- IR где Е = K x W, K- постоянный конструктивный коэффициент,

    W - угловая скорость вращения, U - напряжение питания 27В, I - ток якоря, R - активное сопротивление якоря.

    мега 128 поятянет любой из вариантов.

    5. Максимально широкими (для вашего случая не уже 3 мм) дорожки силовой части 4, 2,3,13,14,1,15 L298 к JP2 и к ИП 27В.

    6. Вдруг попадется L298D D4...D7 можете не ставить.

  8. Токи какие бегают? Кстати. Я этот скользкий момент обошел - распараллелил на 3 меги 48, но это - шаговики, трехосевая силовуха, токи до 2.5 ампер. И меги между собой не связаны кроме как через 33 Ома по питанию и земля на каждый шла прямо из подопечной L298. Очень интересно, как Вы с землей решили. Может и правда я перестраховался?

    Полагаю, что перестраховались. Токи те же примерно, что и у вас. Земля организована стандартно. 1 и 15 ноги L298 через измерительный шунт на минус источника питания. Цифровая земля от минуса исочника отдельной линией, от которой дорожка на 8 ногу L298. Поскольку в плате 3 драйвера 298, получилось по силовой земле нечто похожее на шестилучевую звезду с узлом на (-) питания. Ни каких проблем не было. Кстати L298 приходилось встречать в автомобильных приложениях, а там развязка, как правило, не имеет смысла.

  9. Необходимость в развязке возникает когда у Вас несколько микросхем L298 и один управляющий контроллер. В таком случае Вы не сможете создать "чистую" землю для цифровой части.

    Можно поподробней, почему нельзя в этом случае создать чистую землю. У меня на одной меге 128 висит без разавязки 3 L298, упрвляющие 6-ю двигателями пост. тока в режиме ШИМ . Там же и SPI (на 1МГц)для связи c другой такой же платой, ЖКИ (4 на 40), клавиатура, 2 светодиодные линейки, на UART0 еще и MODBUS по RS485 (вот он с гальваноразвязкой). Право не вижу связи между количеством силовых преобразователей и возможностью организовать чистую землю для МК.

  10. Контроллер перегружается сам по себе. BOD включен. В том то и дело если разём не подключать к промышленному блоку то всё нормально.

    Ну если перезагрузка только при подключенном кабеле RS232, то скорей всего не удачно выбрана точка соединения земляного провода линии связи с землей платы меги. Отвалить земляной провод линии от платы и попробовать найти другую точку соединения с сигнальной зеьлей, м.б. через барьерный резистор (десятоки ом). Радикально - гальваноразвязка.

  11. правильно будет использовать глобальные переменные.

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

    Да, сложно представить консерваторию, где в оркестре все музыканты играют по одной для всех партитуре и одновременно каждый норовит ее подправить на свой вкус.

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

     

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

  13. это зависит от того, что Вам надо делать с этими данными. EEPROM энергонезависим, но работает заметно медленнее и имеет ограниченное число циклов стирания-записи

    В дополнение. Рекомендуется, для сохранения ресурса, перед операцией записи выполнять сравнение уже хранящегося значения с записываемым и производить запись только если они отличаются.

  14. Приветствую.

     

    Поясните plz чайнику, в чем принципиальная разница между аппаратными и программными брейкпоинтами. Например, JTAG поддерживают оба вида. Иногда работает какой-то один.

     

    Спасибо.

    Применительно к какой платформе?

  15. Какая из AVR будет надежнее работать при питании 3.7в и кварцем 16МГц

     

    Atmega128-16 или Atmega128L-8 (BOD - off)

     

    Абстрагируемся от проблем вызванных помехами питания.

    ИМХО 128-16. Приходилось делать это, правда в в сериях 5-10 шт. с индивидуальной проверкой работоспособности мег 128 на пониженном питании. Понятно, что не от хорошей жизни возник вопрос, но все-таки ни то, ни другое не лучший выбор....

  16. Конечно, причин тому может быть много, но, первое что приходит в голову: отсутствует спецификатор volatile у переменной count_for_increment.

    и count_10_hz также.

    Нет ли еще прерываний более высокого приоритеота, чем таймер 0, где используется count_10_hz?

    Чем черт не шутит, попробуйте count_10_hz++ вынести из if.

  17. Подскажите как быть. Решил вместо своих модулей которые работают с еепром памятью контроллера м88, использовать возможности ИАР и неизобретать велосипед. С одной стороны очень удобно, объявляеш как обычную строку только дописываеш __eeprom, и иар сам подставляет все нужные команды.

    unsigned char __eeprom mymac[6] = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};

     

    при этом компилятор нестал возражать и при сборке добавил строчку XDATA

     
    6 522 bytes of CODE   memory  (+ 50 range fill ) 
       802 bytes of  DATA   memory (+ 12 absolute ) 
         22 bytes of XDATA  memory

     

    когда пришло время проверить проект в железе, иар отказался собирать HEX файл.

     

     

    Ещё с таким несталкивался, как я понял он может сохранять в HEX еепром но нехватает ключа, подскажите где ввести этото ключ ?

    Выбирите выходной формат intel-extended и добавьте в настройках линкера в звкладке extra options

    командную строчку для формимрования прошивки ЕЕПРОМ

    -Ointel-extended,(XDATA)=$EXE_DIR$\$PROJ_FNAME$_data.hex

  18. Код обработчика USBINT = 0;, да хоть любой другой.

    Вызывает сомнения Proteus? Можно рассматривать только AVR Studio. При установке бита VBUS и даже VBUSTI прерывания не происходит.

    Только предположение. Далеко не вся переферия полностю моделируется симуляторами, и система прерываний в том числе. И все же вопрос про WDT актуален, явно запретите его, т.к. глюк с его симуляцией в студии раньше был.

  19. Самой железки пока нет. Пробую в Proteus и AVR Studio такой код для AT90USB1286:

    ISR(USB_GEN_vect)
    { USBINT = 0;}
    int main(void)
    {
    // разрешить VBUS detection и VBUS Transition interrupt
    // то есть определение подключения или отключения устройства
    USBCON |= (1 << OTGPADE)|(1 << VBUSTE);
    USBINT = 0;
    // Global enable interrupts
    sei();
    while(1){}

    Прерывания VBUSTI нет. Ставил и VBUS и VBUSTI. В чем проблема? Спасибо.

    А где код обработчика?

     

    А где код обработчика?

    В догонку. Что WDT, что с разрешением прерывания, и.... , а как ПРОТЕУС на это смотрит?

  20. CodeVision - хорошая тема. Богатый инструментарий. Может, я подотстал, но когда-то в нем обнаружилась неприятность. Компилятор при входе в прерывание не сохраняет статусный регистр. Если делать это самому программно, то CodeVision - хорошая тема. Без шуток.

    Инструментарий, может быть и богатый, но...

    1. язык "похожий на С"

    2. не ++

    3. не предсказуем в дальнейшем (см п.1)

     

    На этапе ознакомления, м. б. и имеет смысл с CV поработать, но не подсесть на него, ИМХО.

  21. Dmitry Sadikov, природу не обманешь, либо заранее жестко определенная адресация, в Вашем случае, когда всего 4 слэйва и мега128, я бы остановился на ней. Если задача потенциально требует расширения, рекомендую все же ранее предложенный мною способ. Он "ложится" практически под любой пртокол, MODBUS например. Аппаратно на устройстве нужно иметь только один джампер( Set default). Далее устройство прописывается в сети. и на ходу, загорелся светодиод обмена, джампер снимается/устанавливается наладчиком. Даже самый "продвинутый" специалист не запутается.

  22. Спасибо. воспользуюсь этим способом.

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

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

×
×
  • Создать...