Страница 11 из 13

Re: Плата для управления севро двигателями через EMC2

Добавлено: 30 янв 2013, 02:11
wowk
Мой конфиг....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 30 янв 2013, 02:21
wowk
Тут надыбал интересный вариант конфигурации для фрезера на три оси ... :thinking:

http://www.cnczone.com/forums/granite_d ... servo.html

Re: Плата для управления севро двигателями через EMC2

Добавлено: 31 янв 2013, 00:34
wowk
Сегодня ничего не вышло с конфигом .... буду дальше разбираться с HAL и INI ....
Проект платки с ПЛИС в KiCAD ... буду переделывать так как промахнулся с разъемами пинов ... :)
Но сам буду использовать этот вариант потому что вытравил и спаял плату .... в принципе плата рабочая ...Наверное стоит разъемы пинов заменить на DB9 и DB25... или клеммные колодки для пайки на плапту ....

....после окончательной доводки проекта подброшу библиотеки .....
Nick не скажете ... какой максимальный размер файлов для выкладки на форуме?

Re: Плата для управления севро двигателями через EMC2

Добавлено: 31 янв 2013, 01:22
wowk
Плату серво усилителя тоже буду переделывать... разводил ее в Sprint-Layout на IR2104 а не IR2184 ..... хочется все сделать в KiCAD для полной комплектации ...

Re: Плата для управления севро двигателями через EMC2

Добавлено: 31 янв 2013, 10:58
Nick
Following error - означает, что ось ушла от нужной траектории больше чем на
FERROR = .1 (задается в ini)
Может быть либо из-за того, что обратная связь не правильно настроена, или не настроен PID, или из-за особенностей привода.

Для начала поставь ferror = 1000 и посмотри в halshow что творится на пинах команды движкам и обратной связи.

Re: Плата для управления севро двигателями через EMC2

Добавлено: 31 янв 2013, 11:04
Impartial
wowk писал(а):Сегодня ничего не вышло с конфигом .... буду дальше разбираться с HAL и INI ....
А что не получается?
"joint 0 on limit switch error" это ошибка оборудования плуто. Скорее всего из-за помехи. Подключи резисторы на подтяжку входов.
Ты зря поставил развязку по входам-выходам. Один чип стабильнее работает.
Попробуй запитать плату плуто от компа. Можно от USB.

Re: Плата для управления севро двигателями через EMC2

Добавлено: 31 янв 2013, 12:21
Nick
Упс, эт я ошибся там оказывается Limit switch. Может просто пин надо инвертировать? Или можешь пока просто вот эти строки закомментировать:

Код: Выделить всё

net Xswitch pluto-servo.din.00-not => debounce.0.0.in
net Xswitch-debounced debounce.0.0.out => axis.0.home-sw-in axis.0.pos-lim-sw-in

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:07
wowk
Спасибо Nick! :) .... закоментировал и теперь программно можно выставить в ноль все оси ....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:08
wowk
Сейчас буду изучать глубже хал, чтобы задавать вопросы по существу .... :think:

.... не успел подтянуть входы резисторами к плюсу питания ... завтра подброшу и посмотрю на halcmd sow ....
а пока показало такой результат .....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:26
wowk
Impartial, у меня энкодеры выдают ТТЛ 5 вольт а ПЛИС питается от 3,3 в ..... буферами хотелось согласовать уровни сигналов но вы правы, о подтяжку на входе не подумал .... восемь входов електоавтоматики я подбросил к единице ...... скажите, а входы с компаратора тоже стоит подтянуть к единице или подавать на них нолик?
...плату за питал от акамулятора а завтра попробую от USB ....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:32
wowk
.... ребята .... спасибо за помощь! .... :)

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:37
Nick
О там у тебя есть пины not ко всем входам:
10 bit OUT FALSE pluto-servo.din.13
10 bit OUT TRUE pluto-servo.din.13-not
Это хорошо, даже отлично :).
wowk писал(а): закоментировал и теперь программно можно выставить в ноль все оси ....
Закомментировал или просто not убрал?

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 00:54
wowk
:) Закомментировал....
завтра доберусь до компа с и уберу not ...
плату Плуто и серво усилитель собирал и настраиваю в свободное время на работе ... :cheesy:
немного не хватает времени ..... но хочется запустить двигатель ....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 01 фев 2013, 09:16
Impartial
wowk писал(а):Impartial, у меня энкодеры выдают ТТЛ 5 вольт а ПЛИС питается от 3,3 в .....
Для 5в входов достаточно поставить резистор на 50 ом и диод минусом на 3.3в и использовать внутренние подтягивающие резисторы.
Так же нужно сделать и со входами-выходами LPT.
А проще всего поднять питание чипа до 4.5в. Просто пару диодов поставить с 5в. Дока это позволяет, и по опыту это оптимальный вариант.
А компаратор зачем? Обычно в компараторах открытый коллектор. Просто нагрузку на 3.3 повесить. А входы подтягивать нельзя. Изменится входное сопротивление.

Re: Плата для управления севро двигателями через EMC2

Добавлено: 06 фев 2013, 19:14
wowk
Всем привет!
Никак не могу выдать с ПЛИС ШИМ на серво усилитель ..... как не менял параметры PID и перебирал HAL .... :evil:
сейчас использую такой вариант конфигурации взят из отсюда:
http://www.cnczone.com/forums/granite_d ... servo.html

без помощи уже никак ..... :thinking:
мой конфиг сейчас выглядит так ...

....подскажите куда копать .... такое впечатление будто выводы ПЛИС, из которых выходят сигналы ШИМ, вообще не активны....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 06 фев 2013, 19:26
wowk
...по командах lalcmd show и halcmd show | grep out выдало такой результат....

Re: Плата для управления севро двигателями через EMC2

Добавлено: 06 фев 2013, 23:59
Nick
Так, а какой именно шим ты проверяешь, (по номеру)?
Пины правильно выбрал? И как проверяешь, что шима нет?

Re: Плата для управления севро двигателями через EMC2

Добавлено: 07 фев 2013, 10:03
Impartial
wowk писал(а):....подскажите куда копать .... такое впечатление будто выводы ПЛИС, из которых выходят сигналы ШИМ, вообще не активны....
В исходнике "servo.v" как выглядит выделенная строка?

// EPP stuff
wire EPP_write = ~nWrite;
wire EPP_read = nWrite;
wire EPP_addr_strobe = ~nAddrStr;
wire EPP_data_strobe = ~nDataStr;
wire EPP_strobe = EPP_data_strobe | EPP_addr_strobe;

wire EPP_wait; assign nWait = ~EPP_wait;
wire [7:0] EPP_datain = pport_data;
wire [7:0] EPP_dataout; assign pport_data = EPP_dataout;

reg [4:0] EPP_strobe_reg;
always @(posedge clk) EPP_strobe_reg <= {EPP_strobe_reg[3:0], EPP_strobe};
wire EPP_strobe_edge1 = (EPP_strobe_reg[2:1]==2'b01);

Re: Плата для управления севро двигателями через EMC2

Добавлено: 07 фев 2013, 15:03
wowk
.....Impartial шил вашей прошивкой, пост # 66 ....
Проект max2pluto в квартусе 9.
Исходник - файл max2pluto.v
Язык Verilog.

max2pluto.rar
......в исходнике виглядит так:

// EPP stuff
wire EPP_write = ~nWrite;
wire EPP_read = nWrite;
wire EPP_addr_strobe = ~nAddrStr;
wire EPP_data_strobe = ~nDataStr;
wire EPP_strobe = EPP_data_strobe | EPP_addr_strobe;

wire EPP_wait; assign nWait = EPP_wait;
wire [7:0] EPP_datain = pport_data;
wire [7:0] EPP_dataout; assign pport_data = EPP_dataout;

Re: Плата для управления севро двигателями через EMC2

Добавлено: 07 фев 2013, 15:11
wowk
Спасибо Nick! :)
Наличие ШИМ проверяю осциллографом С1-55 ....
На энкодеры АХIS реагирует, когда прокручиваешь вал то начинают изменяться значения на экране, таким макаром проверил все четыре входные каналы А и B. ....... метка Z не используется ....