Guest User

Untitled

a guest
Aug 1st, 2015
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. # #######################################
  2. #
  3. # HAL file for HostMot2 with 3 steppers
  4. #
  5. # Derived from Ted Hyde's original hm2-servo config
  6. #
  7. # Based up work and discussion with Seb & Peter & Jeff
  8. # GNU license references - insert here. www.linuxcnc.org
  9. #
  10. #
  11. # ########################################
  12. # Firmware files are in /lib/firmware/hm2/7i43/
  13. # Must symlink the hostmot2 firmware directory of sanbox to
  14. # /lib/firmware before running EMC2...
  15. # sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
  16. #
  17. # See also:
  18. # <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
  19. # and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
  20. #
  21. # #####################################################################
  22.  
  23.  
  24. # ###################################
  25. # Core EMC/HAL Loads
  26. # ###################################
  27.  
  28. # kinematics
  29. loadrt trivkins
  30.  
  31. # motion controller, get name and thread periods from ini file
  32. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
  33.  
  34. # hostmot2 driver
  35. loadrt hostmot2
  36.  
  37. # load low-level driver
  38. loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)
  39.  
  40. #loadrt estop_latch
  41. setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 10000000
  42. #### external e-stop
  43.  
  44. # ################################################
  45. # THREADS
  46. # ################################################
  47.  
  48. addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
  49. addf motion-command-handler servo-thread
  50. addf motion-controller servo-thread
  51. # revel in the free time here from not having to run PID
  52. addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
  53. addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread
  54. #addf estop-latch.0 servo-thread
  55. # ######################################################
  56. # Axis-of-motion Specific Configs (not the GUI)
  57. # ######################################################
  58.  
  59.  
  60. # ################
  61. # X [0] Axis
  62. # ################
  63.  
  64. # axis enable chain
  65. newsig emcmot.00.enable bit
  66. sets emcmot.00.enable FALSE
  67.  
  68. net emcmot.00.enable <= axis.0.amp-enable-out
  69. net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable
  70.  
  71.  
  72. # position command and feedback
  73. net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd
  74. net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
  75.  
  76. net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
  77. net motor.00.pos-fb => axis.0.motor-pos-fb
  78.  
  79.  
  80. # timing parameters
  81. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
  82. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
  83.  
  84. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
  85. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
  86.  
  87. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]SCALE
  88.  
  89. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL
  90. setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC
  91.  
  92.  
  93.  
  94. # ################
  95. # Y [1] Axis
  96. # ################
  97.  
  98. # axis enable chain
  99. newsig emcmot.01.enable bit
  100. sets emcmot.01.enable FALSE
  101.  
  102. net emcmot.01.enable <= axis.1.amp-enable-out
  103. net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable
  104.  
  105.  
  106. # position command and feedback
  107. net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd
  108. net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd
  109.  
  110. net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
  111. net motor.01.pos-fb => axis.1.motor-pos-fb
  112.  
  113.  
  114. # timing parameters
  115. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
  116. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [AXIS_1]DIRHOLD
  117.  
  118. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [AXIS_1]STEPLEN
  119. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [AXIS_1]STEPSPACE
  120.  
  121. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [AXIS_1]SCALE
  122.  
  123. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL
  124. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC
  125.  
  126. setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
  127.  
  128.  
  129. # ################
  130. # Z [2] Axis
  131. # ################
  132.  
  133. # axis enable chain
  134. newsig emcmot.02.enable bit
  135. sets emcmot.02.enable FALSE
  136.  
  137. net emcmot.02.enable <= axis.2.amp-enable-out
  138. net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable
  139.  
  140.  
  141. # position command and feedback
  142. net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd
  143. net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd
  144.  
  145. net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb
  146. net motor.02.pos-fb => axis.2.motor-pos-fb
  147.  
  148.  
  149. # timing parameters
  150. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
  151. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [AXIS_2]DIRHOLD
  152.  
  153. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [AXIS_2]STEPLEN
  154. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [AXIS_2]STEPSPACE
  155.  
  156. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [AXIS_2]SCALE
  157.  
  158. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL
  159. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC
  160.  
  161. setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
  162.  
  163.  
  164. # setup stepgen 4 for chargepump use
  165. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.dirsetup 100
  166. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.dirhold 100
  167.  
  168. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.steplen 100
  169. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.stepspace 100
  170.  
  171. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.position-scale 10000
  172.  
  173. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.maxvel 0
  174. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.maxaccel 0
  175.  
  176. # quadrature step mode for square wave out
  177. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.step_type 2
  178.  
  179. # velocity mode
  180. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.control-type 1
  181.  
  182. # velocity command of 0.25 is 10KHz when scale is 10000 in quadrature mode
  183. setp hm2_[HOSTMOT2](BOARD).0.stepgen.04.velocity-cmd 0.25
  184.  
  185. # enable charge pump
  186. net emcmot.00.enable hm2_[HOSTMOT2](BOARD).0.stepgen.04.enable
  187.  
  188.  
  189.  
  190. # ##################################################
  191. # Standard I/O Block - EStop, Etc
  192. # ##################################################
  193.  
  194. #net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
  195. #net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
  196. #net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
  197. #net remote-estop estop-latch.0.fault-in <= hm2_25.0.gpio.003.in_not
  198.  
  199. # create a signal for the estop loopback
  200. #net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
  201. net estop-loop iocontrol.0.emc-enable-in <= hm2_[HOSTMOT2](BOARD).0.gpio.003.in_not
  202. #net estop-out iocontrol.0.user-enable-out
  203. #net estop-ext iocontrol.0.emc-enable-in <= hm2_[HOSTMOT2](BOARD).0.gpio.003.in
  204. #net estop-out <= iocontrol.0.user-enable-out
  205. #net estop-ext => iocontrol.0.emc-enable-in
  206.  
  207. # create signals for tool loading loopback
  208. net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
  209. net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
Advertisement
Add Comment
Please, Sign In to add comment