comparison FCDEV3B-repackaging @ 2:020df28341d0

FCDEV3B-repackaging article written
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 10 Oct 2018 07:28:15 +0000
parents
children 4f873ec004f6
comparison
equal deleted inserted replaced
1:068a27407d75 2:020df28341d0
1 Repackaging FreeCalypso modem into different physical form factors
2 ==================================================================
3
4 As of this writing, our FreeCalypso Triband Modem Solution has reached the
5 status of a finished product: it is no longer experimental or developmental,
6 it is now fully fit for operational use on live public GSM networks in end user
7 applications that need a standards-compliant GSM+GPRS modem. However, at the
8 present moment it is only available in the physical form factor of a development
9 board (FCDEV3B) that was originally designed to serve as a software/firmware
10 development platform, and as such it is not ideally suited for use as an end
11 product. For end use applications it would be highly desirable to take our
12 proven FC Triband Modem Solution (FC-TMS) as realized on the FCDEV3B and
13 repackage it into other physical form factors. This repackaging can be done
14 in two ways:
15
16 Approach 1 (strongly preferred): the party who desires to have our FC-TMS in a
17 particular form factor gets in touch with FreeCalypso Central, engages in a
18 discussion with us to arrive at the new form factor to be implemented (it needs
19 to satisfy your requirements and be feasible for us to implement), then funds
20 the cost of PCB layout labor to turn the new form factor modem into reality.
21 More specifically, we would do the design at the schematics+BOM level while the
22 the PCB layout step would have to be outsourced at cost.
23
24 Approach 2 (NOT preferred, but can sometimes be agreed to in limited cases):
25 someone else does the repackaging work under their own control.
26
27 In the case of Approach 1 the new modem product will always be guaranteed to
28 work flawlessly and be fully compatible with our FreeCalypso sw and fw
29 architecture because in this case the hardware design is personally supervised
30 by the Mother of FreeCalypso and must receive her approval prior to being
31 released to layout and then to fabrication. In the case of Approach 2 this
32 assurance is lacking. This document provides some technical guidelines that
33 MUST be followed in order for a new modem hw product to stand a chance at being
34 compatible with FreeCalypso; anyone who follows Approach 2 against our
35 recommendation but still wishes to have a chance at receiving support from us
36 MUST follow these design guidelines.
37
38 LEGAL NOTICE: Following these technical guidelines does NOT by itself grant you
39 a license to use our FreeCalypso trademark on your hardware products; this
40 trademark is personally owned by Mychaela N. Falconia and only she has the
41 authority to license its use at her sole discretion. Similarly our agreement
42 with GSMA does NOT allow us to sublet any part of our IMEI number range to any
43 other parties; any IMEI number ranges that may be allocated by GSMA to
44 FreeCalypso products may ONLY be used for those products that are physically
45 produced by Falconia Partners LLC from start to finish and not any others.
46
47 Basic technical guidelines
48 ==========================
49
50 The purpose of these guidelines is to make it possible for the same firmware
51 build configuration to support both our existing FCDEV3B and various
52 repackagings of the underlying core modem solution (FC-TMS), i.e., to have the
53 same official FC Magnetite firmware builds for target fcdev3b run not only on
54 the original development board, but on all physical repackagings of the same
55 core modem solution. To make such firmware reuse possible, the following
56 hardware design constraints MUST be followed:
57
58 * The flash+RAM chip must be the same Spansion S71PL129NC0HFW4B as used on our
59 FCDEV3B, and it must be wired the same way: first flash chip select on Calypso
60 nCS0, RAM on nCS1, second flash chip select on nCS2. The flash reset line
61 needs to be wired the same way as on FCDEV3B V2, otherwise Calypso sleep modes
62 will be broken. We realize that this flash and RAM capacity (16 MiB and
63 8 MiB, respectively) is extreme overkill for typical modem applications
64 outside of development, but supporting multiple flash chip types would
65 introduce a configuration management burden which we are not willing to
66 take on.
67
68 * Calypso's unused DSR_MODEM/LPG pin was left unconnected in Openmoko's version
69 but on our FCDEV3B it is tied to GND on the board. Other boards seeking to
70 be FreeCalypso-compatible need to have this pin tied to GND as well because
71 our firmware leaves this pin in its default power-up config of DSR_MODEM input
72 and does not change it to LPG output - leaving it unconnected would cause it
73 to float.
74
75 * Our firmware configures Calypso GPIO 3 as an input; GPIOs 0-2 and those
76 multifunction pins which are unused and configured as GPIOs (TSPDI/IO4,
77 BCLKX/IO6, MCUEN1/IO8 and MCUEN2/IO13) are configured as outputs. Board
78 wiring must be compatible with these directions: those pins which our fw
79 drives as outputs can be simply left unconnected, while GPIO 3 needs to be
80 sensibly driven or tied off as explained below.
81
82 * If someone needs a modem that produces an Openmoko-style application processor
83 wakeup signal (asserted by the fw when the modem needs to send something to
84 the host but is blocked by CTS being held high), this signal should be
85 connected to GPIO 0. Openmoko used GPIO 1 for this purpose, but in
86 FreeCalypso GPIO 1 is taken because we use it for the loudspeaker control
87 signal like on TI's D-Sample and Leonardo boards, hence we are moving the AP
88 wakeup signal to GPIO 0, to be implemented if and when anyone builds a modem
89 based on FC-TMS that needs to be provide such a signal.
90
91 * If your product includes a loudspeaker amplifier like on our FCDEV3B, connect
92 its on/off control input to GPIO 1, otherwise leave our GPIO 1 output
93 unconnected.
94
95 * Our fw produces a DCD modem control output on GPIO 2; if you are connecting
96 the MODEM UART channel to an RS-232 port or to a USB-serial chip with a full
97 set of modem control signals, connect DCD to GPIO 2.
98
99 * Our fw treats GPIO 3 as a DTR modem control input following TI's C-Sample and
100 D-Sample boards. If your product has a real DTR signal coming from an RS-232
101 interface or from a USB-serial chip, connect it to GPIO 3, otherwise GPIO 3
102 needs to be pulled down to GND like on Leonardo and FCDEV3B.
103
104 * If you are connecting the MODEM UART channel to a full RS-232 port or to a
105 USB-serial chip with a full set of modem control signals, you should connect
106 DSR and RI to TSPDI/IO4 and MCUEN1/IO8, respectively. Right now our fw
107 drives IO4 low and IO8 high, corresponding to DSR asserted and RI negated
108 (normal quiescent state), and connecting the signals in this way allows the
109 possibility of extending the fw to drive them in some more intelligent manner.
110
111 * Both Calypso UARTs need to be wired in an accessible way so that our standard
112 FC Magnetite firmware can be used with the AT command interface on the MODEM
113 UART and RVTMUX on the IrDA UART.
114
115 * Our fw configures the MODEM UART with hardware flow control enabled; if your
116 applications lacks RTS/CTS signals, then Calypso's CTS_MODEM signal needs to
117 be pulled down to GND so it is seen as asserted.
118
119 * Our fw configures the 4 MCSI/GPIO pins as MCSI rather than GPIO. If your
120 board does not use MCSI because you are tapping VSP instead or not using any
121 digital voice interface at all, then you should put pull-down resistors on
122 MCSI_RXD, MCSI_CLK and MCSI_FSYNCH, otherwise these signals will float.
123
124 Tapping VSP for the digital voice interface
125 ===========================================
126
127 The Calypso+Iota chipset includes an interface called VSP for Voice Serial Port;
128 per TI's design intent it is a strictly private interface between Calypso and
129 Iota chips, but it is possible to tap into this interface to get an external
130 digital voice channel. TI's official method for getting a digital voice channel
131 out of a Calypso modem is to use MCSI in their so-called "Bluetooth headset"
132 mode, however, our experiments on the FCDEV3B have revealed that this interface
133 does not work the way one would naively expect. Unless we can convince TI to
134 dig up and release the sources for the Calypso DSP ROM, which we obviously
135 cannot count on, we won't be able to use MCSI reliably until and unless we
136 undertake to fully reverse their DSP ROM code from disassembly, which would be
137 an extremely major and very costly undertaking. Because of this unfortunate
138 situation, the alternative way of tapping into VSP needs to be given
139 consideration.
140
141 Tapping into VSP is absolutely not possible on our current FCDEV3B, as the
142 signals in question are currently routed directly from one BGA to another and
143 do not come up to the surface at any accessible point. The same situation holds
144 on every other existing Calypso phone and modem known to us - after all, VSP was
145 meant to be a private chip-to-chip interface. Instead we are presenting the
146 idea of tapping VSP as a possibility for anyone who undertakes to repackage our
147 FC-TMS into some new form factor and desires a digital voice channel while at
148 it.
149
150 In TI's standard solution VSP clock and frame sync signals are generated by the
151 Iota ABB and are inputs to the Calypso DBB. Because they are inputs to the
152 Calypso, it may be tempting to disconnect them from the ABB and have them
153 originate from an external source instead - however, TI's DSP code in the ROM
154 was most certainly written with the assumption that these signals will only
155 ever be driven by their ABB and never by anyone else, hence having them come
156 from a source whose timing does not come from the Calypso can cause all kinds
157 of strangeness which we will never be able to debug properly because the DSP is
158 a mysterious black box. Therefore, my (Mother Mychaela's) stance is that if
159 you break the VSP connection between Calypso and Iota, then you are entirely on
160 your own - don't expect any help from me. Instead my idea is to tap into VSP
161 without breaking it, specifically:
162
163 * Keep the clock and frame sync connection between Calypso and Iota, with Iota
164 remaining the driver on these nets - but also bring these signals out
165 externally, so external logic can sync itself to this interface as well.
166
167 * Do likewise for the line that carries downlink voice from the DBB to the ABB:
168 let the ABB receive it and use it to drive the analogue earpiece output (which
169 would be unconnected in a digital voice application), but let external logic
170 receive it too.
171
172 * Break only the line that carries uplink voice from the ABB to the DBB: bring
173 the Iota output side on one external interface pin and the Calypso input side
174 on another external interface pin. Putting a jumper on these adjacent header
175 pins would restore TI's original configuration and allow uplink voice to come
176 from an analogue microphone connected to the ABB, and if a digital uplink
177 voice source is desired, remove the jumper and have an external source provide
178 the bits which would otherwise come from Iota's voice ADC.
179
180 The above approach would provide a usable digital voice interface that would be
181 completely transparent (invisible) to the Calypso DSP and even to the ARM-side
182 firmware, hence it should work without any nasty surprises.