observation on hal_arm335xQEP component

27 views
Skip to first unread message

jgnoss

unread,
Jan 30, 2020, 8:56:52 PM1/30/20
to Machinekit


I observed some strange behavior on the hal_arm335xQEP component.

If I boot the bbb the hal_arm335xQEP won't load.
I do config-pin by cli as well as loading the components in halrun by hand

cat ./epconfig.sh
#!/bin/bash
/usr/bin/config-pin P9.27 qep
/usr/bin/config-pin P9.91 qep
/usr/bin/config-pin P9.92 qep


machinekit@beaglebone:~/machinekit/configs/qep_bug$ ./epshow.sh
P9_27 Mode: default Direction: in Value: 0
P9_91 Mode: default Direction: in Value: 1
P9_92 Mode: default Direction: in Value: 0
machinekit@beaglebone:~/machinekit/configs/qep_bug$ ./epconfig.sh
machinekit@beaglebone:~/machinekit/configs/qep_bug$ ./epshow.sh
P9_27 Mode: qep
P9_91 Mode: qep
P9_92 Mode: qep
machinekit@beaglebone:~/machinekit/configs/qep_bug$ halrun -I
msgd:0 stopped
rtapi:0 stopped
rtapi_msgd command:  /usr/libexec/linuxcnc/rtapi_msgd --instance=0 --rtmsglevel=1 --usrmsglevel=1 --debug=1 --halsize=524288
rtapi_app command:  /usr/libexec/linuxcnc/rtapi_app_rt-preempt --instance=0 --debug=1
halcmd: loadusr -w ./setup.sh
Waiting for /sys/class/uio/uio0 OK
halcmd: loadrt hal_arm335xQEP encoders=eQEP0
<stdin>:2: insmod failed, returned -1:
rtapi_rpc(): reply timeout
halcmd: quit

So I have a look at the encoder

machinekit@beaglebone:~/machinekit/configs/qep_bug$ cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
0

turn the encoder shaft a few times and look again

machinekit@beaglebone:~/machinekit/configs/qep_bug$ cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
-416
machinekit@beaglebone:~/machinekit/configs/qep_bug$ cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
1665
machinekit@beaglebone:~/machinekit/configs/qep_bug$ cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
-2125
machinekit@beaglebone:~/machinekit/configs/qep_bug$ cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
-2125

perfect

back to halrun, now the component loads and runs flawless

machinekit@beaglebone:~/machinekit/configs/qep_bug$ halrun -I
msgd:0 stopped
rtapi:0 stopped
rtapi_msgd command:  /usr/libexec/linuxcnc/rtapi_msgd --instance=0 --rtmsglevel=1 --usrmsglevel=1 --debug=1 --halsize=524288
rtapi_app command:  /usr/libexec/linuxcnc/rtapi_app_rt-preempt --instance=0 --debug=1
halcmd: loadusr -w ./setup.sh
Waiting for /sys/class/uio/uio0 OK
halcmd: loadrt hal_arm335xQEP encoders=eQEP0
halcmd: show pin
Component Pins:
  Comp   Inst Type  Dir         Value  Name                                            Epsilon Flags  linked to:
    78        s32   OUT             0  eQEP0.capture-dir-changes                       --l-
    78        s32   OUT             0  eQEP0.capture-overflows                         --l-
    78        s32   OUT             0  eQEP0.capture-period                            --l-
    78        u32   IN     0x00000000  eQEP0.capture-prescaler                         --l-
    78        s32   IN            100  eQEP0.capture-threshold                         --l-
    78        bit   I/O         FALSE  eQEP0.counter-mode                              --l-
    78        s32   I/O             0  eQEP0.counts                                    --l-
    78        bit   I/O         FALSE  eQEP0.index-enable                              --l-
    78        bit   I/O         FALSE  eQEP0.invert-A                                  --l-
    78        bit   I/O         FALSE  eQEP0.invert-B                                  --l-
    78        bit   I/O         FALSE  eQEP0.invert-Z                                  --l-
    78        float IN              1  eQEP0.min-speed-estimate                    0.000010    --l-
    78        s32   OUT             0  eQEP0.phase-errors                              --l-
    78        float OUT             0  eQEP0.position                              0.000010    --l-
    78        float OUT             0  eQEP0.position-interpolated                 0.000010    --l-
    78        float I/O             1  eQEP0.position-scale                        0.000010    --l-
    78        s32   OUT             0  eQEP0.rawcounts                                 --l-
    78        bit   I/O         FALSE  eQEP0.reset                                     --l-
    78        float OUT             0  eQEP0.velocity                              0.000010    --l-
    78        bit   I/O         FALSE  eQEP0.x2-mode                                   --l-
    78        s32   OUT             0  eqep.update.time                                ----
    78        s32   I/O             0  eqep.update.tmax                                ----
    78        bit   OUT         FALSE  eqep.update.tmax-inc                            ----

halcmd: quit

Strange observation 2 same case:
I have to do the
cat /sys/devices/platform/ocp/48300000.epwmss/48300180.position
on the same terminal as I run halrun
If I do the cat from another terminal, the component will fail to load.

Anybody any idea?

Ju

Reply all
Reply to author
Forward
0 new messages