As there is still no documentation on the LCD_CAM peripheral, i would like espressif help me with this peripheral.
Below are the codes that apparently are working and the code that is not working.
Can i only send data with the data/command pin = 1 through gdma ?
Code apparently it's working to send a command:
* Clock io pin = OK
* data/command io pin = 0 (ok).
* chip select io pin = always 0.
* data 0.....7 io pins = ok.
Code: Select all
inline void hw_lcd_write_command( uint32_t command )
{
LCD_CAM.lcd_user.lcd_cmd = 1; // R/W; bitpos: [26]; default: 0. 1: Be able to send command in LCD sequence when LCD starts. 0: Disable.
LCD_CAM.lcd_user.lcd_dout = 0; // R/W; bitpos: [24]; default: 0. 1: Be able to send data out in LCD sequence when LCD starts. 0: Disable.
LCD_CAM.lcd_cmd_val.lcd_cmd_value = command; // lcd_cmd_value : R/W; bitpos: [31:0]; default: 0. The LCD write command value.
LCD_CAM.lcd_user.lcd_update = 1; // R/W; bitpos: [20]; default: 0. 1: Update LCD registers, will be cleared by hardware. 0 : Not care. Update parameters before start transaction.
LCD_CAM.lcd_user.lcd_start = 1; // R/W; bitpos: [27]; default: 0. LCD start sending data enable signal, valid in high level.
}
Code not working to send a parameter with data/command pin = 1 without gdma.
* Clock io pin = OK i think ( "2 clock cycles with LCD_CAM.lcd_user.lcd_always_out_en = 0" , and 1 clock cycle with LCD_CAM.lcd_user.lcd_always_out_en = 1" ).
* data/command io pin = 1 (ok).
* chip select io pin = always 0.
* data 0.....7 io pins = NOT OK, no output data.
Code: Select all
inline void hw_lcd_write_data( uint32_t data )
{
LCD_CAM.lcd_user.lcd_cmd = 0; // R/W; bitpos: [26]; default: 0. 1: Be able to send command in LCD sequence when LCD starts. 0: Disable.
LCD_CAM.lcd_user.lcd_dout = 1; // R/W; bitpos: [24]; default: 0. 1: Be able to send data out in LCD sequence when LCD starts. 0: Disable.
LCD_CAM.lcd_cmd_val.lcd_cmd_value = data; // R/W; bitpos: [31:0]; default: 0. The LCD write command value.
LCD_CAM.lcd_user.lcd_update = 1; // R/W; bitpos: [20]; default: 0. 1: Update LCD registers, will be cleared by hardware. 0 : Not care. Update parameters before start transaction.
LCD_CAM.lcd_user.lcd_start = 1; // R/W; bitpos: [27]; default: 0. LCD start sending data enable signal, valid in high level.
}