annotate compal/audio/omr-via-headset @ 381:ca75ac283888

compal/audio: analysis of handheld mode omr readouts made by Das Signal
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 09 Nov 2021 18:49:09 +0000
parents a66cb88c5f77
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
380
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Follow-up on the experiments described in the omr-guide article: I connected
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 the headset jack serial cable to a C139 phone that has a SIM inserted, and
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 booted it up with a real GSM network connection. And then I made a test call.
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 There is a headset icon displayed on the home screen, and no sounds emanate
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 from the built-in earpiece speaker, so it is definitely in headset mode.
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 However, by getting into the active call state, I was able to access the volume
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 control screen, and I got an omr reading of d_vbdctrl DSP API word at each
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 volume level. Here they are:
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 Level d_vbdctrl VBDCTRL Vol gain PGA gain Total
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 ------------------------------------------------------------------------------
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 0 0x018C 0x006 -12 dB 0 dB -12 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 1 0x020C 0x008 -12 dB 2 dB -10 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 2 0x028C 0x00A -12 dB 4 dB -8 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 3 0x030C 0x00C -12 dB 6 dB -6 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 4 0x1A4C 0x069 -6 dB 3 dB -3 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 5 0x1ACC 0x06B -6 dB 5 dB -1 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 6 0x09CC 0x027 0 dB 1 dB 1 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 7 0x0A8C 0x02A 0 dB 4 dB 4 dB
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 Additional observation: the volume levels listed above exist only in the active
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 call state: when a call ends, the fw switches to fixed level 4 for keybeeps and
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 whatnot. When a new call begins, the fw restores the last set in-call volume
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 level.
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 Further observation: DL FIR coefficients stay the same at all 8 volume levels:
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 0x7FFF in coefficient 0, zeros in all others. Thus Compal's hack of adding
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 another 6 dB of gain via the FIR block is unaffected by volume control, and no
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 frequency curve transformation is ever applied, at least in headset mode.
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 Regarding AEC: the reading of 0x03C7 from d_aec_ctrl when breaking in with
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 tfc139 definitely seemed suspicious. Reading the same word via omr, we get
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 0x0226 while in an active call and 0x03A7 after the call ends. Furthermore, we
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 can catch a little bit of trace output related to headset insertion if we have
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 rvinterf running and do the **16379# trace enable step before inserting the
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 serial cable into the headset jack, and we see this trace message:
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 L1: AEC_R <fn> 03a6 0001 0014 4ccc 59ad 7500 0000 1000 1000
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 Thus it looks like C139 headset mode AEC configuration is:
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 * AEC enabled (bit 1 in d_aec_ctrl)
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 * noise suppression enabled (bit 2 in d_aec_ctrl)
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 * NS level bits (d_aec_ctrl[6:5]) are set to 0x20
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 * New AEC parameter words are 0001 0014 4ccc 59ad 7500 0000 1000 1000
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 VBC registers during active call:
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 Register DSP API word 10-bit register value
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 -----------------------------------------------------
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 VBCTRL1 0x0110 0x004
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 VBCTRL2 0x01D6 0x007
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 VBUCTRL 0x6CCE 0x1B3
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 Notice VBUCTRL diff: we read 0x1B3 (9 dB uplink gain) when we are in an active
a66cb88c5f77 compal/audio/omr-via-headset: result of experiment
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 call, but 0x1B2 (8 dB uplink gain) otherwise.