[Wiki]Обсуждение MESA 5i25 и 6i25 prob_rfx2 без опторазвязки
Добавлено: 03 июн 2014, 14:40
Эта тема создана для обсуждения статьи вики: Mesa 5i25 prob rfx2
Статьи, обзоры, цены на станки и комплектующие.
https://cnc-club.ru/forum/
Код: Выделить всё
ubuntu@ubuntu:~/Downloads/5i25/utils/linux$ sudo ./mesaflash --write ../../configs/hostmot2/5i25_prob_rfx2.bit --device 5I25
Checking file... OK
File type: BIT file
Design name: TopPCIHostMot2b.ncd;UserID=0xFFFFFFFF
Part name: 6slx9tqg144
Design date: 2013/10/22
Design time: 16:48:42
Config Length: 340884
Boot sector OK
EEPROM sectors to write: 5, max sectors in area: 8
Erasing EEPROM sectors starting from 0x80000...
|EEEEEE
Programming EEPROM area starting from 0x80000...
|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Board configuration updated successfullyКод: Выделить всё
ubuntu@ubuntu:~/Downloads/5i25/utils/linux$ halrun
halcmd: loadrt hostmot
<stdin>:1: Can't find module 'hostmot' in /usr/realtime-2.6.32-122-rtai/modules/linuxcnc
halcmd: loadrt hostmot2
halcmd: loadrt hm2_pci
halcmd: show pin hm2
Component Pins:
Owner Type Dir Value Name
5 s32 OUT 0 hm2_5i25.0.encoder.00.count
5 s32 OUT 0 hm2_5i25.0.encoder.00.count-latched
5 bit I/O FALSE hm2_5i25.0.encoder.00.index-enable
5 bit IN FALSE hm2_5i25.0.encoder.00.latch-enable
5 bit IN FALSE hm2_5i25.0.encoder.00.latch-polarity
5 float OUT 0 hm2_5i25.0.encoder.00.position
5 float OUT 0 hm2_5i25.0.encoder.00.position-latched
5 bit OUT FALSE hm2_5i25.0.encoder.00.quadrature-error
5 s32 OUT 0 hm2_5i25.0.encoder.00.rawcounts
5 s32 OUT 0 hm2_5i25.0.encoder.00.rawlatch
5 bit IN FALSE hm2_5i25.0.encoder.00.reset
5 float OUT 0 hm2_5i25.0.encoder.00.velocity
5 s32 OUT 0 hm2_5i25.0.encoder.01.count
5 s32 OUT 0 hm2_5i25.0.encoder.01.count-latched
5 bit I/O FALSE hm2_5i25.0.encoder.01.index-enable
5 bit IN FALSE hm2_5i25.0.encoder.01.latch-enable
5 bit IN FALSE hm2_5i25.0.encoder.01.latch-polarity
5 float OUT 0 hm2_5i25.0.encoder.01.position
5 float OUT 0 hm2_5i25.0.encoder.01.position-latched
5 bit OUT FALSE hm2_5i25.0.encoder.01.quadrature-error
5 s32 OUT 0 hm2_5i25.0.encoder.01.rawcounts
5 s32 OUT 0 hm2_5i25.0.encoder.01.rawlatch
5 bit IN FALSE hm2_5i25.0.encoder.01.reset
5 float OUT 0 hm2_5i25.0.encoder.01.velocity
5 bit OUT TRUE hm2_5i25.0.gpio.000.in
5 bit OUT FALSE hm2_5i25.0.gpio.000.in_not
5 bit IN FALSE hm2_5i25.0.gpio.000.out
5 bit OUT FALSE hm2_5i25.0.gpio.001.in
5 bit OUT TRUE hm2_5i25.0.gpio.001.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.002.in
5 bit OUT TRUE hm2_5i25.0.gpio.002.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.003.in
5 bit OUT FALSE hm2_5i25.0.gpio.003.in_not
5 bit IN FALSE hm2_5i25.0.gpio.003.out
5 bit OUT FALSE hm2_5i25.0.gpio.004.in
5 bit OUT TRUE hm2_5i25.0.gpio.004.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.005.in
5 bit OUT TRUE hm2_5i25.0.gpio.005.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.006.in
5 bit OUT TRUE hm2_5i25.0.gpio.006.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.007.in
5 bit OUT FALSE hm2_5i25.0.gpio.007.in_not
5 bit IN FALSE hm2_5i25.0.gpio.007.out
5 bit OUT FALSE hm2_5i25.0.gpio.008.in
5 bit OUT TRUE hm2_5i25.0.gpio.008.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.009.in
5 bit OUT TRUE hm2_5i25.0.gpio.009.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.010.in
5 bit OUT TRUE hm2_5i25.0.gpio.010.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.011.in
5 bit OUT TRUE hm2_5i25.0.gpio.011.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.012.in
5 bit OUT TRUE hm2_5i25.0.gpio.012.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.013.in
5 bit OUT FALSE hm2_5i25.0.gpio.013.in_not
5 bit IN FALSE hm2_5i25.0.gpio.013.out
5 bit OUT TRUE hm2_5i25.0.gpio.014.in
5 bit OUT FALSE hm2_5i25.0.gpio.014.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.015.in
5 bit OUT FALSE hm2_5i25.0.gpio.015.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.016.in
5 bit OUT FALSE hm2_5i25.0.gpio.016.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.017.in
5 bit OUT FALSE hm2_5i25.0.gpio.017.in_not
5 bit IN FALSE hm2_5i25.0.gpio.017.out
5 bit OUT FALSE hm2_5i25.0.gpio.018.in
5 bit OUT TRUE hm2_5i25.0.gpio.018.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.019.in
5 bit OUT TRUE hm2_5i25.0.gpio.019.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.020.in
5 bit OUT FALSE hm2_5i25.0.gpio.020.in_not
5 bit IN FALSE hm2_5i25.0.gpio.020.out
5 bit OUT FALSE hm2_5i25.0.gpio.021.in
5 bit OUT TRUE hm2_5i25.0.gpio.021.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.022.in
5 bit OUT TRUE hm2_5i25.0.gpio.022.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.023.in
5 bit OUT TRUE hm2_5i25.0.gpio.023.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.024.in
5 bit OUT FALSE hm2_5i25.0.gpio.024.in_not
5 bit IN FALSE hm2_5i25.0.gpio.024.out
5 bit OUT FALSE hm2_5i25.0.gpio.025.in
5 bit OUT TRUE hm2_5i25.0.gpio.025.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.026.in
5 bit OUT TRUE hm2_5i25.0.gpio.026.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.027.in
5 bit OUT TRUE hm2_5i25.0.gpio.027.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.028.in
5 bit OUT TRUE hm2_5i25.0.gpio.028.in_not
5 bit OUT FALSE hm2_5i25.0.gpio.029.in
5 bit OUT TRUE hm2_5i25.0.gpio.029.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.030.in
5 bit OUT FALSE hm2_5i25.0.gpio.030.in_not
5 bit IN FALSE hm2_5i25.0.gpio.030.out
5 bit OUT TRUE hm2_5i25.0.gpio.031.in
5 bit OUT FALSE hm2_5i25.0.gpio.031.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.032.in
5 bit OUT FALSE hm2_5i25.0.gpio.032.in_not
5 bit OUT TRUE hm2_5i25.0.gpio.033.in
5 bit OUT FALSE hm2_5i25.0.gpio.033.in_not
5 bit IN FALSE hm2_5i25.0.led.CR01
5 bit IN FALSE hm2_5i25.0.led.CR02
5 bit IN FALSE hm2_5i25.0.pwmgen.00.enable
5 float IN 0 hm2_5i25.0.pwmgen.00.value
5 bit IN FALSE hm2_5i25.0.pwmgen.01.enable
5 float IN 0 hm2_5i25.0.pwmgen.01.value
5 bit IN FALSE hm2_5i25.0.stepgen.00.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.00.counts
5 float OUT 0 hm2_5i25.0.stepgen.00.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.00.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.00.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.00.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.00.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.00.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.00.enable
5 float IN 0 hm2_5i25.0.stepgen.00.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.00.position-fb
5 float IN 0 hm2_5i25.0.stepgen.00.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.00.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.01.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.01.counts
5 float OUT 0 hm2_5i25.0.stepgen.01.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.01.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.01.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.01.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.01.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.01.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.01.enable
5 float IN 0 hm2_5i25.0.stepgen.01.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.01.position-fb
5 float IN 0 hm2_5i25.0.stepgen.01.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.01.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.02.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.02.counts
5 float OUT 0 hm2_5i25.0.stepgen.02.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.02.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.02.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.02.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.02.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.02.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.02.enable
5 float IN 0 hm2_5i25.0.stepgen.02.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.02.position-fb
5 float IN 0 hm2_5i25.0.stepgen.02.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.02.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.03.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.03.counts
5 float OUT 0 hm2_5i25.0.stepgen.03.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.03.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.03.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.03.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.03.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.03.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.03.enable
5 float IN 0 hm2_5i25.0.stepgen.03.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.03.position-fb
5 float IN 0 hm2_5i25.0.stepgen.03.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.03.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.04.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.04.counts
5 float OUT 0 hm2_5i25.0.stepgen.04.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.04.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.04.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.04.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.04.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.04.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.04.enable
5 float IN 0 hm2_5i25.0.stepgen.04.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.04.position-fb
5 float IN 0 hm2_5i25.0.stepgen.04.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.04.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.05.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.05.counts
5 float OUT 0 hm2_5i25.0.stepgen.05.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.05.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.05.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.05.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.05.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.05.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.05.enable
5 float IN 0 hm2_5i25.0.stepgen.05.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.05.position-fb
5 float IN 0 hm2_5i25.0.stepgen.05.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.05.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.06.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.06.counts
5 float OUT 0 hm2_5i25.0.stepgen.06.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.06.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.06.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.06.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.06.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.06.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.06.enable
5 float IN 0 hm2_5i25.0.stepgen.06.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.06.position-fb
5 float IN 0 hm2_5i25.0.stepgen.06.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.06.velocity-fb
5 bit IN FALSE hm2_5i25.0.stepgen.07.control-type
5 s32 OUT 0 hm2_5i25.0.stepgen.07.counts
5 float OUT 0 hm2_5i25.0.stepgen.07.dbg_err_at_match
5 float OUT 0 hm2_5i25.0.stepgen.07.dbg_ff_vel
5 float OUT 0 hm2_5i25.0.stepgen.07.dbg_pos_minus_prev_
5 float OUT 0 hm2_5i25.0.stepgen.07.dbg_s_to_match
5 s32 OUT 0 hm2_5i25.0.stepgen.07.dbg_step_rate
5 float OUT 0 hm2_5i25.0.stepgen.07.dbg_vel_error
5 bit IN FALSE hm2_5i25.0.stepgen.07.enable
5 float IN 0 hm2_5i25.0.stepgen.07.position-cmd
5 float OUT 0 hm2_5i25.0.stepgen.07.position-fb
5 float IN 0 hm2_5i25.0.stepgen.07.velocity-cmd
5 float OUT 0 hm2_5i25.0.stepgen.07.velocity-fb
5 bit I/O FALSE hm2_5i25.0.watchdog.has_bit
Всё, лишнее исчезло.Nick писал(а):по хорошему они должны были исчезнуть...
Ничего не будет. Для выводов, которые используются (Step, Dir, энкодер и т.п.) отсутствуют соотв. gpio.out, ибо выходы детям - не игрушка!Nick писал(а):надо попробовать посмотерть, что будет на выходе с платы если переключать эти GPIO напрямую или через stepgen...
Код: Выделить всё
net a => hm2_5i25.0.gpio.002.out
net a <= [все что угодно bit]
Код: Выделить всё
setp hm2_5i25.0.gpio.002.out 1Код: Выделить всё
halcmd show pin hm2_5i25.0.gpio.002.outВсё правильно - i/o20 не задействован ни под stepgen, ни под энкодер и т.п., поэтому его можно использовать как выход.Nick писал(а):там вверху вывод ( 5 bit IN FALSE hm2_5i25.0.gpio.020.out)
Это зря. Это не надо.torvn77 писал(а):Попробовал перевести пины в GPIO,для чего на каждый из 33 пинов определил параметры:
setp hm2_5i25.0.gpio.000.invert_output false и setp hm2_5i25.0.gpio.000.is_opendrain false для всех пинов одинаково,
hm2_5i25.0.gpio.000.is_output для исходящих пинов true и false для вхолдных.
torvn77 писал(а):но станок не ездит...
Вот эти два утверждения противоречат друг другу.torvn77 писал(а):Станок в целом перемещается но как то медленно,такое впечатление что он случайно реагирует на отдельные импульсы.
Про charge-pump в конфиге ничего не нашел. Может поэтому он и работает рывками? Если есть charge-pump на плате, то его надо настроить и в linuxcnctorvn77 писал(а):как подтверждение осущения случайного срабатывания станок не включается по charge_pump,приходится на тот же пин подавать сигнал enabled,
от которого станок включается нормально.(Тумблер на плате пурилогика я переключать не забываю)
А в чем проблема его в первой строчке написать?torvn77 писал(а):И ещё я столкнулься вот с какой проблемой,как я понял создать потоки в конфиге можно только один раз,
тоесть если вызвал motmod,то использовать threads уже нельзя.
Код: Выделить всё
loadrt charge_pump
net estop-out => charge-pump.enable
net charge-pump <= charge-pump.out
addf charge-pump base-threadКод: Выделить всё
#net charge-pump => hm2_5i25.0.gpio.000.out
net estop-out => hm2_5i25.0.gpio.000.outЭт в каком файле?torvn77 писал(а):Как так charge_pump нет в конфиге?!
Можно в качестве charge-pump попрорбовать использовать siggen или один stepgen в mesa.torvn77 писал(а):А так я хочу сделать отдельный поток для точного задания частоты чаргепумпа.
Своего то параметра задания частоты у него то нет.
Вот тут может крыться ошибка - получается, что charge-pump обнавляется раз в base-thread, выходы месы обновляются раз в servo-thread, что в 50 раз медленнее, поэтому не все импульсы могут доходить до контроллера.torvn77 писал(а):loadrt charge_pump
net estop-out => charge-pump.enable
net charge-pump <= charge-pump.out
addf charge-pump base-thread
Все в корне не правильно!....
net ystep => hm2_5i25.0.gpio.004.out
net ydir => hm2_5i25.0.gpio.010.out
...
Код: Выделить всё
#*******************
# AXIS X
#*******************
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.04.dirsetup [AXIS_0]DIRSETUP
setp hm2_5i25.0.stepgen.04.dirhold [AXIS_0]DIRHOLD
setp hm2_5i25.0.stepgen.04.steplen [AXIS_0]STEPLEN
setp hm2_5i25.0.stepgen.04.stepspace [AXIS_0]STEPSPACE
setp hm2_5i25.0.stepgen.04.position-scale [AXIS_0]STEP_SCALE
setp hm2_5i25.0.stepgen.04.step_type 0
setp hm2_5i25.0.stepgen.04.control-type 0
setp hm2_5i25.0.stepgen.04.maxaccel 2.5
setp hm2_5i25.0.stepgen.04.maxvel 2.1
net x-pos-fb axis.0.motor-pos-fb <= hm2_5i25.0.stepgen.04.position-fb
net x-pos-cmd axis.0.motor-pos-cmd => hm2_5i25.0.stepgen.04.position-cmd
net x-enable axis.0.amp-enable-out => hm2_5i25.0.stepgen.04.enable1кГц - по умолчанию, теоритически должно работать и на 10кГц, но я не пробовал. Плюс стабильность частоты будет под большим вопросом!torvn77 писал(а):На какой частоте в принципе можно обновлять месовские пины в GPIO?
Не уверен, что это вообще возможно!torvn77 писал(а):)запусть MESA в GPIO с разводкой от пурилогика и без переходника на геско и добиться хоть какой то правильной работы.
Код: Выделить всё
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt threads name1=charge-pump period1=992000
Debug file information:
Can not find -sec MOT -var MOT -num 1
Can not find -sec IO -var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/threads.ko': -1 Operation not permitted
Devel_subroutine_Purelogic_PLC4x-G2.hal:6: exit value: 1
Devel_subroutine_Purelogic_PLC4x-G2.hal:6: insmod failed, returned -1
See the output of 'dmesg' for more information.
8330
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components