Страница 2 из 19

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

Добавлено: 20 июн 2015, 12:08
T00T
nkp, осталось 5 сообщений, надо добивать :) (((5555)))

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

Добавлено: 20 июн 2015, 14:51
Serg
T00T писал(а):Тут место под структуру выделяю, и передаю значение в указатель структуры.(Ну а в ней пины!!!!)
Адрес выделенной памяти под структуру у тебя находится в переменной device_port, a данные ты пихаешь по адресу в локальной переменной port, который указывает непойми куда.

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

Добавлено: 20 июн 2015, 17:57
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;
По моему всё понятно, ну да ладно проверим!!!!!!

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

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

ЕДЕМ дальше!!!!!!!!!!!!!!!

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

Добавлено: 20 июн 2015, 18:55
Serg
На планшете неудобно - в понедельник посмотрю...
Похоже под сами пины память не выделена или с указателями напутано...

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

Добавлено: 20 июн 2015, 19:13
T00T
Я просто изначально за рыбу взял драйвер evoreg.
Поэтому особо не вдавался в подробности как передаётся указатель, а оказывается передаётся он не правильно.
Походу evoreg работать не будет :)

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

Добавлено: 06 сен 2015, 20:57
T00T
Такой вопрос какова разрядность выходных данных с EMC, для формирования PWM сигнала. Т.е. с какой точностью выставляется выходное задание для мотора.

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

Добавлено: 06 сен 2015, 21:11
Serg
Точность зависит от соотношения длины импульса/паузы PWM и длительности базового периода.

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

Добавлено: 06 сен 2015, 21:19
T00T
Да да, я про это и спрашиваю - это называется СКВАЖНОСТЬ сигнала. Я закладываю в свою железку этот параметр, и нужно знать с какой точностью выставляет чпушка Uзад(просто EMC уже выставляет задание с конечной точностью), ну и желательно в каком формате. Я вот прикинул, думаю 11-12bit достаточно. Хотя может и ошибаюсь.

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

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

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

Добавлено: 07 сен 2015, 00:02
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-регулятора).
Просто нужно определиться с разрядностью.....
Слишком низкая частота следования - увеличивает время нарастания сигнала в фнч, слишком малая длительность импульса - может на длинных проводах обрезаться....
Ну и так далее.

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

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

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

Добавлено: 07 сен 2015, 00:20
T00T
А что за пауза?
На сколько я понимаю мин -будет так :
пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Даже если 2 длительности импульса, то отношение 100 - это 7 бит(хотя длительность мин - 1us). :)

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

Добавлено: 07 сен 2015, 00:28
Serg
T00T писал(а):пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Не принципиаьно, можно и так считать, если забить на линейность типового преобразователя PWM-напряжение.

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

Добавлено: 07 сен 2015, 00:30
T00T
Ну преобразователь буду делать, как ФНЧ 2-го порядка

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

Добавлено: 07 сен 2015, 10:01
T00T
Ну так вопрос остался открытым какую разрядность выбрать для PWM - генератора?

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

Добавлено: 07 сен 2015, 10:16
Nick
Это вы говорите про pwm через lpt порт?
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.

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

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

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

Добавлено: 07 сен 2015, 14:52
T00T
Да не важно LPT или PCI или ещё что. Я думаю параметры будут такими: F=2 Кгц, tмин=250 ns ну и разрешение 11bit соответственно. 2 Кгц это не мало, вот вопрос какой.

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

Добавлено: 07 сен 2015, 18:02
Nick
T00T писал(а):2 Кгц это не мало, вот вопрос какой.
Не понял вопрос.

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