roboforum.ru

Технический форум по робототехнике.


Сервопривод, универсальный и достаточно мощный

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

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 09 фев 2010, 17:52

именно аллегры уже и закуплены для опытов.. не совсем понял про нарастание?
не проще ли взять драйвер с дедтаймами

с одной стороы - мб и да, но с другой - нет... возможны разные законы коммутации

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

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

Но тут трудно советовать - у вас взгляд на проблему может быть совсем иной...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 09 фев 2010, 20:14

ну есть почитать мануал Хмега А, то вроде бы получается что мона отключать AWEX на некоторых пинах и рулить ими как хочется.. к примеру держать 1 нижний ключ всегда открытым.. а вторую диагональ ШИМить, включая то верх, то низ, таким образом замыкаю обмотку ДПТ..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 09 фев 2010, 20:33

вроде бы получается что мона отключать AWEX на некоторых пинах и рулить ими как хочется..

Можно. У меня так работает. (делал под униполярные шаговики, а потом прикрутил к пару диси-моторчиков с реверсом на релюшках).

Но факт в том, что чистый ШИМ, управляемый током так получить не удастся.
Придется или целиться "на глаз" или просто выбрать только такие режимы,
которые доступны в данной схеме.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 09 фев 2010, 20:36

чистый ШИМ управляемый током - имеется ввиду стабилизация тока? тогда по идее мона сделать через компаратор и систему событий, и дергать пины ) так, если подумать )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 09 фев 2010, 20:45

Код: Выделить всёРазвернуть
//#define F_CPU   (32000000ul)

#include <avr/io.h>
#include <util/delay.h>

#define LED_BLUE()   { PORTC.OUTCLR = 4; PORTC.OUTSET = 1; }
#define LED_RED()   { PORTC.OUTCLR = 1; PORTC.OUTSET = 4; }
#define LED_OFF()   { PORTC.OUTCLR = 5; }

// Motors

#define L_FORW()    { PORTC.OUTCLR = 0x02; }
#define L_BACK()    { PORTC.OUTSET = 0x02; }
#define R_FORW()    { PORTC.OUTCLR = 0x20; }
#define R_BACK()    { PORTC.OUTSET = 0x20; }

#define L_SPEED(a)    { TCC0.CCBL = 255-a; }
#define R_SPEED(a)    { TCC0.CCDL = 255-a; }

#define LIGHT_ON()   { PORTB.OUTSET = 0x02; }
#define LIGHT_OFF()   { PORTB.OUTCLR = 0x02; }

#include <blue.c>

signed int ADC(void)
{
   ADCA.REFCTRL    = 0x10;         // REF = 2V
   ADCA.PRESCALER  = 0x01;         // Prescaler=8
   ADCA.CTRLB      = 0x10;         // signed mode
   ADCA.CH0.CTRL = 0x02;         // inputmode = diff, gain = 1
   ADCA.CH0.MUXCTRL = 0x01;      // positive input pin = A0, negative = A1
   ADCA.CTRLA = 0x01;            // ADC enable
   ADCA.CTRLA = 0x05;            // Channel0 start
   while ((ADCA.INTFLAGS&0x01)==0);
   return ADCA.CH0.RES;
}

void main(void)
{
//========================================= INIT
               
// OSCILLATOR
   
   while ( ((OSC.STATUS)&0x01)==0 );
   OSC.CTRL |= 0x02;
   while ( ((OSC.STATUS)&0x02)==0 );
   CCP = 0xD8;
   CLK.CTRL = 0x01;

// PORTC (Motors, Relays, Led)

   PORTC.DIR = 0xAF;   // Motors & Relays (+LED = 0x05)
   PORTB.DIR = 0x02;   // Light

   AWEXC.CTRL = 0x0F;   // Enable DTI on all four channels
   AWEXC.OUTOVEN = 0x88;   // Channels B & D override pins
   
   TCC0.CTRLE = 0x01;    // Byte mode
   TCC0.PERL = 255;
   
   TCC0.CCBL = 255;
   TCC0.CCDL = 255;

   TCC0.CTRLB = 0xA3;   // B & D channels single-slope PWM
   TCC0.CTRLA = 0x05;   // Prescaler = 64  (32M/64/256 = 2kHz)


Добавлено спустя 4 минуты 19 секунд:
Duhas писал(а):чистый ШИМ управляемый током - имеется ввиду стабилизация тока? тогда по идее мона сделать через компаратор и систему событий, и дергать пины ) так, если подумать )

Да, я это имел в виду. То же самое можно отнести и к переходу тока через ноль или к "естественному"
управлению БЛДС (хоть с холлами, хоть бессенсорно)
События можно, но поскольку придется по разному реагировать в зависимости от фазы, то чистыми эвентами
не обойдешься, нужно еще и прерывания дергать... Ну в общем можно подумать, но сложновато имхо.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 09 фев 2010, 20:49

да как сказать ), я в идеале то и хочу получить плату для всего сразу... сейчас задача сделать железку, чтобы потом можно было кодить... я все-таки наверное пойду в сторону А3..

прок код приведенный - чтот я не понял к чему он) ето же кусок только? да и от СИ я так отвык )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 09 фев 2010, 20:55

Это пример инициализации awex на двух отдельных ногах, а остальные ноги - просто ноги...
собственно, не такой уж тут си - команды вполне "ассемблерообразные" :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 09 фев 2010, 20:57

да не, инициализация то понятна ), я просто думал ето код чего-то конкретного )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 09 фев 2010, 21:01

Ну... я просто подумал, вдруг пригодится... да и разбираться проще, когда пример перед глазами :oops:
Хотя ничего особо сложного на Xmege не делал пока - датчиков тока у меня на этой платке нет,
поуправлял шаговиками и ДПТ без обратных связей...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 09 фев 2010, 21:26

ну вот я хочу найти себе полигон для проб )

ладно мне тут мысли все выбили из колеи.. вернусь завтра...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 10 фев 2010, 08:42

мне вот интресно, такой регулятор реально дает 100А на фазу, или кушать может до 100А ну и тд ) или ето тупой маркетинг as usual...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 10 фев 2010, 11:14

Насчет этого регулятора - не скажу, а вообще в таком объеме делают.
Главное решить две проблемы - отвод тепла и подвод тока
(по плате сто ампер тоже не очень-то просто прогнать)...

А сами транзюки сейчас трамбуют очень плотно:
irf7769, например - фитюлька 7x9 мм - сто ампер (но только с принудительным охлаждением)
или какой-нибудь irf1324 - 0.0008 Ом открытый канал - токи просто безумные (а корпус всего лишь D2PAK)

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

Добавлено спустя 7 минут 26 секунд:
Реально, я думаю, что на сопротивлении источника, проводах
тоже мощность выделяется неслабая при таких токах.
Да и вряд ли все это расчитано на продолжительную работу.
Последний раз редактировалось Michael_K 10 фев 2010, 11:15, всего редактировалось 1 раз.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Сервопривод, универсальный и достаточно мощный

Сообщение =DeaD= » 10 фев 2010, 11:15

По плате 100А гонять думаю достаточно просто - не делаешь маску на дороге и напаиваешь хоть 3мм припоя сверху :)

Добавлено спустя 28 секунд:
Вот только между сторонами платы надо через штыри переводить :) тут никакая металлизация отверстий не спасет :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Duhas » 10 фев 2010, 11:19

ну а как бы с кого еще нам рубить то ? роботостроителям ?
да и я не сказал бы что на хоббистах сильно рубят денег.. ну стоит он 60 баксов.. если там нормаьная система. то почему бы нет )

хотя какая там система.. начальный разнон и потом на безсенсорном управлении тупо полюбому пропорциональное управление...

Добавлено спустя 2 минуты 49 секунд:
пригляделся к А4... там только 2 компаратора.. мимо кассы....
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Сервопривод, универсальный и достаточно мощный

Сообщение Michael_K » 10 фев 2010, 11:23

напаиваешь хоть 3мм припоя сверху

Так тоже делают, хотя медь все-равно раз в десять лучше проводит, чем припой
...и плавится при бОльших температурах :wink:

Добавлено спустя 2 минуты 22 секунды:
там только 2 компаратора.. мимо кассы....

А там же вроде можно ацп запустить со сравнением - или не спасет?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Пред.След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9