Changes

Jump to navigation Jump to search
1,723 bytes added ,  09:19, 19 July 2019
Line 5: Line 5:  
!  Description
 
!  Description
 
|-
 
|-
| 0x00010000
+
| 0x00010042
| GetTouchData
+
| [[Cdc:HID:GetData|GetData]]
 
|-
 
|-
| 0x00020000
+
| 0x00020042
 
| Initialize
 
| Initialize
 
|-
 
|-
Line 23: Line 23:  
  spi_select_reg(3, 0x67);
 
  spi_select_reg(3, 0x67);
 
  spi_offset_mask(3, 0x25, 0x10, 0x3C);
 
  spi_offset_mask(3, 0x25, 0x10, 0x3C);
 +
 +
Once the touchscreen is initialized, you can start polling touch data:
 +
u8 raw_touchdata[0x40];
 +
spi_select_reg(3, 0x67);
 +
spi_read_offset(3, 0x26); //The return value of this is checked against "& 2"
 +
spi_select_reg(3, 0xFB);
 +
spi_read_offset_array(3, 1, raw_touchdata, 0x34);
 +
 +
This is the format of the touchdata report:
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Offset
 +
!  Width
 +
!  Description
 +
|-
 +
| 0x00
 +
| 2*5
 +
| Five Touchscreen X Coordinates (big-endian MSB,LSB each. 12 bits number)
 +
|-
 +
| 0x0A
 +
| 2*5
 +
| Five Touchscreen Y Coordinates (big-endian MSB,LSB each. 12 bits number)
 +
|-
 +
| 0x20
 +
| ??
 +
| ??
 +
|}
 +
 +
When the touchscreen is not touched, all the coordinates report 0xFFFF, and since touch coordinates have only 12 bits, you can check if the touchscreen is pressed by checking the 4th bit of the MSB. For example: pendown = !(raw_touchdata[0] & BIT(4))
    
=MIC Codec "cdc:MIC"=
 
=MIC Codec "cdc:MIC"=
Line 29: Line 58:  
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x00010040
 +
| SetGain
 +
|-
 +
| 0x00020080
 +
| GetGain
 +
|-
 +
| 0x00030040
 +
| SetPower
 +
|-
 +
| 0x00040080
 +
| GetPower
 +
|-
 +
| 0x00050042
 +
| SetIirFilterMic
 
|}
 
|}
   Line 36: Line 80:  
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x00010040
 +
| ?
 +
|-
 +
| 0x00020040
 +
| ?
 +
|-
 +
| 0x00030040
 +
| ?
 +
|-
 +
| 0x00040080
 +
| ?
 +
|-
 +
| 0x00050040
 +
| ?
 +
|-
 +
| 0x00060080
 +
| ?
 +
|-
 +
| 0x00070040
 +
| ?
 +
|-
 +
| 0x00080080
 +
| ?
 +
|-
 +
| 0x00090040
 +
| ?
 
|}
 
|}
   Line 43: Line 114:  
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x00010042
 +
| ?
 +
|-
 +
| 0x00020042
 +
| ?
 +
|-
 +
| 0x00030082
 +
| ?
 +
|-
 +
| 0x00040042
 +
| ?
 +
|-
 +
| 0x000500C2
 +
| ?
 +
|-
 +
| 0x00060080
 +
| ?
 +
|-
 +
| 0x00070040
 +
| ?
 +
|-
 +
| 0x00080040
 +
| ?
 
|}
 
|}
   Line 50: Line 145:  
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x00010040
 +
| Powers on microphone ADC and clears bank3:idx3, then clears bank0xFF:idx5
 +
|-
 +
| 0x00020040
 +
| Sets unknown CONFIG11 CODEC bits, writes 0x40 to bank0x67:idx0x25
 +
|-
 +
| 0x00030040
 +
| Modifies bit5 in bank0x65:idx0x33
 
|}
 
|}
   Line 57: Line 161:  
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x000100C0
 +
| rowspan=2 | [[CDCCHK:ReadSPI|ReadSPI]]
 +
|-
 +
| 0x000200C0
 +
|-
 +
| 0x000300C2
 +
| rowspan=2 | [[CDCCHK:WriteSPI|WriteSPI]]
 +
|-
 +
| 0x000400C2
 
|}
 
|}
165

edits

Navigation menu