summaryrefslogtreecommitdiff
path: root/configs/by_interface/pico/univpwm/univpwm_motion.hal
blob: 0f8137ad91c1fbf196da10607fd498c75fb13d55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# HAL config file for Pico Systems UPC board
#

# set the PWM frequency to suit Pico's PWM amps (50KHz)
# users with other amps may need to change this
setp ppmc.0.pwm.00-03.freq 50000
# turn on bootstrapping for the MOSFET drivers
# this also depends on the amplifiers
setp ppmc.0.pwm.00.bootstrap TRUE
setp ppmc.0.pwm.01.bootstrap TRUE
setp ppmc.0.pwm.02.bootstrap TRUE
setp ppmc.0.pwm.03.bootstrap TRUE
# set max duty cycle to 95% for the MOSFET drives
# at 50KHz this corresponds to 1 us
setp ppmc.0.pwm.00.max-dc 0.95
setp ppmc.0.pwm.01.max-dc 0.95
setp ppmc.0.pwm.02.max-dc 0.95
setp ppmc.0.pwm.03.max-dc 0.95

# connect position feedback signals to encoders
net Xpos-fb <= ppmc.0.encoder.00.position
net Ypos-fb <= ppmc.0.encoder.01.position
net Zpos-fb <= ppmc.0.encoder.02.position
net Apos-fb <= ppmc.0.encoder.03.position

# get feedback scaling from ini file
setp ppmc.0.encoder.00.scale [AXIS_0]INPUT_SCALE
setp ppmc.0.encoder.01.scale [AXIS_1]INPUT_SCALE
setp ppmc.0.encoder.02.scale [AXIS_2]INPUT_SCALE
setp ppmc.0.encoder.03.scale [AXIS_3]INPUT_SCALE

# connect PID output signals to step generators
net Xoutput => ppmc.0.pwm.00.value
net Youtput => ppmc.0.pwm.01.value
net Zoutput => ppmc.0.pwm.02.value
net Aoutput => ppmc.0.pwm.03.value

# connect axis enables to step generators
net Xenable => ppmc.0.pwm.00.enable
net Yenable => ppmc.0.pwm.01.enable
net Zenable => ppmc.0.pwm.02.enable
net Aenable => ppmc.0.pwm.03.enable

# set output scaling from ini file
setp ppmc.0.pwm.00.scale [AXIS_0]OUTPUT_SCALE
setp ppmc.0.pwm.01.scale [AXIS_1]OUTPUT_SCALE
setp ppmc.0.pwm.02.scale [AXIS_2]OUTPUT_SCALE
setp ppmc.0.pwm.03.scale [AXIS_3]OUTPUT_SCALE

# add a couple of tuning test links
# if these are useful will want to add them to the other axes as well
# or make these setup with the tuning script
net Xoutput ddt.0.in
net Xpos-fb ddt.1.in