PCI контроллер. Halcompail и драйвер.
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
nkp, осталось 5 сообщений, надо добивать (((5555)))
Я не волшебник я пока учусь......
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Halcompail и драйвер.
Адрес выделенной памяти под структуру у тебя находится в переменной device_port, a данные ты пихаешь по адресу в локальной переменной port, который указывает непойми куда.T00T писал(а):Тут место под структуру выделяю, и передаю значение в указатель структуры.(Ну а в ней пины!!!!)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
думаю это стоит проверить.
Но вообще если почитать документацию - там вот что написано :
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;
По моему всё понятно, ну да ладно проверим!!!!!!
Но вообще если почитать документацию - там вот что написано :
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;
По моему всё понятно, ну да ладно проверим!!!!!!
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
В общем косяк здесь.
Решено, не правильно передавался в функцию указатель на структуру!!!!!!!
UAVpilot - спасибо за помощь и терпение .
ЕДЕМ дальше!!!!!!!!!!!!!!!
Решено, не правильно передавался в функцию указатель на структуру!!!!!!!
UAVpilot - спасибо за помощь и терпение .
ЕДЕМ дальше!!!!!!!!!!!!!!!
Последний раз редактировалось T00T 20 июн 2015, 19:07, всего редактировалось 1 раз.
Я не волшебник я пока учусь......
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Halcompail и драйвер.
На планшете неудобно - в понедельник посмотрю...
Похоже под сами пины память не выделена или с указателями напутано...
Похоже под сами пины память не выделена или с указателями напутано...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Я просто изначально за рыбу взял драйвер evoreg.
Поэтому особо не вдавался в подробности как передаётся указатель, а оказывается передаётся он не правильно.
Походу evoreg работать не будет
Поэтому особо не вдавался в подробности как передаётся указатель, а оказывается передаётся он не правильно.
Походу evoreg работать не будет
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Такой вопрос какова разрядность выходных данных с EMC, для формирования PWM сигнала. Т.е. с какой точностью выставляется выходное задание для мотора.
Я не волшебник я пока учусь......
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Halcompail и драйвер.
Точность зависит от соотношения длины импульса/паузы PWM и длительности базового периода.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Да да, я про это и спрашиваю - это называется СКВАЖНОСТЬ сигнала. Я закладываю в свою железку этот параметр, и нужно знать с какой точностью выставляет чпушка Uзад(просто EMC уже выставляет задание с конечной точностью), ну и желательно в каком формате. Я вот прикинул, думаю 11-12bit достаточно. Хотя может и ошибаюсь.
Я не волшебник я пока учусь......
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Halcompail и драйвер.
Такое определение не подходит. Например в случае базового периода равного 1us для PWM с частотой 5кГц дискретность получится 1%, т.е. 6 бит, а для сигнала с частотой 50кГц дискретность будет уже 10%, т.е. 4 бита.T00T писал(а):11-12bit достаточно
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Да кстати..UAVpilot писал(а):Такое определение не подходит. Например в случае базового периода равного 1us для PWM с частотой 5кГц дискретность получится 1%, т.е. 6 бит, а для сигнала с частотой 50кГц дискретность будет уже 10%, т.е. 4 бита.T00T писал(а):11-12bit достаточно
период 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 и драйвер.
На один период PWM как минимум израсходуется два базовых периода - один на импульс, второй на паузу.T00T писал(а): период 5кГц -есть 200us, и если длит. базового периода 1us то отношение равно 200 - а это как понимаешь 8БИТ, а не 6. Ну и во втором случае 5 бит.
Частота PWM (а следовательно длительность импульсов, а следовательно и дискретность скважности) ограничена сверху базовым периодом, а снизу разрядностью float (т.е. фактически ничем)...T00T писал(а): Но реально на практике оно ограниченно техническими возможностями ну или целесообразностью. Какая разрядность будет достаточной вот вопрос? И скорее всего разрешение на выходе ЧПУ тоже ограничена 10,11,12,16, ну или каким нибудь другим числом.
Таким образом вопрос переадресовывается к разрешающей способности привода.T00T писал(а):Какая разрядность будет достаточной вот вопрос?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
А что за пауза?
На сколько я понимаю мин -будет так :
пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Даже если 2 длительности импульса, то отношение 100 - это 7 бит(хотя длительность мин - 1us).
На сколько я понимаю мин -будет так :
пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Даже если 2 длительности импульса, то отношение 100 - это 7 бит(хотя длительность мин - 1us).
Я не волшебник я пока учусь......
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Halcompail и драйвер.
Не принципиаьно, можно и так считать, если забить на линейность типового преобразователя PWM-напряжение.T00T писал(а):пошёл передний фронт, и через 1us - задний фронт импульса. Следующий передний фронт через 199us.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Ну преобразователь буду делать, как ФНЧ 2-го порядка
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Ну так вопрос остался открытым какую разрядность выбрать для PWM - генератора?
Я не волшебник я пока учусь......
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Halcompail и драйвер.
Это вы говорите про pwm через lpt порт?
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Halcompail и драйвер.
При заявленной скважности (разрешении)
получится ооочень неторопливый ШИМ. При базовой частоте, например, 30 кГц выходная частота будет 15-30Гц. Если мы сглаживаем ШИМ ФНЧ 2 порядка (спад 12 дБ/октава) то для получения приемлемых пульсаций 0,1% (а иначе зачем такое разрешение?) сигнал на выходе фильтра будет изменяться с частотой в десятые-сотые доли герца. Если для данной задачи это приемлемо - то вперед.T00T писал(а):думаю 11-12bit достаточно
Это вариант.Nick писал(а):Это вы говорите про pwm через lpt порт?
На своей железке можно сделать pwm с любой разрядностью, передаем ей float раз в servo-thread, а она уже долбит.
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: Halcompail и драйвер.
Да не важно LPT или PCI или ещё что. Я думаю параметры будут такими: F=2 Кгц, tмин=250 ns ну и разрешение 11bit соответственно. 2 Кгц это не мало, вот вопрос какой.
Я не волшебник я пока учусь......
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Halcompail и драйвер.
Не понял вопрос.T00T писал(а):2 Кгц это не мало, вот вопрос какой.
Не будет ли слишком мало 2кГц для твоего сигнала?