hm2dpll, pin hm2_XiXX.N.encoder.MM.timer-num does not exist.

More
30 Mar 2017 06:20 #90548 by jCandlish
How does one configure hm2dpll for encoders?
# phase lock loop 
setp hm2_7i80.0.dpll.01.timer-us -100
setp hm2_7i80.0.stepgen.timer-number 1
setp hm2_7i80.0.encoder.08.timer-num 1

This hal fragment is throwing the error:
parameter or pin 'hm2_7i80.0.encoder.08.timer-num' not found

Is this maybe not working for muxed encoders?

Please Log in or Create an account to join the conversation.

More
30 Mar 2017 13:19 - 30 Mar 2017 13:29 #90564 by PCW
What configuration are you using?
( and how many encoders have you enabled )
Last edit: 30 Mar 2017 13:29 by PCW.

Please Log in or Create an account to join the conversation.

More
30 Mar 2017 14:36 - 30 Mar 2017 14:43 #90565 by jCandlish
loadrt threads name1=servo-thread period1=1000000
loadrt pid num_chan=1

loadrt hostmot2
loadrt hm2_eth board_ip="10.100.10.100" config="firmware=hm2/7i80hd16/5xST_3xENC_2xSS_6xSV.BIT num_encoders=12 num_pwmgens=0 num_stepgens=5 sserial_port_0=00000000"

setp hm2_7i80.0.watchdog.timeout_ns 10000000

# phase lock loop
setp hm2_7i80.0.dpll.01.timer-us -100
setp hm2_7i80.0.stepgen.timer-number 1
#setp hm2_7i80.0.encoder.08.timer-num 1
#setp hm2_7i80.0.encoder.08.timer-num 1
#setp hm2_7i80.0.encoder.10.timer-num 1

...


latheoperator@125cnc:~/linuxcnc/tuning$ halrun
halcmd:
halcmd: loadrt hostmot2
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
halcmd: loadrt hm2_eth board_ip="10.100.10.100" config="firmware=hm2/7i80hd16/5xST_3xENC_2xSS_6xSV.BIT num_encoders=12 num_pwmgens=0 num_stepgens=5 sserial_port_0=00000000"
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 10.100.10.100: Hardware address: 00:60:1b:11:00:92
hm2_eth: discovered 7I80HD-16
hm2/hm2_7i80.0: Smart Serial Firmware Version 43
Board hm2_7i80.0.7i84.0.0 Hardware Mode 0 = standard
Board hm2_7i80.0.7i84.0.0 Software Mode 0 = input_output
Board hm2_7i80.0.7i84.0.0 Software Mode 1 = io_analog_fieldvoltage
Board hm2_7i80.0.7i84.0.0 Software Mode 2 = io_encoder_analog
Board hm2_7i80.0.7i73.0.1 Hardware Mode 0 = nokeyboardnodisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoder
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalog
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalog
Board hm2_7i80.0.7i73.0.1 Hardware Mode 1 = nokeyboarddisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoderdisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalogdisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalogwidedisplay
Board hm2_7i80.0.7i73.0.1 Hardware Mode 2 = keyboard4by8nodisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoderkeycode4by8
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalogkeycode4by8
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalogkeycode4by8
Board hm2_7i80.0.7i73.0.1 Hardware Mode 3 = keyboard4by8display
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoderdisplaykeycode4by8
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalogdisplaykeycode4by8
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalogwidedisplaykeycode4by8
Board hm2_7i80.0.7i73.0.1 Hardware Mode 4 = keyboard8by8nodisplay
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoderkeycode8by8
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalogkeycode8by8
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalogkeycode8by8
Board hm2_7i80.0.7i73.0.1 Hardware Mode 5 = keyboard8by8display
Board hm2_7i80.0.7i73.0.1 Software Mode 0 = inputoutputencoderdisplaykeycode8by8
Board hm2_7i80.0.7i73.0.1 Software Mode 1 = inputoutputencoderanalogdisplaykeycode8by8
Board hm2_7i80.0.7i73.0.1 Software Mode 2 = inputoutputencoderanalogwidedisplaykeycode8by8
hm2/hm2_7i80.0: 72 I/O Pins used:
hm2/hm2_7i80.0: IO Pin 000 (P1-01): IOPort
hm2/hm2_7i80.0: IO Pin 001 (P1-03): Muxed Encoder #0, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 002 (P1-05): Muxed Encoder #0, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 003 (P1-07): Muxed Encoder #0, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 004 (P1-09): Muxed Encoder #1, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 005 (P1-11): Muxed Encoder #1, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 006 (P1-13): Muxed Encoder #1, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 007 (P1-15): Muxed Encoder #2, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 008 (P1-17): Muxed Encoder #2, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 009 (P1-19): Muxed Encoder #2, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 010 (P1-21): Muxed Encoder Select #0, pin Mux Select 0 (Output)
hm2/hm2_7i80.0: IO Pin 011 (P1-23): IOPort
hm2/hm2_7i80.0: IO Pin 012 (P1-25): IOPort
hm2/hm2_7i80.0: IO Pin 013 (P1-27): IOPort
hm2/hm2_7i80.0: IO Pin 014 (P1-29): IOPort
hm2/hm2_7i80.0: IO Pin 015 (P1-31): IOPort
hm2/hm2_7i80.0: IO Pin 016 (P1-33): IOPort
hm2/hm2_7i80.0: IO Pin 017 (P1-35): IOPort
hm2/hm2_7i80.0: IO Pin 018 (P1-37): IOPort
hm2/hm2_7i80.0: IO Pin 019 (P1-39): IOPort
hm2/hm2_7i80.0: IO Pin 020 (P1-41): IOPort
hm2/hm2_7i80.0: IO Pin 021 (P1-43): IOPort
hm2/hm2_7i80.0: IO Pin 022 (P1-45): IOPort
hm2/hm2_7i80.0: IO Pin 023 (P1-47): IOPort
hm2/hm2_7i80.0: IO Pin 024 (P2-01): StepGen #1, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 025 (P2-03): StepGen #1, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 026 (P2-05): StepGen #2, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 027 (P2-07): StepGen #2, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 028 (P2-09): Smart Serial Interface #0, pin RxData0 (Input)
hm2/hm2_7i80.0: IO Pin 029 (P2-11): Muxed Encoder #4, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 030 (P2-13): Smart Serial Interface #0, pin RxData1 (Input)
hm2/hm2_7i80.0: IO Pin 031 (P2-15): Muxed Encoder #4, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 032 (P2-17): IOPort
hm2/hm2_7i80.0: IO Pin 033 (P2-19): Muxed Encoder #4, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 034 (P2-21): Muxed Encoder #3, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 035 (P2-23): Muxed Encoder #5, pin Muxed A (Input)
hm2/hm2_7i80.0: IO Pin 036 (P2-25): Muxed Encoder #3, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 037 (P2-27): Muxed Encoder #5, pin Muxed B (Input)
hm2/hm2_7i80.0: IO Pin 038 (P2-29): Muxed Encoder #3, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 039 (P2-31): Muxed Encoder #5, pin Muxed Index (Input)
hm2/hm2_7i80.0: IO Pin 040 (P2-33): StepGen #3, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 041 (P2-35): StepGen #3, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 042 (P2-37): StepGen #4, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 043 (P2-39): StepGen #4, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 044 (P2-41): Smart Serial Interface #0, pin TxData0 (Output)
hm2/hm2_7i80.0: IO Pin 045 (P2-43): Smart Serial Interface #0, pin TxData1 (Output)
hm2/hm2_7i80.0: IO Pin 046 (P2-45): StepGen #0, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 047 (P2-47): StepGen #0, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 048 (P3-01): IOPort
hm2/hm2_7i80.0: IO Pin 049 (P3-03): IOPort
hm2/hm2_7i80.0: IO Pin 050 (P3-05): IOPort
hm2/hm2_7i80.0: IO Pin 051 (P3-07): IOPort
hm2/hm2_7i80.0: IO Pin 052 (P3-09): IOPort
hm2/hm2_7i80.0: IO Pin 053 (P3-11): IOPort
hm2/hm2_7i80.0: IO Pin 054 (P3-13): IOPort
hm2/hm2_7i80.0: IO Pin 055 (P3-15): IOPort
hm2/hm2_7i80.0: IO Pin 056 (P3-17): IOPort
hm2/hm2_7i80.0: IO Pin 057 (P3-19): IOPort
hm2/hm2_7i80.0: IO Pin 058 (P3-21): IOPort
hm2/hm2_7i80.0: IO Pin 059 (P3-23): IOPort
hm2/hm2_7i80.0: IO Pin 060 (P3-25): IOPort
hm2/hm2_7i80.0: IO Pin 061 (P3-27): IOPort
hm2/hm2_7i80.0: IO Pin 062 (P3-29): IOPort
hm2/hm2_7i80.0: IO Pin 063 (P3-31): IOPort
hm2/hm2_7i80.0: IO Pin 064 (P3-33): IOPort
hm2/hm2_7i80.0: IO Pin 065 (P3-35): IOPort
hm2/hm2_7i80.0: IO Pin 066 (P3-37): IOPort
hm2/hm2_7i80.0: IO Pin 067 (P3-39): IOPort
hm2/hm2_7i80.0: IO Pin 068 (P3-41): IOPort
hm2/hm2_7i80.0: IO Pin 069 (P3-43): IOPort
hm2/hm2_7i80.0: IO Pin 070 (P3-45): IOPort
hm2/hm2_7i80.0: IO Pin 071 (P3-47): IOPort
hm2/hm2_7i80.0: registered

halcmd:
Last edit: 30 Mar 2017 14:43 by jCandlish. Reason: added

Please Log in or Create an account to join the conversation.

More
30 Mar 2017 14:54 - 30 Mar 2017 15:46 #90566 by PCW
OK there does seem to be a bug in the encoder DPLL setup
I think its possibly a firmware bug, I will look into it

Note that the proper pin would be:

hm2_7i80.0.encoder.timer-number


EDIT:
it looks like most 7i80 bitfiles were made before encoder timestamps were added to the firmware
so they likely need to be built from source to get encoder timestamps working

pcw@pcw-G41M-Combo:~/linuxcnc/configs$ halcmd show pin hm2_7i76e.0.encoder.timer-number
Component Pins:
Owner Type Dir Value Name
23 s32 IN -1 hm2_7i76e.0.encoder.timer-number

(I had to rebuild the bitfile to get this)
Last edit: 30 Mar 2017 15:46 by PCW.
The following user(s) said Thank You: jCandlish

Please Log in or Create an account to join the conversation.

More
30 Mar 2017 16:00 #90575 by jCandlish
I am building from source.

A git clone of master from github.com/LinuxCNC/hostmot2-firmware

Please Log in or Create an account to join the conversation.

More
30 Mar 2017 16:03 #90576 by PCW
Thats at least a year or two out of date
i would fetch the source from Mesa and re-build

Please Log in or Create an account to join the conversation.

More
31 Mar 2017 05:27 #90626 by jCandlish

i would fetch the source from Mesa


How?

Please Log in or Create an account to join the conversation.

More
31 Mar 2017 13:32 #90641 by PCW
Download the 7i80.zip file from Mesa
The complete hm2 source is in configs/hostmot2/source

Please Log in or Create an account to join the conversation.

More
01 Apr 2017 06:00 - 01 Apr 2017 06:05 #90677 by jCandlish
Hmm...

Somehow the zipfile is incomplete.

Replacing the 'src' directory of the git clone (where there is a makefile for building a debian package) with the 'configs/hostmot2/source' directory from 7i80.zip ends with:
/usr/bin/make  -j --jobserver-fds=3,4
make[1]: Entering directory '/home/installer/Dev/hostmot2-from-github/hostmot2-firmware'
scripts/firmwares.py firmwares.txt > fw/firmwares.mk.tmp
mv -f fw/firmwares.mk.tmp fw/firmwares.mk
make[1]: *** No rule to make target 'src/d8o8.vhd', needed by 'fw/7i80hd16/SVST8_4.BIT'.  Stop.
make[1]: Leaving directory '/home/installer/Dev/hostmot2-from-github/hostmot2-firmware'
debian/rules:5: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

I am at a loss to know how to correctly modify the makefile containing:
find . -type f -exec grep -nH -e d8o8.vhd {} +
./scripts/build.py:49:    'd8o8.vhd',
./Makefile:12:    PinExists.vhd CountPinsInRange.vhd d8o8.vhd dpll.vhd hostmotid.vhd \

Which new vhd file takes the place of the missing d8o8.vhd ?
Last edit: 01 Apr 2017 06:05 by jCandlish. Reason: clarity

Please Log in or Create an account to join the conversation.

More
01 Apr 2017 11:37 #90690 by PCW
You could extract the current source list from the appropriate project file (or just use the project file as is)

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.629 seconds
Powered by Kunena Forum