Hardware calibration: Difference between revisions
Clean up some of the non-descriptive and/or wrong variable names |
|||
Line 57: | Line 57: | ||
|- | |- | ||
| 1 | | 1 | ||
| LCD flicker (always successful) | | LCD "flicker"/contrast (always successful) | ||
|- | |- | ||
| 2 | | 2 | ||
Line 84: | Line 84: | ||
|- | |- | ||
| A | | A | ||
| | | Adaptive BackLight (ABL) | ||
|- | |- | ||
| B | | B | ||
Line 99: | Line 99: | ||
|- | |- | ||
| F | | F | ||
| | | Adaptive BackLight (ABL) in legacy (DSi/GBA) mode | ||
|} | |} | ||
Line 122: | Line 122: | ||
| 2* | | 2* | ||
| 00050000 | | 00050000 | ||
| [[#Screen_flicker| | | [[#Screen_flicker|Display panel contrast]] | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
Line 167: | Line 167: | ||
| 0x20 | | 0x20 | ||
| ??? | | ??? | ||
| [[#ABL|Power saving mode]] | | [[#ABL|Adaptive BackLight / Power saving mode]] | ||
|- | |- | ||
| 0x470 | | 0x470 | ||
Line 228: | Line 228: | ||
==Touch== | ==Touch== | ||
Used for mapping touch ADC values to display pixel co-ordinates. | |||
<code> | |||
[4096, 4096] --> [320, 240] | |||
[RawX, RawY] --> [PointX, PointY] | |||
</code> | |||
Usually [PointX0, PointY0] is placed around 25% from the top-left corner, and the same for [PointX1, PointY1] except 25% from the bottom-right corner. | |||
This offsetting is needed because the touch film starts to distort outside of that rectangle, which would skew the touch results near the center of the screen. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 258: | Line 269: | ||
==Circle pad== | ==Circle pad== | ||
Contains the centering position of the circle pad. For other circle pad settings, see [[#Circle_pad_extra|circle pad extra]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! Declaration | |||
! Description | ! Description | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
| s16 CenterX | | s16 CenterX | ||
|rowspan="2"| Raw analog values corresponding to zero input position | |||
|- | |- | ||
| 0x02 | | 0x02 | ||
Line 270: | Line 286: | ||
==Screen flicker== | ==Screen flicker== | ||
These values are written to MCU register 0x03 and 0x04 respectively. They both set the display contrast voltage. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! Declaration | |||
! Description | ! Description | ||
|- | |- | ||
| 0 | | 0 | ||
| u8 FlickerTop | | u8 FlickerTop | ||
|rowspan="2"| Contrast voltage | |||
|- | |- | ||
| 1 | | 1 | ||
Line 281: | Line 302: | ||
|- | |- | ||
| 2* | | 2* | ||
|rowspan="2"| Inline checksum | |||
| Checksum low byte, NOT THIS[0] | | Checksum low byte, NOT THIS[0] | ||
|- | |- | ||
Line 290: | Line 312: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! Declaration | |||
! Description | ! Description | ||
|- | |- | ||
| 0 | | 0 | ||
| u8 CompensationValue (???) | | u8 CompensationValue | ||
| (???) | |||
|- | |- | ||
| 1* | | 1* | ||
| | |||
| Checksum byte, NOT THIS[0] | | Checksum byte, NOT THIS[0] | ||
|} | |} | ||
Line 302: | Line 327: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 368: | Line 393: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 401: | Line 426: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 425: | Line 450: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! Declaration | |||
! Description | ! Description | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
| u8 DriverGainHP | | u8 DriverGainHP | ||
| Headphone gain | |||
|- | |- | ||
| 0x01 | | 0x01 | ||
| u8 DriverGainSP | | u8 DriverGainSP | ||
| Speaker gain | |||
|- | |- | ||
| 0x02 | | 0x02 | ||
| u8 AnalogVolumeHP | | u8 AnalogVolumeHP | ||
| | |||
|- | |- | ||
| 0x03 | | 0x03 | ||
| u8 AnalogVolumeSP | | u8 AnalogVolumeSP | ||
| | |||
|- | |- | ||
| 0x04 | | 0x04 | ||
| s8 ShutterVolume[2] | | s8 ShutterVolume[2] | ||
| | |||
|- | |- | ||
| 0x06 | | 0x06 | ||
| u8 MicrophoneBias | | u8 MicrophoneBias | ||
| Capacitive microphone bias voltage | |||
|- | |- | ||
| 0x07 | | 0x07 | ||
| u8 QuickCharge (???) | | u8 QuickCharge | ||
| (???) | |||
|- | |- | ||
| 0x08 | | 0x08 | ||
| u8 PGA_GAIN (microphone gain) | | u8 PGA_GAIN | ||
| ??? (microphone gain) | |||
|- | |- | ||
| 0x09 | | 0x09 | ||
Line 456: | Line 490: | ||
| 0x0C | | 0x0C | ||
| s16 FilterHP32[3*5] | | s16 FilterHP32[3*5] | ||
| Headphone filter for 32728.49Hz sampling rate | |||
|- | |- | ||
| 0x2A | | 0x2A | ||
| s16 FilterHP47[3*5] | | s16 FilterHP47[3*5] | ||
| Headphone filter for 47605Hz sampling rate | |||
|- | |- | ||
| 0x48 | | 0x48 | ||
| s16 FilterSP32[3*5] | | s16 FilterSP32[3*5] | ||
| Speaker filter for 32728.49Hz sampling rate | |||
|- | |- | ||
| 0x66 | | 0x66 | ||
| s16 FilterSP47[3*5] | | s16 FilterSP47[3*5] | ||
| Speaker filter for 47605Hz sampling rate | |||
|- | |- | ||
| 0x84 | | 0x84 | ||
| s16 FilterMic32[(1+2)+((1+4)*5)] | | s16 FilterMic32[(1+2)+((1+4)*5)] | ||
| Microphone filter for 32728.49Hz sampling rate | |||
|- | |- | ||
| 0xBC | | 0xBC | ||
| s16 FilterMic47[(1+2)+((1+4)*5)] | | s16 FilterMic47[(1+2)+((1+4)*5)] | ||
| Microphone filter for 47605Hz sampling rate | |||
|- | |- | ||
| 0xF4 | | 0xF4 | ||
| s16 FilterFree[(1+2)+((1+4)*5)] | | s16 FilterFree[(1+2)+((1+4)*5)] | ||
| Unknown | |||
|- | |- | ||
| 0x12C | | 0x12C | ||
Line 495: | Line 536: | ||
| 0x132 | | 0x132 | ||
| u8 YM_Driver | | u8 YM_Driver | ||
| ??? (circle-pad or touch panel related?) | |||
|- | |- | ||
| 0x133 | | 0x133 | ||
Line 503: | Line 545: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 515: | Line 557: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 527: | Line 569: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 578: | Line 620: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 602: | Line 644: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 630: | Line 672: | ||
==MCU== | ==MCU== | ||
Somewhat misleading, these values are actually used for clamping the MCU's raw slider readings to comprehensible values. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! Declaration | |||
! Description | ! Description | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
| s16 SVR2_Min | | s16 SVR2_Min | ||
| Raw 3D volume slider values <= this map to 3D slider value 0.0 | |||
|- | |- | ||
| 0x02 | | 0x02 | ||
| s16 SVR2_Max | | s16 SVR2_Max | ||
| Raw 3D volume slider values >= this map to 3D slider value 1.0 | |||
|- | |- | ||
| 0x04 | | 0x04 | ||
| s16 VolumeSliderMin | | s16 VolumeSliderMin | ||
| Written to MCU reg 0x58. Volume slider values <= this map to volume value 0x00 | |||
|- | |- | ||
| 0x06 | | 0x06 | ||
| s16 VolumeSliderMax | | s16 VolumeSliderMax | ||
| Written to MCU reg 0x59. Volume slider values >= this map to volume value 0x3F | |||
|} | |} | ||
==ULCD delay== | ==ULCD delay== | ||
There is a delay between switching the parallax barrier, and adjusting the backlight. | |||
These delay values determine how many VBlank events to wait on before switching the backlight curves to the appropriate mode. | |||
This is needed only to prevent epillepsy from analog jitter causing unwanted mode switches, and both values are usually always set to 1 or 2. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 662: | Line 720: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 671: | Line 729: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 695: | Line 753: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
Line 710: | Line 768: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! Offset | ! Offset | ||
! | ! Declaration | ||
|- | |- | ||
| 0x00 | | 0x00 |