Pfinal Extras

for more visit: www.fpgalover.com

If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.

Written by Holguer A Becerra.

Nota: Esta practica fue realizada basada en la plataforma DE0-NANO, en este caso usted usara la plataforma DE2-115 y debera adaptarla a esta

  • En este caso, debe modificar las caracterisiticas de la memoria SDRAM y en vez de usar una memoria EPCS usara la memoria Flash de la DE2-115.

En esta sección usted podrá encontrar algunos ejemplos de ayuda usando la pantalla(WQVGA) 4.3inch-480x272-Touch-LCD, los cuales pueden ser útiles a la hora de hacer el proyecto final:

//Touch

localparam X_ADC_UPPER_RIGTH=3975;

localparam X_POS_UPPER_RIGTH=479;

localparam X_ADC_LOWER_LEFT=112;

localparam X_POS_LOWER_LEFT=0;

localparam Y_ADC_UPPER_RIGTH=4032;

localparam Y_POS_UPPER_RIGTH=0;

localparam Y_ADC_LOWER_LEFT=110;

localparam Y_POS_LOWER_LEFT=271;

wire [11:0] x_coord;

wire [11:0] y_coord;

wire new_coord;

adc_spi_controller u2 (

.iCLK(CLOCK_50),

.iRST_n(reset_n),

.oADC_DIN(TFT_ADC_DIN),

.oADC_DCLK(TFT_ADC_DCLK),

.oADC_CS(TFT_ADC_CS_N),

.iADC_DOUT(TFT_ADC_DOUT),

.iADC_BUSY(TFT_ADC_BUSY),

.iADC_PENIRQ_n(TFT_ADC_PENIRQ_N),

.oX_COORD(x_coord),

.oY_COORD(y_coord),

.oNEW_COORD(new_coord),

);

wire [31:0] numeratorX=(y_coord-X_ADC_LOWER_LEFT)*(X_POS_UPPER_RIGTH-X_POS_LOWER_LEFT);

wire [31:0] denominatorX=X_ADC_UPPER_RIGTH-X_ADC_LOWER_LEFT;

reg [31:0] real_x;

wire [31:0] numeratorY=(x_coord-Y_ADC_LOWER_LEFT)*(Y_POS_LOWER_LEFT-Y_POS_UPPER_RIGTH);

wire [31:0] denominatorY=Y_ADC_UPPER_RIGTH-Y_ADC_LOWER_LEFT;

reg[31:0] real_y;

always@(posedge CLOCK_50)

begin

real_y<=real_y;

real_x<=real_x;

if(!TFT_ADC_PENIRQ_N && new_coord)

begin

real_y<= Y_POS_LOWER_LEFT-(numeratorY/denominatorY);

real_x<= (numeratorX/denominatorX)+X_POS_LOWER_LEFT;

end

end

  • Test Video+Touch(.sof) & Pinout.

      • Nota: No montare el source de esta prueba hasta después del proyecto final, ya que mis estudiantes deben diseñar el modulo de sincronización

    • Test Video With PCEngine(.sof) & Pinout(GPIO_1[27]=AUDIO_L; assign GPIO_1[29]=AUDIO_R).

      • Utilizando el control panel de la DE0-NANO, programe la EPCS desde la posición 0x7d000 con el archivo siguiente(.pce): JackieChan.pce

      • Luego programe el .sof, ponga los SW[3:1] en la posición 3'b011 y oprima el KEY[0] para ver en funcionamiento el juego sobre su pantalla.

        • Nota: No montare el source de esta prueba hasta después del proyecto final, ya que mis estudiantes deben diseñar el modulo de sincronización

Notas:

  • Para diseñar el sincronizador de video, sugiero revisar las paginas 63 y pagina 65 del datasheet.

for more visit: www.fpgalover.com

If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.