PCI контроллер. Halcompail и драйвер.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

nkp, осталось 5 сообщений, надо добивать :) (((5555)))
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

T00T писал(а):Тут место под структуру выделяю, и передаю значение в указатель структуры.(Ну а в ней пины!!!!)
Адрес выделенной памяти под структуру у тебя находится в переменной device_port, a данные ты пихаешь по адресу в локальной переменной port, который указывает непойми куда.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

думаю это стоит проверить. :)
Но вообще если почитать документацию - там вот что написано :
The pointer will be set to the value 'arg' below,
and the long will be set to the thread period in nanoseconds.
'arg' is a void pointer that will be passed to the function
each time it is called. This is useful when one actual
C function will be exported several times with different HAL
names, perhaps to deal with multiple instances of a hardware
device.
extern int hal_export_funct(const char *name, void (*funct) (void *, long),
void *arg, int uses_fp, int reentrant, int comp_id);
Т.е. третий аргумент есть указатель который передаётся функции при каждом её вызове, туда записано &device_data.
А при вызове функции, как аргумент её void update_port(void *arg, long period), передаётся в указатель port = arg;
По моему всё понятно, ну да ладно проверим!!!!!!
Я не волшебник я пока учусь......
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

В общем косяк здесь.
Решено, не правильно передавался в функцию указатель на структуру!!!!!!!
UAVpilot - спасибо за помощь и терпение :).

ЕДЕМ дальше!!!!!!!!!!!!!!!
Последний раз редактировалось T00T 20 июн 2015, 19:07, всего редактировалось 1 раз.
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

На планшете неудобно - в понедельник посмотрю...
Похоже под сами пины память не выделена или с указателями напутано...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Я просто изначально за рыбу взял драйвер evoreg.
Поэтому особо не вдавался в подробности как передаётся указатель, а оказывается передаётся он не правильно.
Походу evoreg работать не будет :)
Я не волшебник я пока учусь......
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Такой вопрос какова разрядность выходных данных с EMC, для формирования PWM сигнала. Т.е. с какой точностью выставляется выходное задание для мотора.
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

Точность зависит от соотношения длины импульса/паузы PWM и длительности базового периода.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Да да, я про это и спрашиваю - это называется СКВАЖНОСТЬ сигнала. Я закладываю в свою железку этот параметр, и нужно знать с какой точностью выставляет чпушка Uзад(просто EMC уже выставляет задание с конечной точностью), ну и желательно в каком формате. Я вот прикинул, думаю 11-12bit достаточно. Хотя может и ошибаюсь.
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

T00T писал(а):11-12bit достаточно
Такое определение не подходит. Например в случае базового периода равного 1us для PWM с частотой 5кГц дискретность получится 1%, т.е. 6 бит, а для сигнала с частотой 50кГц дискретность будет уже 10%, т.е. 4 бита.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

UAVpilot писал(а):
T00T писал(а):11-12bit достаточно
Такое определение не подходит. Например в случае базового периода равного 1us для PWM с частотой 5кГц дискретность получится 1%, т.е. 6 бит, а для сигнала с частотой 50кГц дискретность будет уже 10%, т.е. 4 бита.
Да кстати..

период 5кГц -есть 200us, и если длит. базового периода 1us то отношение равно 200 - а это как понимаешь 8БИТ, а не 6. Ну и во втором случае 5 бит.


Не, речь идёт о том что разница периодов следования импульсов и длительности самого короткого импульса - есть максимальная скважность и она же есть разрешающая способность для установки напряжения выходного сигнала. Чем отношение выше, тем лучше. Но реально на практике оно ограниченно техническими возможностями ну или целесообразностью. Какая разрядность будет достаточной вот вопрос? И скорее всего разрешение на выходе ЧПУ тоже ограничена 10,11,12,16, ну или каким нибудь другим числом.
Просто пока не понятно как работает система EMC.
Слишком большой диапазон скоростей.
Допустим у меня на токарнике мах скорость по оси Z при 10В - составит 15000 мм/мин. А минимальная скорость может быть и 0.1 мм/мин.
Т.е. отношение может быть и 150 000, а это 18bit. Понятно, что при мин. длительность импульса будет скорость 10-20 мм/мин. А затем скорость снижается путём периодического пропадания сигнала на выходе(ну тоже шим так сказать - но тут всё за счёт PID-регулятора).
Просто нужно определиться с разрядностью.....
Слишком низкая частота следования - увеличивает время нарастания сигнала в фнч, слишком малая длительность импульса - может на длинных проводах обрезаться....
Ну и так далее.
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

T00T писал(а): период 5кГц -есть 200us, и если длит. базового периода 1us то отношение равно 200 - а это как понимаешь 8БИТ, а не 6. Ну и во втором случае 5 бит.
На один период PWM как минимум израсходуется два базовых периода - один на импульс, второй на паузу.
T00T писал(а): Но реально на практике оно ограниченно техническими возможностями ну или целесообразностью. Какая разрядность будет достаточной вот вопрос? И скорее всего разрешение на выходе ЧПУ тоже ограничена 10,11,12,16, ну или каким нибудь другим числом.
Частота PWM (а следовательно длительность импульсов, а следовательно и дискретность скважности) ограничена сверху базовым периодом, а снизу разрядностью float (т.е. фактически ничем)... :)
T00T писал(а):Какая разрядность будет достаточной вот вопрос?
Таким образом вопрос переадресовывается к разрешающей способности привода. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

А что за пауза?
На сколько я понимаю мин -будет так :
пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Даже если 2 длительности импульса, то отношение 100 - это 7 бит(хотя длительность мин - 1us). :)
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

T00T писал(а):пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Не принципиаьно, можно и так считать, если забить на линейность типового преобразователя PWM-напряжение.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Ну преобразователь буду делать, как ФНЧ 2-го порядка
Я не волшебник я пока учусь......
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Ну так вопрос остался открытым какую разрядность выбрать для PWM - генератора?
Я не волшебник я пока учусь......
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Nick »

Это вы говорите про pwm через lpt порт?
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Сергей Саныч »

При заявленной скважности (разрешении)
T00T писал(а):думаю 11-12bit достаточно
получится ооочень неторопливый ШИМ. При базовой частоте, например, 30 кГц выходная частота будет 15-30Гц. Если мы сглаживаем ШИМ ФНЧ 2 порядка (спад 12 дБ/октава) то для получения приемлемых пульсаций 0,1% (а иначе зачем такое разрешение?) сигнал на выходе фильтра будет изменяться с частотой в десятые-сотые доли герца. Если для данной задачи это приемлемо - то вперед.
Nick писал(а):Это вы говорите про pwm через lpt порт?
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.
Это вариант.
Чудес не бывает. Бывают фокусы.
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Да не важно LPT или PCI или ещё что. Я думаю параметры будут такими: F=2 Кгц, tмин=250 ns ну и разрешение 11bit соответственно. 2 Кгц это не мало, вот вопрос какой.
Я не волшебник я пока учусь......
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Nick »

T00T писал(а):2 Кгц это не мало, вот вопрос какой.
Не понял вопрос.

Не будет ли слишком мало 2кГц для твоего сигнала?
Ответить

Вернуться в «LinuxCNC»