MCSI breakthrough

Mychaela Falconia mychaela.falconia at gmail.com
Thu Mar 28 21:31:15 UTC 2019


Hi Rafael!

> I read the document. Which kind of interface could I use to connect to
> the MCSI pins and be able to receive the audio samples in a computer?

This is the difficult part: I have looked around, and I was not able
to find any easy way to connect a PCM master interface (be it our
Calypso MCSI or any other vendor's) to an ordinary PC or laptop.  No
one makes any kind of ready-made device that would go from USB (or any
other "ordinary" computer interface) to a PCM slave that can be
connected to an external PCM master like our MCSI.  We've got FTDI
adapters that can go from USB to UARTs, to JTAG, to a SPI master
(driving a SPI slave such as an EEPROM or flash chip) and even to an
8-bit microprocessor bus, but nothing that can connect a PC or laptop
to a PCM interface like the typical digital voice interfaces found on
GSM modems, not just ours but also the mainstream proprietary ones.

For this reason the target audience for the digital voice interface on
FreeCalypso modems is not individual personal tinkerers who are playing
with a development board connected to a PC or laptop, but larger system
integrators, people who are designing and building some complex systems
of their own, who need to integrate a cellular modem module into
whatever larger system they are building, and who are considering
FreeCalypso as an alternative to the mainstream proprietary solutions.

There is a whole ton of "half-free" smartphone projects out there:
someone sets out to design and build their own smartphone, they make
the application processor subsystem fully free and libre, but they use
a proprietary black box modem module for the cellular functionality.
My goal is to convince at least one of those numerous "half-free"
smartphone projects to make their solution fully free instead of
"half-free" by using our FreeCalypso modem instead of a proprietary
one.  Some of these existing "half-free" smartphone projects
(ZeroPhone) use their proprietary modem modules with analog voice
interfaces, but most of the fancier "half-free" smartphone projects
use modem modules with digital voice interfaces.

Some of those "half-free" smartphone projects out there use TI OMAP
processors for the AP subsystem, and they use mainstream proprietary
modem modules that put out their digital voice channel on a PCM master
interface just like our Calypso MCSI.  In these "half-free" smartphone
projects they take the PCM master digital voice i/f coming out of the
modem and connect it to one of McBSP ports on the OMAP.

Given my goal of proving FreeCalypso as a viable alternative to those
disgusting proprietary modem modules, I have been toying with the idea
of connecting our MCSI to McBSP on an OMAP board to make the point.
The off-the-shelf board I chose for this purpose is BeagleBoard-xM: it
features a DM3730 (OMAP3 variant) processor, it has been used as a
development platform by some of these "half-free" smartphone projects
I am talking about, and it is readily and cheaply available from
Digi-Key and other distributors.

Connecting our Calypso MCSI to the DM3730 processor on the BeagleBoard
requires a level-shifting adapter: Calypso I/O pins are 2.8 V, whereas
DM3730 I/O pins are 1.8 V and not tolerant of any higher voltages.  I
have designed my own little adapter PCB that plugs into the expansion
connector on the bottom of the BB-xM, I have got these little PCBs
fabricated and got them on hand now, and if anyone in the community
would like to take this BeagleBoard-to-FreeCalypso project further, I
can easily populate one of these adapter boards and send it to you.

If Rafael or anyone else in the community would like to take on this
project, the hardware is already taken care of: I will send you the
little adapter that connects the BB-xM to our Calypso MCSI, and if the
price of the BB-xM itself is too much for you, I can send you that
board as well.  However, you will need to do the software work for
which I have no time myself: you will need to figure out how to
configure the DM3730 pin multiplexing in the BB-xM Linux kernel (or
perhaps in U-Boot) to connect the external pins to the right McBSP and
UART cores inside, you will need to make the Linux kernel attach the
McBSP driver to the selected McBSP core and configure that McBSP
driver correctly for our PCM frame format, and you will need to figure
out whatever ALSA or other userspace magic would be needed in order to
actually exchange voice samples over the interface.  It is all software
work, absolutely no hardware hacking skills or tools are needed, but
this BeagleBoard Linux sw work would require far more brain cycles of
me than I can spare, which is why I am punting it off to the community.

Another idea would be to use an AT91SAM7S board, also very cheap and
readily available.  The AT91SAM7S processor is an ARM7 SoC just like
the Calypso, running OS-less bare-metal firmware, and the selection of
peripherals include UARTs, a USB device controller and a synchronous
serial controller that can be used for our MCSI.  You could write fw
for this AT91SAM7S processor that talks on the synchronous serial
interface on one side (to be connected to Calypso MCSI) and passes
these voice samples over a UART or over USB on the other side.  Once
again, the hardware is already there (the AT91SAM7S has 3.3 V I/O pins
that can be connected directly to our FCDEV3B), but someone would have
to do the non-trivial software work.

So, do we have any takers for implementing a proof-of-concept system
for talking to our Calypso digital voice interface?

Hasta la Victoria, Siempre,
Mychaela aka The Mother


More information about the Community mailing list