FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

Multi-Touch LCD Help

Honored Contributor II

Hey guys, 


I am working on a student project that uses the DE2-70 and the Terasic multi-touch LCD module. I am coding in Verilog on Quartus and am designing a touchscreen music synthesizer. Terasic provides an IP touch controller that is used to read in touches, gestures, and locations. Unfortunately, I have not been able to get a touch response from the unit. Nor have I been able to figure out how to output to the LCD screen. I also haven't been able to get Terasic's 2 demos up and running. I would greatly appreciate any help in setting the MTL module up or reference to additional documentation. 


Terasic's IP touch controller that has the following inputs and outputs: 


iCLK: Input- Connect to 50MHz Clock 

iRSTN: Input- Connect to system reset signal 

iTRIG: Input- Connect to Interrupt Pin of Touch IC 

oREADY: Output- Rising Trigger when following six output data is valid 

oREG_X1: Output- 10-bits X coordinate of first touch point 

oREG_Y: Output- 9-bits Y coordinate of first touch point 

oREG_X2: Output- 10-bits X coordinate of second touch point 

oREG_Y2: Output- 9-bits Y coordinate of second touch point 

oREG_TOUCH_COUNT: Output- 2-bits touch count. Valid value is 0, 1, or 2. 

oREG_GESTURE: Output- 8-bits gesture ID (See Table 3-4) 

I2C_SCLK: Output- Connect to I2C Clock Pin of Touch IC 

I2C_SDAT: Inout- Connect to I2C Data Pin of Touch IC 


According to the manual, iTRIG, I2C_SCLK, and IC2_SDAT pins should be connected to the MTL_TOUCH_INT_n, MTL_TOUCH_I2C_SCL, and MTL_TOUCH_I2C_DAT signals in the 2x20 GPIO header respectively. When oREADY rises, it means there is touch activity, and associated information is given in the oREG_X1, oREG_Y1, oREG_X2, oREG_Y2, oREG_TOUCH_COUNT, and oREG_GESTURE pins. 


They also give the mapping for the GPIO ports on the DE2 which I converted to GPIO ports of the DE2-70. 


Note* I also have access to the Altera DE2 board, but would prefer to use the DE2-70 


0 Kudos
3 Replies
Honored Contributor II

can you check the pin assignment is correct all? I think you can debug it using signal tap II to clear which pin's pin assignment is not correct, and you should note the I/O stand for GPIO pins should be 3.3v.

Honored Contributor II

Hey Peli, 


Yes, I tried using the provided .qsf demo file on the DE2 board, and yes I remembered to set the I/O standard to 3.3v so I don't think that is the issue. 


Honored Contributor II



I am now receiving touch inputs correctly. It turns out that iTRIG has negative polarity (it would have been nice if the manual had stated this). I would still appreciate any help with drawing shapes on the screen.