Skip to content

Commit 5918a3b

Browse files
committed
add tiliqua r2/r4 support
1 parent 5d57d52 commit 5918a3b

File tree

7 files changed

+189
-5
lines changed

7 files changed

+189
-5
lines changed

gateware/boards/tiliqua/Makefile renamed to gateware/boards/tiliqua_r2/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ PROJ = top
33
DEVICE = 45k
44
PACKAGE = CABGA256
55
SPEEDGRADE = 7
6-
PIN_DEF = ./boards/tiliqua/pinmap.lpf
6+
PIN_DEF = ./boards/tiliqua_r2/pinmap.lpf
77
# UART: 115200 baud as RP2040 CDC converter assumes this.
88
ADD_DEFINES = -DSELECTED_DSP_CORE=$(CORE) -DINVERT_BUTTON=1 -DDEBUG_UART_CLKDIV=104
99

1010
include ./mk/common.mk
1111
include ./mk/ecp5.mk
1212

13-
ADD_SRC = boards/tiliqua/sysmgr.v \
13+
ADD_SRC = boards/tiliqua_r2/sysmgr.v \
1414
$(SRC_COMMON)
1515

1616
prog: $(BUILD)/$(PROJ).bin
File renamed without changes.

gateware/boards/tiliqua/sysmgr.v renamed to gateware/boards/tiliqua_r2/sysmgr.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ assign rst_out = rst_i;
2424
// You can re-generate this using `ecppll` tool. Be careful, the default settings
2525
// disable PLLRST_ENA and use a different FEEDBK_PATH, make sure they remain.
2626

27-
(* FREQUENCY_PIN_CLKI="25" *)
27+
(* FREQUENCY_PIN_CLKI="48" *)
2828
(* FREQUENCY_PIN_CLKOS="12" *)
2929
(* ICP_CURRENT="12" *) (* LPF_RESISTOR="8" *) (* MFG_ENABLE_FILTEROPAMP="1" *) (* MFG_GMCREF_SEL="2" *)
3030
EHXPLLL #(
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
PROJ = top
2+
3+
DEVICE = 25k
4+
PACKAGE = CABGA256
5+
SPEEDGRADE = 7
6+
PIN_DEF = ./boards/tiliqua_r4/pinmap.lpf
7+
# UART: 115200 baud as RP2040 CDC converter assumes this.
8+
ADD_DEFINES = -DSELECTED_DSP_CORE=$(CORE) -DINVERT_BUTTON=1 -DDEBUG_UART_CLKDIV=104
9+
10+
include ./mk/common.mk
11+
include ./mk/ecp5.mk
12+
13+
ADD_SRC = boards/tiliqua_r2/sysmgr.v \
14+
$(SRC_COMMON)
15+
16+
prog: $(BUILD)/$(PROJ).bin
17+
openFPGALoader -c dirtyJtag $(BUILD)/$(PROJ).bin
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
SYSCONFIG COMPRESS_CONFIG=ON;
2+
3+
LOCATE COMP "CLK" SITE "A8";
4+
IOBUF PORT "CLK" IO_TYPE=LVCMOS33;
5+
FREQUENCY PORT "CLK" 48 MHZ;
6+
7+
# These pads are to the eurorack-pmod 'backpack' FFC.
8+
LOCATE COMP "PMOD_MCLK" SITE "C15";
9+
LOCATE COMP "PMOD_PDN" SITE "A15";
10+
LOCATE COMP "PMOD_I2C_SDA" SITE "C16";
11+
LOCATE COMP "PMOD_I2C_SCL" SITE "B16";
12+
LOCATE COMP "PMOD_SDIN1" SITE "D7";
13+
LOCATE COMP "PMOD_SDOUT1" SITE "C9";
14+
LOCATE COMP "PMOD_LRCK" SITE "C10";
15+
LOCATE COMP "PMOD_BICK" SITE "D9";
16+
17+
IOBUF PORT "PMOD_MCLK" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
18+
IOBUF PORT "PMOD_PDN" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
19+
IOBUF PORT "PMOD_I2C_SDA" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
20+
IOBUF PORT "PMOD_I2C_SCL" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
21+
IOBUF PORT "PMOD_SDIN1" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
22+
IOBUF PORT "PMOD_SDOUT1" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
23+
IOBUF PORT "PMOD_LRCK" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
24+
IOBUF PORT "PMOD_BICK" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
25+
26+
# This is the Tiliqua encoder switch.
27+
LOCATE COMP "RESET_BUTTON" SITE "A6";
28+
IOBUF PORT "RESET_BUTTON" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
29+
30+
# This is connected to the Tiliqua RP2040 debugger.
31+
LOCATE COMP "UART_TX" SITE "B4";
32+
IOBUF PORT "UART_TX" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;

gateware/drivers/out

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
head 6e int 110
2+
head 00 int 0
3+
reg 0x0 hex 0xff int 255 SENSOR_EN
4+
reg 0x1 hex 0x0 int 0
5+
reg 0x2 hex 0x0 int 0 FSS_EN
6+
reg 0x3 hex 0x0 int 0
7+
reg 0x4 hex 0x0 int 0 TOGGLE_EN
8+
reg 0x5 hex 0x0 int 0
9+
reg 0x6 hex 0x0 int 0 LED_ON_EN
10+
reg 0x7 hex 0x0 int 0
11+
reg 0x8 hex 0xff int 255 SENSITIVITY0
12+
reg 0x9 hex 0xff int 255 SENSITIVITY1
13+
reg 0xa hex 0x0 int 0 SENSITIVITY2
14+
reg 0xb hex 0x0 int 0 SENSITIVITY3
15+
reg 0xc hex 0x80 int 128 BASE_THRESHOLD0
16+
reg 0xd hex 0x80 int 128 BASE_THRESHOLD1
17+
reg 0xe hex 0x80 int 128 FINGER_THRESHOLD2
18+
reg 0xf hex 0x80 int 128 FINGER_THRESHOLD3
19+
reg 0x10 hex 0x80 int 128 FINGER_THRESHOLD4
20+
reg 0x11 hex 0x80 int 128 FINGER_THRESHOLD5
21+
reg 0x12 hex 0x80 int 128 FINGER_THRESHOLD6
22+
reg 0x13 hex 0x80 int 128 FINGER_THRESHOLD7
23+
reg 0x14 hex 0x0 int 0 FINGER_THRESHOLD8
24+
reg 0x15 hex 0x0 int 0 FINGER_THRESHOLD9
25+
reg 0x16 hex 0x0 int 0 FINGER_THRESHOLD10
26+
reg 0x17 hex 0x0 int 0 FINGER_THRESHOLD11
27+
reg 0x18 hex 0x0 int 0 FINGER_THRESHOLD12
28+
reg 0x19 hex 0x0 int 0 FINGER_THRESHOLD13
29+
reg 0x1a hex 0x0 int 0 FINGER_THRESHOLD14
30+
reg 0x1b hex 0x0 int 0 FINGER_THRESHOLD15
31+
reg 0x1c hex 0x4 int 4 SENSOR_DEBOUNCE
32+
reg 0x1d hex 0x9f int 159 BUTTON_HYS
33+
reg 0x1e hex 0x0 int 0
34+
reg 0x1f hex 0xb2 int 178 BUTTON_LBR
35+
reg 0x20 hex 0x94 int 148 BUTTON_NNT
36+
reg 0x21 hex 0x94 int 148 BUTTON_NT
37+
reg 0x22 hex 0x0 int 0
38+
reg 0x23 hex 0x0 int 0
39+
reg 0x24 hex 0x0 int 0
40+
reg 0x25 hex 0x0 int 0
41+
reg 0x26 hex 0x0 int 0 PROX_EN
42+
reg 0x27 hex 0x80 int 128 PROX_CFG
43+
reg 0x28 hex 0x5 int 5 PROX_CFG2
44+
reg 0x29 hex 0x0 int 0
45+
reg 0x2a hex 0x0 int 0 PROX_TOUCH_TH0
46+
reg 0x2b hex 0x2 int 2
47+
reg 0x2c hex 0x0 int 0 PROX_TOUCH_TH1
48+
reg 0x2d hex 0x2 int 2
49+
reg 0x2e hex 0x0 int 0 PROX_RESOLUTION0
50+
reg 0x2f hex 0x0 int 0 PROX_RESOLUTION1
51+
reg 0x30 hex 0x0 int 0 PROX_HYS
52+
reg 0x31 hex 0x0 int 0
53+
reg 0x32 hex 0x0 int 0 PROX_LBR
54+
reg 0x33 hex 0x0 int 0 PROX_NNT
55+
reg 0x34 hex 0x0 int 0 PROX_NT
56+
reg 0x35 hex 0x1e int 30 PROX_POSITIVE_TH0
57+
reg 0x36 hex 0x1e int 30 PROX_POSITIVE_TH1
58+
reg 0x37 hex 0x0 int 0
59+
reg 0x38 hex 0x0 int 0
60+
reg 0x39 hex 0x1e int 30 PROX_NEGATIVE_TH0
61+
reg 0x3a hex 0x1e int 30 PROX_NEGATIVE_TH1
62+
reg 0x3b hex 0x0 int 0
63+
reg 0x3c hex 0x0 int 0
64+
reg 0x3d hex 0x0 int 0 LED_ON_TIME
65+
reg 0x3e hex 0x1 int 1 BUZZER_CFG
66+
reg 0x3f hex 0x1 int 1 BUZZER_ON_TIME
67+
reg 0x40 hex 0x0 int 0 GPO_CFG
68+
reg 0x41 hex 0xff int 255 PWM_DUTYCYCLE_CFG0
69+
reg 0x42 hex 0xff int 255 PWM_DUTYCYCLE_CFG1
70+
reg 0x43 hex 0xff int 255 PWM_DUTYCYCLE_CFG2
71+
reg 0x44 hex 0xff int 255 PWM_DUTYCYCLE_CFG3
72+
reg 0x45 hex 0x0 int 0 PWM_DUTYCYCLE_CFG4
73+
reg 0x46 hex 0x0 int 0 PWM_DUTYCYCLE_CFG5
74+
reg 0x47 hex 0x0 int 0 PWM_DUTYCYCLE_CFG6
75+
reg 0x48 hex 0x0 int 0 PWM_DUTYCYCLE_CFG7
76+
reg 0x49 hex 0x0 int 0
77+
reg 0x4a hex 0x0 int 0
78+
reg 0x4b hex 0x0 int 0
79+
reg 0x4c hex 0x10 int 16 SPO_CFG
80+
reg 0x4d hex 0x3 int 3 DEVICE_CFG0
81+
reg 0x4e hex 0x0 int 0 DEVICE_CFG1
82+
reg 0x4f hex 0x20 int 32 DEVICE_CFG2
83+
reg 0x50 hex 0x0 int 0 DEVICE_CFG3
84+
reg 0x51 hex 0x37 int 55 I2C_ADDR
85+
reg 0x52 hex 0x1 int 1 REFRESH_CTRL
86+
reg 0x53 hex 0xf int 15
87+
reg 0x54 hex 0x0 int 0
88+
reg 0x55 hex 0xa int 10 STATE_TIMEOUT
89+
reg 0x56 hex 0x0 int 0
90+
reg 0x57 hex 0x0 int 0
91+
reg 0x58 hex 0x0 int 0
92+
reg 0x59 hex 0x0 int 0
93+
reg 0x5a hex 0x0 int 0
94+
reg 0x5b hex 0x0 int 0
95+
reg 0x5c hex 0x0 int 0
96+
reg 0x5d hex 0x0 int 0 SLIDER_CFG
97+
reg 0x5e hex 0x0 int 0
98+
reg 0x5f hex 0x0 int 0
99+
reg 0x60 hex 0x0 int 0
100+
reg 0x61 hex 0x0 int 0 SLIDER1_CFG
101+
reg 0x62 hex 0x0 int 0 SLIDER1_RESOLUTION
102+
reg 0x63 hex 0x0 int 0 SLIDER1_THRESHOLD
103+
reg 0x64 hex 0x0 int 0
104+
reg 0x65 hex 0x0 int 0
105+
reg 0x66 hex 0x0 int 0
106+
reg 0x67 hex 0x0 int 0 SLIDER2_CFG
107+
reg 0x68 hex 0x0 int 0 SLIDER2_RESOLUTION
108+
reg 0x69 hex 0x0 int 0 SLIDER2_THRESHOLD
109+
reg 0x6a hex 0x0 int 0
110+
reg 0x6b hex 0x0 int 0
111+
reg 0x6c hex 0x0 int 0
112+
reg 0x6d hex 0x0 int 0
113+
reg 0x6e hex 0x0 int 0
114+
reg 0x6f hex 0x0 int 0
115+
reg 0x70 hex 0x0 int 0
116+
reg 0x71 hex 0x0 int 0 SLIDER_LBR
117+
reg 0x72 hex 0x0 int 0 SLIDER_NNT
118+
reg 0x73 hex 0x0 int 0 SLIDER_NT
119+
reg 0x74 hex 0x0 int 0
120+
reg 0x75 hex 0x0 int 0
121+
reg 0x76 hex 0x0 int 0
122+
reg 0x77 hex 0x0 int 0
123+
reg 0x78 hex 0x0 int 0
124+
reg 0x79 hex 0x0 int 0
125+
reg 0x7a hex 0x0 int 0 SCRATCHPAD0
126+
reg 0x7b hex 0x0 int 0 SCRATCHPAD1
127+
reg 0x7c hex 0x0 int 0
128+
reg 0x7d hex 0x0 int 0
129+
reg 0x7e hex 0x86 int 134 CONFIG_CRC
130+
reg 0x7f hex 0xc1 int 193
131+
total bytes in file 130
132+
bytes to crc 126
133+
crc0 0x86
134+
crc1 0xc1
135+
CRC OK

gateware/top.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
// Force the output DAC to a specific value depending on
66
// the position of the uButton (necessary for output cal).
7-
//`define OUTPUT_CALIBRATION
7+
`define OUTPUT_CALIBRATION
88

99
module top #(
1010
parameter int W = 16 // sample width, bits
@@ -200,7 +200,7 @@ eurorack_pmod #(
200200
.sample_adc2(debug_adc2),
201201
.sample_adc3(debug_adc3),
202202
`ifdef OUTPUT_CALIBRATION
203-
.force_dac_output(button ? -20000 : 20000)
203+
.force_dac_output(button ? -32768 : 32767)
204204
`else
205205
.force_dac_output(0) // Do not force output.
206206
`endif

0 commit comments

Comments
 (0)