Skip to content

Commit 0e4425d

Browse files
authored
Refactor JSON structure for board configuration
The PWM Instance requires a pins Object in the latest LiteXCNC Version, otherwise build_firmware throws a stack.
1 parent 957b877 commit 0e4425d

1 file changed

Lines changed: 266 additions & 113 deletions

File tree

Lines changed: 266 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,270 @@
11
{
2-
"board_name": "5A-75B:V8.0",
3-
"board_type": "5A-75B v8.0",
4-
"clock_frequency": 40000000,
5-
"connection": {
6-
"connection_type": "etherbone",
7-
"tx_delay": 0,
8-
"ip_address": "10.0.0.10",
9-
"mac_address": "0x10e2d5000000"
2+
"board_name": "5A-75B:V8.0",
3+
"board_type": "5A-75B v8.0",
4+
"clock_frequency": 40000000,
5+
"connection": {
6+
"connection_type": "etherbone",
7+
"tx_delay": 0,
8+
"ip_address": "10.0.0.10",
9+
"mac_address": "0x10e2d5000000"
10+
},
11+
"watchdog": {
12+
"pin": "j1:8"
13+
},
14+
"modules": [
15+
{
16+
"module_type": "gpio",
17+
"instances": [
18+
{
19+
"direction": "out",
20+
"pin": "j1:9",
21+
"name": "j1:10"
22+
},
23+
{
24+
"direction": "out",
25+
"pin": "j1:10",
26+
"name": "j1:11"
27+
},
28+
{
29+
"direction": "out",
30+
"pin": "j1:11",
31+
"name": "j1:12"
32+
},
33+
{
34+
"direction": "out",
35+
"pin": "j1:12",
36+
"name": "j1:13"
37+
},
38+
{
39+
"direction": "out",
40+
"pin": "j1:13",
41+
"name": "j1:14"
42+
},
43+
{
44+
"direction": "out",
45+
"pin": "j1:14",
46+
"name": "j1:15"
47+
},
48+
{
49+
"direction": "in",
50+
"pin": "j1:0",
51+
"name": "j1:1"
52+
},
53+
{
54+
"direction": "in",
55+
"pin": "j1:1",
56+
"name": "j1:2"
57+
},
58+
{
59+
"direction": "in",
60+
"pin": "j1:2",
61+
"name": "j1:3"
62+
},
63+
{
64+
"direction": "in",
65+
"pin": "j1:4",
66+
"name": "j1:5"
67+
},
68+
{
69+
"direction": "in",
70+
"pin": "j1:5",
71+
"name": "j1:6"
72+
},
73+
{
74+
"direction": "in",
75+
"pin": "j1:6",
76+
"name": "j1:7"
77+
},
78+
{
79+
"direction": "in",
80+
"pin": "j2:0",
81+
"name": "j2:1"
82+
},
83+
{
84+
"direction": "in",
85+
"pin": "j2:1",
86+
"name": "j2:2"
87+
},
88+
{
89+
"direction": "in",
90+
"pin": "j2:2",
91+
"name": "j2:3"
92+
},
93+
{
94+
"direction": "in",
95+
"pin": "j2:4",
96+
"name": "j2:5"
97+
},
98+
{
99+
"direction": "in",
100+
"pin": "j2:5",
101+
"name": "j2:6"
102+
},
103+
{
104+
"direction": "in",
105+
"pin": "j2:6",
106+
"name": "j2:7"
107+
},
108+
{
109+
"direction": "out",
110+
"pin": "j5:0",
111+
"name": "j5:1"
112+
},
113+
{
114+
"direction": "out",
115+
"pin": "j5:1",
116+
"name": "j5:2"
117+
},
118+
{
119+
"direction": "out",
120+
"pin": "j5:2",
121+
"name": "j5:3"
122+
},
123+
{
124+
"direction": "out",
125+
"pin": "j5:4",
126+
"name": "j5:5"
127+
},
128+
{
129+
"direction": "out",
130+
"pin": "j5:5",
131+
"name": "j5:6"
132+
},
133+
{
134+
"direction": "out",
135+
"pin": "j5:6",
136+
"name": "j5:7"
137+
}
138+
]
10139
},
11-
"watchdog": {
12-
"pin":"j1:8"
140+
{
141+
"module_type": "pwm",
142+
"instances": [
143+
{
144+
"pins": {
145+
"pwm": "j6:0",
146+
"name": "j6:1",
147+
"output_type": "single"
148+
}
149+
},
150+
{
151+
"pins": {
152+
"pwm": "j6:1",
153+
"name": "j6:2",
154+
"output_type": "single"
155+
}
156+
},
157+
{
158+
"pins": {
159+
"pwm": "j6:2",
160+
"name": "j6:3",
161+
"output_type": "single"
162+
}
163+
},
164+
{
165+
"pins": {
166+
"pwm": "j6:4",
167+
"name": "j6:5",
168+
"output_type": "single"
169+
}
170+
},
171+
{
172+
"pins": {
173+
"pwm": "j6:5",
174+
"name": "j6:6",
175+
"output_type": "single"
176+
}
177+
},
178+
{
179+
"pins": {
180+
"pwm": "j6:6",
181+
"name": "j6:7",
182+
"output_type": "single"
183+
}
184+
}
185+
]
13186
},
14-
"modules": [
15-
{
16-
"module_type": "gpio",
17-
"instances": [
18-
{"direction": "out", "pin":"j1:9", "name":"j1:10"},
19-
{"direction": "out", "pin":"j1:10", "name":"j1:11"},
20-
{"direction": "out", "pin":"j1:11", "name":"j1:12"},
21-
{"direction": "out", "pin":"j1:12", "name":"j1:13"},
22-
{"direction": "out", "pin":"j1:13", "name":"j1:14"},
23-
{"direction": "out", "pin":"j1:14", "name":"j1:15"},
24-
{"direction": "in", "pin":"j1:0", "name":"j1:1" },
25-
{"direction": "in", "pin":"j1:1", "name":"j1:2" },
26-
{"direction": "in", "pin":"j1:2", "name":"j1:3" },
27-
{"direction": "in", "pin":"j1:4", "name":"j1:5" },
28-
{"direction": "in", "pin":"j1:5", "name":"j1:6" },
29-
{"direction": "in", "pin":"j1:6", "name":"j1:7" },
30-
{"direction": "in", "pin":"j2:0", "name":"j2:1" },
31-
{"direction": "in", "pin":"j2:1", "name":"j2:2" },
32-
{"direction": "in", "pin":"j2:2", "name":"j2:3" },
33-
{"direction": "in", "pin":"j2:4", "name":"j2:5" },
34-
{"direction": "in", "pin":"j2:5", "name":"j2:6" },
35-
{"direction": "in", "pin":"j2:6", "name":"j2:7" },
36-
{"direction": "out", "pin":"j5:0", "name":"j5:1" },
37-
{"direction": "out", "pin":"j5:1", "name":"j5:2" },
38-
{"direction": "out", "pin":"j5:2", "name":"j5:3" },
39-
{"direction": "out", "pin":"j5:4", "name":"j5:5" },
40-
{"direction": "out", "pin":"j5:5", "name":"j5:6" },
41-
{"direction": "out", "pin":"j5:6", "name":"j5:7" }
42-
]
43-
}, {
44-
"module_type": "pwm",
45-
"instances": [
46-
{"pin":"j6:0", "name":"j6:1"},
47-
{"pin":"j6:1", "name":"j6:2"},
48-
{"pin":"j6:2", "name":"j6:3"},
49-
{"pin":"j6:4", "name":"j6:5"},
50-
{"pin":"j6:5", "name":"j6:6"},
51-
{"pin":"j6:6", "name":"j6:7"}
52-
]
53-
}, {
54-
"module_type": "encoder",
55-
"instances": [
56-
{"pin_A":"j3:0", "pin_B":"j3:1"},
57-
{"pin_A":"j3:2", "pin_B":"j3:4"},
58-
{"pin_A":"j3:5", "pin_B":"j3:6"},
59-
{"pin_A":"j4:0", "pin_B":"j4:1"},
60-
{"pin_A":"j4:2", "pin_B":"j4:4"},
61-
{"pin_A":"j4:5", "pin_B":"j4:6"}
62-
]
63-
}, {
64-
"module_type": "stepgen",
65-
"instances": [
66-
{
67-
"pins" : {
68-
"stepgen_type": "step_dir",
69-
"step_pin": "j7:0",
70-
"dir_pin": "j7:1"
71-
},
72-
"soft_stop": true
73-
},
74-
{
75-
"pins" : {
76-
"stepgen_type": "step_dir",
77-
"step_pin": "j7:2",
78-
"dir_pin": "j7:4"
79-
},
80-
"soft_stop": true
81-
},
82-
{
83-
"pins" : {
84-
"stepgen_type": "step_dir",
85-
"step_pin": "j7:5",
86-
"dir_pin": "j7:6"
87-
},
88-
"soft_stop": true
89-
},
90-
{
91-
"pins" : {
92-
"stepgen_type": "step_dir",
93-
"step_pin": "j8:0",
94-
"dir_pin": "j8:1"
95-
},
96-
"soft_stop": true
97-
},
98-
{
99-
"pins" : {
100-
"stepgen_type": "step_dir",
101-
"step_pin": "j8:2",
102-
"dir_pin": "j8:4"
103-
},
104-
"soft_stop": true
105-
},
106-
{
107-
"pins" : {
108-
"stepgen_type": "step_dir",
109-
"step_pin": "j8:5",
110-
"dir_pin": "j8:6"
111-
},
112-
"soft_stop": true
113-
}
114-
]
187+
{
188+
"module_type": "encoder",
189+
"instances": [
190+
{
191+
"pin_A": "j3:0",
192+
"pin_B": "j3:1"
193+
},
194+
{
195+
"pin_A": "j3:2",
196+
"pin_B": "j3:4"
197+
},
198+
{
199+
"pin_A": "j3:5",
200+
"pin_B": "j3:6"
201+
},
202+
{
203+
"pin_A": "j4:0",
204+
"pin_B": "j4:1"
205+
},
206+
{
207+
"pin_A": "j4:2",
208+
"pin_B": "j4:4"
209+
},
210+
{
211+
"pin_A": "j4:5",
212+
"pin_B": "j4:6"
213+
}
214+
]
215+
},
216+
{
217+
"module_type": "stepgen",
218+
"instances": [
219+
{
220+
"pins": {
221+
"stepgen_type": "step_dir",
222+
"step_pin": "j7:0",
223+
"dir_pin": "j7:1"
224+
},
225+
"soft_stop": true
226+
},
227+
{
228+
"pins": {
229+
"stepgen_type": "step_dir",
230+
"step_pin": "j7:2",
231+
"dir_pin": "j7:4"
232+
},
233+
"soft_stop": true
234+
},
235+
{
236+
"pins": {
237+
"stepgen_type": "step_dir",
238+
"step_pin": "j7:5",
239+
"dir_pin": "j7:6"
240+
},
241+
"soft_stop": true
242+
},
243+
{
244+
"pins": {
245+
"stepgen_type": "step_dir",
246+
"step_pin": "j8:0",
247+
"dir_pin": "j8:1"
248+
},
249+
"soft_stop": true
250+
},
251+
{
252+
"pins": {
253+
"stepgen_type": "step_dir",
254+
"step_pin": "j8:2",
255+
"dir_pin": "j8:4"
256+
},
257+
"soft_stop": true
258+
},
259+
{
260+
"pins": {
261+
"stepgen_type": "step_dir",
262+
"step_pin": "j8:5",
263+
"dir_pin": "j8:6"
264+
},
265+
"soft_stop": true
115266
}
116-
]
117-
}
267+
]
268+
}
269+
]
270+
}

0 commit comments

Comments
 (0)