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

More
9 years 7 months ago #90548 by jCandlish
How does one configure hm2dpll for encoders?
Code:
# 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:
Code:
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
9 years 7 months ago - 9 years 7 months ago #90564 by PCW
What configuration are you using?
( and how many encoders have you enabled )
Last edit: 9 years 7 months ago by PCW.

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

More
9 years 7 months ago - 9 years 7 months ago #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: 9 years 7 months ago by jCandlish. Reason: added

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

More
9 years 7 months ago - 9 years 7 months ago #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: 9 years 7 months ago by PCW.
The following user(s) said Thank You: jCandlish

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

More
9 years 7 months ago #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
9 years 7 months ago #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.

Moderators: PCW, jmelson
Time to create page: 0.104 seconds
Powered by Kunena Forum