FreeCalypso > hg > freecalypso-docs
annotate Calypso-digital-voice @ 23:14391ad53281
FCDEV3B-repackaging article removed for legal reasons
The idea expressed in that article, namely the idea that some party other than
Mother Mychaela could be permitted to create a derived work based on FCDEV3B
board design and have it be accepted into the FreeCalypso family, is no longer
allowed by our current stance on the matters of intellectual property,
particularly Falconia IP.
For technical content, the new FC-modem-family and Quadband-ideas articles
should fully supplant this old FCDEV3B-repackaging article.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 23 Oct 2019 00:43:21 +0000 |
parents | 9baf6215285b |
children |
rev | line source |
---|---|
10
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Digital voice on FreeCalypso modems via MCSI |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ============================================ |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 The Calypso chip provides a little-used auxiliary synchronous serial interface |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 called MCSI. It is an auxiliary interface to the DSP part of the Calypso |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 (controlled solely by the DSP and not directly accessible to the ARM part); it |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 is not clear what other uses TI may have had in mind for this interface, but |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 one advertised feature of TI's TCS211 chipset+firmware solution is Bluetooth |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 support in the form of using MCSI as a digital voice channel to be connected to |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 TI's Bluetooth Island chip. In FreeCalypso we are not interested in Bluetooth |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 per se, but we are interested in getting a digital voice channel out of our |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 modem for GSM voice calls in order to compete with the mainstream proprietary |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 GSM modem modules which do provide such digital voice channels. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 Our current development board (FCDEV3B) has MCSI brought out on a header for |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 experimentation, and as of 2019-03 we finally got this MCSI working as a proper |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 digital voice interface. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 Hardware interface |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 ================== |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 MCSI consists of 4 hardware signals: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 * MCSI_CLK is the bit clock output from the Calypso; in pure hardware terms |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 this signal is bidirectional, but unless you are going to develop your own |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 DSP code patches, its direction is determined by the DSP ROM code, which |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 configures MCSI_CLK as an output, i.e., the Calypso acts as the clock master. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 * MCSI_FSYNCH is the frame sync output from the Calypso; it is the same deal as |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 with MCSI_CLK: bidirectional in pure hardware terms, but if you are not |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 changing the DSP code with your own custom patches, it is an output from the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 Calypso. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 * MCSI_RXD is the voice uplink bits input to the Calypso: the user's application |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 processor needs to feed voice uplink bits to this pin as timed by MCSI_CLK |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 and MCSI_FSYNCH. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 * MCSI_TXD is the voice downlink output from the Calypso: as the vocoder in the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 Calypso DSP decodes received downlink speech from GSM codecs into linear PCM, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 this PCM voice downlink is put out on this MCSI_TXD pin, in synchrony with |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 MCSI_CLK and MCSI_FSYNCH. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 The format in which digital voice samples are exchanged via MCSI between the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 Calypso and the user's application processor is 16-bit linear PCM, 8000 samples |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 per second, thus requiring 128 kbps of bandwidth. The synchronous serial |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 interface details are as follows: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 * When MCSI is enabled, the Calypso puts out a 520 kHz clock on MCSI_CLK, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 produced by dividing the 13 MHz master clock by 25. This clock as put out by |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 the Calypso has a perfect 50% duty cycle. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 * Given that a new pair of samples (uplink and downlink) needs to be transferred |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 once every 125 us (1/8000th of a second, for 8000 samples per second), this |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 520 kHz bit clock is further divided by 65 to produce an 8 kHz clock on |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 MCSI_FSYNCH, i.e., every 65 bits there is a frame synchronization pulse on |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 MCSI_FSYNCH. The width of this frame sync pulse is one full bit time, the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 pulse is active high, and the MCSI_FSYNCH line stays low the rest of the time. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 * Calypso outputs MCSI_FSYNCH and MCSI_TXD are updated on the rising edge of |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 MCSI_CLK and should be sampled on the falling edge of the same clock by the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 user's application processor. The MCSI_RXD input is sampled on the falling |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 edge of MCSI_CLK by the Calypso, and should be updated on the rising edge of |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 the same clock by the user's application processor. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 * Each voice sample (both uplink and downlink) is transferred from the most |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 significant bit to the least significant bit (MSB first), starting with the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 clock cycle immediately following the frame sync cycle, i.e., the cycle in |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 which MCSI_FSYNCH is asserted by the Calypso. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 * Given that each frame is 65 bits long (520 kHz bit clock divided by 8 kHz |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 frame rate) and that 16 bit slots out of every frame are used to transfer |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 voice sample bits, plus one bit slot for frame sync, it follows that 48 bit |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 slots out of every frame are dummies. The Calypso puts out 0 bits on MCSI_TXD |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 in all bit slots that don't carry voice sample bits. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 A graphical depiction of what I just described verbally can be found on page |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 3074 of this TI OMAP document: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 ftp://ftp.freecalypso.org/pub/ARM/OMAP/sprugn4r.pdf |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 Calypso MCSI corresponds to what this OMAP document calls "Mode 1", i.e., |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 Figure 21-14 at the top of the page, NOT the other one below it. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 Enabling and disabling MCSI for digital voice |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 ============================================= |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 TI's DSP ROM code supports two modes of operation in which MCSI is activated, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 called "Bluetooth cordless" and "Bluetooth headset". In the "BT cordless" mode |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 the voice path is connected between the chipset's native analog voice hw and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 MCSI, with GSM out of the picture; in the "BT headset" mode the voice path is |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 connected between the GSM vocoder and MCSI, with the local analog voice hw out |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 of the picture. The latter "BT headset" mode is the only one which we currently |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 support in FreeCalypso; the "BT cordless" mode does not work properly as of this |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 writing - the step of enabling the Voice Band Codec block in the Iota ABB for |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 this mode is currently missing. Proper support for the "BT cordless" mode can |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 be added if a real need for it ever arises, but it would take some work, and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 right now there is no business case for it. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 In TI's TCS211 firmware architecture (see TCS211-fw-arch document) entry into |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 and exit from these "Bluetooth" MCSI voice routing modes is handled via the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 RiViera Audio Service fw component, specifically its Audio Mode facility, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 usually via the audio_full_access_write() API call. When asked to switch voice |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 routing modes, this RV Audio Service component sends an MMI_AUDIO_MODE_REQ |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 message to L1, the L1A component passes the request to L1S, and L1S finally |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 twiddles the magic control bits in the DSP API RAM. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 In FreeCalypso we currently provide two ways for the end user to enter the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 "BT headset" mode for digital access to GSM voice: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 * The original way is the AT@VPATH=n command, which provides "raw" access to |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 the RV Audio Service's voice routing mode switch call. Setting AT@VPATH=2 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 enters the "BT headset" mode, AT@VPATH=0 returns to the normal "GSM only" |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 mode (MCSI disabled), and AT@VPATH=1 enters the currently not-working |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 "BT cordless" mode. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 * The new way is the session-long AT@VSEL=n boolean setting. In the default |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 AT@VSEL=0 mode the firmware functions like before (MCSI disabled, voice calls |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 go to the analog voice hw), but if your application needs the digital voice |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 interface instead of analog, you can set AT@VSEL=1 once at the beginning of |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 your modem session. In this AT@VSEL=1 mode, whenever a GSM voice call is |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 connected (dialed or answered), the MCSI clocks are switched on (MCSI_CLK and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 MCSI_FSYNCH outputs come to life) and the "BT headset" voice routing mode is |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 entered at the appropriate point in the call establishment process; when the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 call disconnects (either side hangs up), MCSI is turned off. The new logic |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 internally performs the equivalent of AT@VPATH=2 and AT@VPATH=0 at appropriate |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 times. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 Why does one need our new AT@VSEL=1 logic for dynamic switching into and out of |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 MCSI "BT headset" mode, why not simply set AT@VPATH=2 upfront and run with it? |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 Two reasons: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 1) If MCSI is enabled continuously and not just when needed during voice calls, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 the DSP never goes quiescent during idle periods, and the Calypso is not |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 allowed to enter deep sleep. Both of these factors are detrimental to proper |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 power management - the whole idea is that when a GSM modem is idle (not in a |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 call, but listening to paging and ready to accept incoming calls), most of |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 the hw needs to be powered down as much as possible, to reduce power |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 consumption to a minimum and prolong standby battery life. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 2) There is a bug in the DSP code (present in the ROM and not corrected by the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 patches we are using) that manifests if MCSI is already running when the very |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 first voice call after system boot is connected. Our AT@VSEL=1 mechanism |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 reliably avoids this DSP bug (ensured by the timing sequence of when we turn |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 on the vocoder and when we turn on MCSI), and it is my (Mother Mychaela's) |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 guess that TI probably missed this DSP bug because their own Bluetooth |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 handling code most likely worked very similarly to my AT@VSEL=1 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 implementation. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 Thus the short story is that if you are using the digital voice interface via |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 MCSI, just set AT@VSEL=1 at the beginning of your modem session, and whatever |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 hardware you connect to MCSI needs to be OK with the clocks (MCSI_CLK and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 MCSI_FSYNCH) appearing only during active voice calls, and being off at other |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 times. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 It should also be noted that the new AT@VSEL=1 mechanism is implemented properly |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 only in our new hybrid firmwares, i.e., Magnetite hybrid and Selenite. The |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 legacy configs (l1reconst etc) using the blob version of G23M PS and ACI from |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 Openmoko (maintained only for regression testing and debugging purposes) also |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 implement the AT@VSEL command, but the AT@VSEL=1 mode will work somewhat |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 erratically in that version: the modem may enable MCSI at the wrong time, and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 it will sometimes fail to turn it off at the end of a call. The implementation |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 of this functionality resides entirely in the "high-level audio driver" module |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 in ACI, this module is different between TCS2 and TCS3 versions of ACI, and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 there is no justification for expending the effort to make the new feature work |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 in the old version of ACI: it is an entirely new feature added in FreeCalypso, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 not present in any old Calypso modems, hybrid fw is the way forward in FC, thus |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 we only need to support new features in our hybrid firmwares. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 The alternative approach of tapping VSP |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 ======================================= |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 MCSI is not the only digital voice interface in the Calypso chipset: there is |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 also another interface called VSP (Voice Serial Port), which is a private |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 interface between Calypso and Iota chips. Because it was always intended to be |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 a private interface internal to the core chipset, not an external application |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 interface like MCSI, none of the standard Calypso-based phone or modem board |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 designs expose it in any accessible way - instead it goes from one BGA to the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 other on inner PCB layers with zero accessibility for probing. Our FCDEV3B is |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 no exception in this regard, as our modem core is based on a commercial modem |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 design from a decade before our time. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 Because it took us a very long time to get MCSI working as a practically usable |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 digital voice interface (the new AT@VSEL=1 mechanism is the key, without this |
12
9baf6215285b
Calypso-digital-voice: typo fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
184 firmware piece MCSI is not practically usable), much thought has been given |
10
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 earlier to the alternative idea of tapping into VSP. There are two |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 possibilities with that one: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 1) Given that Calypso VSP is a clock slave (it expects the ABB chip to provide |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 the clock and frame sync signals), those who desire their digital voice i/f |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 to be a PCM slave (not a PCM master like TI's "BT headset" function over |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 MCSI) will likely be very tempted to disconnect Calypso VSP from the Iota |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 chip entirely and to connect it to their own application instead. However, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 in the absence of source code for the DSP ROM this approach would be |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 incredibly risky (if the DSP is not too happy with the non-Calypso-sourced |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 timing you feed to the VSP, how are you going to debug it deep within the |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 DSP black box?), and I (Mother Mychaela) consider it so risky that if anyone |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 wants to do it, you will be entirely on your own - don't expect any help |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 from me. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 2) A much safer approach would be to keep the VSP clock and frame sync |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 connections between Calypso and Iota chips, but also make them available |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 externally, i.e., have your application logic sync itself to these clocks. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 Voice downlink could then be received just by passively tapping VSP lines, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 and sending your own voice uplink via VSP would require cutting only the one |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 line that carries voice uplink bits from Iota to Calypso. It would then |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 effectively be just like MCSI (a PCM master to the user's application), but |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 without requiring any support in the firmware, instead being completely |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 invisible to the Calypso firmware and to the DSP. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 However, because we don't have any board on which VSP signals are accessible to |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 probing, there are several unknowns with this interface: |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 * Is the VSP clock produced by the Iota chip 500 kHz (13 MHz master clock |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 divided by 26) or 520 kHz (same master clock divided by 25)? The available |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 Iota datasheet says 500 kHz, but if that is correct, how is the frame sync |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 handled? 500 kHz does not divide evenly by 8 kHz. Does Iota's clock + frame |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 sync output alternate between 62-bit and 63-bit frames, producing an 8 kHz |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 frame rate on average? Sounds messy and convoluted... |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 * It is not clear at all exactly when Iota's VSP clocks are started and stopped, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 and whether the bit clock runs continuously during an active call (like |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 MCSI_CLK does), or if it is gated on only for those bit slots that carry |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 actual voice sample bits. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 If we are going to produce a new FreeCalypso modem based on our current FCDEV3B, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 but repackaged into some end use form factor, as things stand today (2019-03), |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 we are going to use MCSI rather than VSP for the digital voice interface. While |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 MCSI has definitely been a huge hassle and requires the user to issue one extra |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 setup command (AT@VSEL=1) at the beginning of each modem session, at least it |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 is now a known beast, and a known-working one. Committing to VSP in a |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 commercial product design without ever having seen these VSP signals on an |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 oscilloscope would be very irresponsible; if someone really wishes to go with |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 VSP instead of MCSI, the responsible approach would be to first design and build |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 another development board with VSP signals brought out for experimentation, and |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 only then possibly use it in a commercial product design after it becomes a |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 known beast. |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 From the standpoint of pure curiosity, I would be very interested in a |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 development board with VSP access, just to answer the above questions and fill |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 that gap in my Calypso knowledge. But switching to a more practical hat, |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 spending some 10 to 15 kUSD just to satisfy that curiosity would be very |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 difficult to justify - thus there is a very strong chance that VSP will never |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 be explored, Which is not really a problem at all, as for a practically usable |
17003ecbb9fc
Calypso-digital-voice article written,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 external digital voice channel we now have working MCSI. |