FreeCalypso > hg > freecalypso-docs
view RFFE-notes @ 99:c28a1518d268
Speech-codec-selection: document AT%SPVER
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 06 Jun 2023 03:54:53 +0000 |
parents | dd94e04b9539 |
children |
line wrap: on
line source
Every GSM phone handset or modem that is based on our beloved Calypso+Iota+Rita chipset also contains a functional section (can be a single component or a group of components) which we call the RFFE: radio frequency front end. This RFFE is the functional block that provides frequency-filtered radio Rx paths from the antenna interface to Rita LNA inputs, as well radio Tx paths from the PA to the antenna. The choice of particular RFFE implementation (specifically in the Rx direction) determines the device's GSM frequency band capabilities, i.e., whether your GSM phone or modem is dual-band, triband or quadband. The least band-capable Calypso-based devices we are aware of are dual-band, i.e., we are not aware of anyone having ever made a Calypso-based GSM device that supports only one GSM frequency band. The lowest-end configuration is single-region dual-band, supporting one low band and one high band, either EU bands or US bands. The next step up is triband, supporting two EU bands and one US band or vice-versa, and the best RFFE designs are quadband, supporting all 4 possible GSM frequency bands. There are two particular RFFE designs that enjoy the privileged status of being most native to FreeCalypso: TI's original Leonardo+ quadband reference design and Openmoko's derivative design that is very polished, but is only triband. In absolute historical terms TI's Leonardo existed first and OM's version was a later derivative work, but for FreeCalypso the two got somewhat reversed with our peculiar timeline: * The Mother bought her first Openmoko Neo FreeRunner in 2011, and lots of other people in the community have been playing with Openmoko devices - whereas TI's Leonardo development board has always been legendary unobtainium. * Openmoko's PCB layout has been liberated (freely published) in 2015, whereas TI's Leonardo PCB design remained as elusive as ever. * Between 2015 and 2017 we've successfully produced our FCDEV3B board based on Openmoko's PCB layout, featuring OM's triband RFFE, and we gained a lot of experience working with this RFFE as we recreated the previously lost theory and tools for RF calibration. * In December of 2019 I was searching the world high and low for a real TI Leonardo board so I could do some CMU200 experiments with its RFFE, but instead I found the historical commercial Calypso modem module which we call Tango, which is nothing less than a mass-produced version of the core of Leonardo, the full quadband version. The discovery of Tango modules has finally brought TI's original quadband RFFE design back to its rightful place at the top of the quality hierarchy among Calypso GSM devices, and we are finally able to study it as much as we have studied OM's triband version in the preceding years. Leonardo and Openmoko RF sections ================================= The RF sections of both Leonardo/Tango and Openmoko/FCDEV3B consist of TI's Rita RF transceiver, a standalone PA (RF3133 or RF3166) and the part we focus on as the RFFE. The best way to illustrate the essential divisions and interconnections between components is with a block diagram: +-------+ | RF PA | | | +--------------- HB Tx path ------+-->>>--+------+ | +-------- LB Tx path ------+-->>>--+---+ | | | | | | | +---+------+---+ +-------+ | | | HB Tx LB Tx | | | | | +-+--+--+ | Rita | | RFFE | | | | | | LB LNA-+----- LB Rx path ---------------+- -+-- ANTENNA | DCS LNA-+---- DCS Rx path ---------------+- | | PCS LNA-+---- PCS Rx path ---------------+- | | | | | +--------------+ +-------+ HB = high bands (DCS & PCS, 1800 & 1900 MHz) LB = low bands (GSM850 & EGSM, 850 & 900 MHz) The block marked as RFFE on the above block diagram is the one that differs between Leonardo/Tango and Openmoko/FCDEV3B, and it is this block that makes one quadband and the other only triband. In the original Leonardo+ quadband reference design the RFFE block is a single component (Epcos M034F) that is called a Front End Module (FEM), whereas Openmoko replaced this integrated FEM with an Antenna Switch Module (ASM) plus 3 discrete SAW filters. Both RFFE designs implement the following functions: * They switch the antenna interface between Rx and Tx - a GSM MS never needs to receive and transmit at the same time, thus an antenna switch is used instead of more expensive duplexer or diplexer arrangements. * They accept RF Tx signal from one of two separate inputs (one for LB, one for HB), and they provide the necessary low pass filters to suppress unwanted harmonics present in the PA output. * Rx signals are fed to the RF transceiver on one of 3 separate Rx signal paths as appropriate for the band in which reception takes place (LB, DCS or PCS), and for each supported band the incoming signal is passed through an appropriate SAW - a very narrow frequency-specific bandpass filter. RF Tx paths =========== There are only two RF Tx paths: one for GSM850 and EGSM (850 & 900 MHz) bands combined, and the other for DCS and PCS (1800 & 1900 MHz) bands combined. Thus the RF Tx section of a Calypso+Iota+Rita GSM phone or modem is exactly the same between dual-band, triband and quadband designs - only Rx paths differ. Both Leonardo/Tango and Openmoko/FCDEV3B use PAs from the same family by RFMD, just different evolutionary versions: Leonardo and Tango use the slightly older RF3133 PA whereas OM and FCDEV3B use the slightly newer RF3166. The two PAs have exactly the same controls, and they are wired in exactly the same way between Leonardo and Openmoko. Besides PA controls, there are two very important Tx path control signals that are driven by Calypso and go to the FEM or ASM: RFFE LB & HB Tx switch controls. Both the M034F FEM used in Leonardo and Openmoko's triband ASM have two baseband-controlled internal switches selecting between Rx and Tx. When these switches are inactive (no voltage applied), both LB and HB RF paths are set up for Rx; one of these Tx switches enables LB Tx path and the other enables HB Tx path. There is also a third switch present both in M034F and in OM's ASM, but that one is for different Rx bands as explained later in this article. RF Rx paths =========== TI's Rita RF transceiver supports all 4 GSM frequency bands internally for both Rx and Tx, but in the Rx direction it has only 3 LNA inputs. GSM850 and EGSM share the same LNA input, whereas each of DCS and PCS gets its own. There is also a requirement that whenever reception takes place in a given band, the Rx signal has to pass through a SAW filter specific to that band: thus dual-band designs have two SAW filters in them somewhere, triband designs have 3 and quadband designs have 4 of them. Triband design with Rita and other similar transceivers like Silabs Aero I/I+ is straightforward: the antenna switch module (ASM) puts out 3 Rx paths corresponding to LB, DCS or PCS, each of the 3 is passed through its own SAW filter, and then they go to the 3 LNA inputs. SAW filters in the DCS and PCS Rx paths are unambiguous, whereas the third SAW filter in the LB Rx path can be populated in one of two ways: populating an EGSM downlink band filter produces a tri900 GSM device, populating a GSM850 DL band filter produces a tri850 GSM device. Openmoko's triband RFFE which we've reproduced on our FCDEV3B is built in exactly this manner. Quadband design with the same Rita transceiver is more complicated: there need to be a total of 4 SAW filters, but they need to go to just 3 Rita LNA inputs. One can make a discrete design: use an antenna switch module that puts out 4 switched Rx paths, pass them through 4 discrete SAW filters, and then somehow combine the outputs of GSM850 and EGSM filters onto the single LB LNA input. Huawei's MG01GSMT design appears to do something similar (except that it supports a non-standard band in the place of GSM850), but I don't really understand how this magic works in terms of PCB layout. The M034F integrated FEM that was chosen by TI Back In The Day is much neater: it is a quadband FEM, containing 4 SAW filters inside, but it was specifically designed to interface with transceivers like TI Rita or Silabs Aero that have 3 Rx input paths - thus the magic that combines the output of GSM850 and EGSM SAW filters is contained inside this FEM component. We do have an M034F.pdf datasheet for this magic component (came along with Calypso and Leonardo docs), and the block diagram on page 6 shows the magic quite clearly: there is a baseband-controlled switch selecting between EGSM Rx and GSM850 Rx (in addition to the two usual Tx switches), this switch directs the low band Rx path toward one of two different SAW filters, and the outputs of those two filters are then joined. The high band Rx path always goes to both DCS and PCS band SAW filters, and each of those high band Rx SAW filters gets its own output going to its own dedicated Rita LNA input. Note the lack of a baseband-controlled switch between DCS and PCS in the high band Rx path! For a long time prior to the 2019-12 breakthrough I was concerned about this lack of a baseband-controlled switch between DCS and PCS in the high band Rx path: this switch is present in every triband RFFE design I am familiar with, including the one we got from Openmoko, and I was concerned that feeding the high band Rx path to both DCS and PCS SAW filters without a switch would introduce a 3 dB penalty into these high band Rx paths. But when I got my hands on the newly discovered Tango modem modules, looked at the GMagic numbers written into their FFS as part of the manufacturer's production calibration and then independently verified them with our CMU200, all fears were dispelled: the Rx performance of this M034 FEM in all 4 bands is exactly the same as our current Openmoko-based triband RFFE, with GMagic around 200 half-dB units. RFFE switches and control signals ================================= Both our new quadband M034F and our more mature OM-based triband ASM have 3 baseband-controlled switches inside: two Tx switches (one for LB Tx, one for HB Tx) and one Rx band steering switch. The Rx switch is entirely different between the two RFFE designs: * Our OM-based triband ASM has an Rx path steering switch between DCS and PCS just like every other triband RFFE design I have seen, and of course being triband, it has no capability of switching between GSM850 and EGSM. * Epcos M034F has a baseband-controlled Rx path steering switch between GSM850 and EGSM (seems unavoidably necessary in this architecture), but it has NO switch between DCS and PCS - instead both high band Rx paths are "always on". All 3 RFFE switches are controlled by Calypso TSPACT signals passed through PNP transistors that act as inverting buffers. The assignments of which Calypso TSPACT controls which RFFE switch were made by people who came before us, and these assignments are different (incompatible) between Leonardo/Tango and Openmoko/FCDEV3B. Leonardo RFFE control signal assignments (used on Tango) are as follows: TSPACT1 = Tx high bands TSPACT2 = Tx low bands TSPACT4 = Rx GSM850 band Openmoko's version (used on FCDEV3B) is as follows: TSPACT1 = Rx PCS band TSPACT2 = Tx high bands TSPACT4 = Tx low bands In the now-seemingly-unlikely event that we end up building a new FreeCalypso GSM device (not Tango) with M034F quadband FEM, we have two sensible choices for TSPACT control signal wiring. One option would be to copy Leonardo and Tango, and the other option would be to use the following novel assignment: TSPACT2 = Tx high bands TSPACT4 = Tx low bands TSPACT5 = Rx GSM850 band The latter option can be made firmware-compatible with our current OM-based triband RFFE, by having our firmware drive the signals as follows: TSPACT1 = Rx PCS band TSPACT2 = Tx high bands TSPACT4 = Tx low bands TSPACT5 = Rx GSM850 band Right now this consideration is purely academic because there presently exists no business case for building new FreeCalypso hardware, given the existence of Tango modules. RF magic glue: Rx paths ======================= RF signal paths coming out of the 3 Rx SAW filters in our current OM-based design or out of M034F Rx pins are differential pairs; Rita LNA inputs to which these signal paths go are also differential. But these RF signal paths are not simple pairs of PCB traces going from one chip to the other, instead every existing design features "RF magic glue" matching networks in these signal paths, made up of inductors and/or capacitors. These "magic glue" LC networks exist in a seemingly endless number of permutations: every historical design I got a chance to examine exhibits a slightly different LC network topology among the 3 Rx signal paths that are present. Sometimes the same LC network topology is replicated for all 3 Rx signal paths, othertimes the same board will feature different LC network topologies for different Rx band signal paths. Openmoko's Rx path "magic glue" networks look neat and tidy, with the same topology in all 3 Rx band signal paths. This topology consists of a series inductor in each trace (6 of them in total for 3 differential pairs) and shunt capacitor footprints both before and after these series inductors - but all of these shunt capacitor footprints are left unpopulated. Inductor values are naturally a little different for each frequency band. Prior to the discovery of Tango modules, when I was thinking about designing and building new FreeCalypso hw with our long-desired M034F quadband FEM, I had the big dilemma of deciding what topology should be implemented for the "RF magic glue" matching networks. OM's version looks very neat and tidy and it is known to work well with OM's triband RFFE, but would it still work well if that triband RFFE were to be replaced with M034F? The answer is very uncertain, especially considering that the output impedance specifications given in our only available M034F.pdf datasheet look very weird. The discovery of Tango has saved the day in this department. The "magic glue" Rx path matching networks implemented on this module are exactly the same as what is depicted on our available Leonardo schematics (the ones we've had since 2011), and the fact that these modules once were a successful mass-produced commercial product gives a huge confidence boost to what was previously just a schematic drawing of completely unknown working quality. These Leonardo Rx path matching networks score very low on the scale of understandability (and they feature entirely different topology for each of the 3 Rx band signal paths), but the fact that we have a working reference in the form of Tango is all that matters at the end of the day... RF magic glue: Tx paths ======================= RF Tx signal paths running from the PA to the FEM or ASM also pass through matching networks made up of inductors and/or capacitors. The two versions of most interest to FreeCalypso are once again Leonardo and Openmoko. The version of Leonardo that has been mass-produced as Tango has the same T network topology in both LB and HB Tx paths: PA_OUT-----C1--+--C2-----FEM_IN | C3 | GND LB: C1=C2=47pF, C3 is unpopulated HB: C1=C2=12pF, C3 is unpopulated It needs to be noted that with the cap-to-ground leg unpopulated, the T network is degenerate and is equivalent to a single series capacitor. It needs to be understood that TI were not in the business of selling finished GSM phones or modems - instead their primary business was selling chips, and their secondary business was providing support for these chips, support that included reference and development boards. Because Leonardo was a reference board rather than a finished product, it appears that TI designed this board with a provision for a possible matching network - the comment on the schematic drawing says "PA matching possible" - but apparently no matching was needed, hence a degenerate T network was populated. It is certainly a little strange that the makers of Tango kept this degenerate T network and did not replace it with a single series capacitor, but what do we know... Openmoko used pi networks instead: LB: PA_OUT-----+--10nH--+-----ASM_IN | | 1pF NC | | GND GND HB: PA_OUT-----+--33pF--+-----ASM_IN | | NC NC | | GND GND The HB pi network is degenerate, reduced to a single series capacitor, and the LB pi network is almost degenerate given how small that 1 pF cap to ground is. But pi networks have this advantage: a degenerate pi network is reduced to just one component, whereas a degenerate T network requires two components to be populated. It is also worth noting that both "from" and "to" components connected by these matching networks are different between Leonardo and OM: Leonardo and Tango use RF3133 PA, OM's version has RF3166; Leonardo FEM is M034F, OM's version has a Darfon ASM instead. In the now-seemingly-unlikely event that we end up building a new FreeCalypso GSM device (not Tango) with M034F quadband FEM, which PA are we going to use, and what "RF magic glue" matching network topology for PA-to-FEM RF Tx paths? The Mother's current preference is to use RF3166 and OM-style pi networks, preferably with a consultation with some better-than-me RF expert - but all such plans are extremely nebulous, written with forks on water.