Страница 11 из 13
Re: Плата для управления севро двигателями через EMC2
Добавлено: 30 янв 2013, 02:11
wowk
Мой конфиг....
Re: Плата для управления севро двигателями через EMC2
Добавлено: 30 янв 2013, 02:21
wowk
Тут надыбал интересный вариант конфигурации для фрезера на три оси ...
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
Сейчас буду изучать глубже хал, чтобы задавать вопросы по существу ....
.... не успел подтянуть входы резисторами к плюсу питания ... завтра подброшу и посмотрю на 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 ...
плату Плуто и серво усилитель собирал и настраиваю в свободное время на работе ...
немного не хватает времени ..... но хочется запустить двигатель ....
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 ....
сейчас использую такой вариант конфигурации взят из отсюда:
http://www.cnczone.com/forums/granite_d ... servo.html
без помощи уже никак .....
мой конфиг сейчас выглядит так ...
....подскажите куда копать .... такое впечатление будто выводы ПЛИС, из которых выходят сигналы ШИМ, вообще не активны....
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 не используется ....