Connecting the SP03 Speech Module to the Atom 

Introduction
One of the methods the SP03 modules uses for communication is the I2C bus . This example shows how to connect the SP03 to the BasicMicro's Atom. The SDA (data) and SCL (clock) lines are connected to pins P8 (pin13) and P9 (pin14) on the Atom. These are the pins used in our example for the I2CIN and I2COUT commands. 
The Atom's internal 5v regulator is not suitable for powering much external circuitry. I therefore recommend you use a separate 5v regulator.

Circuit Schematic for connecting the SP03 Speech Module to the BasicMicro Atom

The schematic above shows 4k7 pull-up resistors on the SCL and SDA lines to Vdd. 
For greater noise immunity, I recommend pulling up to the SP03's 5v supply instead (so as not to place any more load on the Atom) and using 1k8 resistors.

Software
The following shows how easy it is to use the Atom with the Speech Module, a single line command is all that is required to speak any of the 30 pre-loaded phrases. Your own text strings of up to 80 characters in length may be sent to the synthesizer for conversion to speech.
The sample code below can be downloaded here.

'***********************************************************
'**                                                       **
'**    SP03 Demonstration Software for the Basic Atom     **
'**                                                       **
'**             Copyright 2002 - Devantech Ltd            **
'**     Commercial use of this software is prohibited     **
'**     Private and educational use only is permitted     **
'**                                                       **
'**        Written by Gerald Coe - October 2002           **
'**                                                       **
'***********************************************************

SDA   Con P8    ' Define Data pin
SCL   Con P9    ' Define Clk pin 
SP03   Con 0xC4   ' SP03 I2C Address
CmdRegCon 0     ' SP03 Command register
VerRegCon 1     ' SP03 Version register
LDBUF Con 0x00  ' NOP command is Load buffer
SPKBUFCon 0x40   ' Speak buffer Command

Stat   Var Byte ' Status byte from SP03

Main
i2cout SDA, SCL, SP03, CmdReg, [21]
GoSub   Wait4Shutup

i2cout SDA, SCL, SP03, CmdReg, [LDBUF, 0, 5, 3, "Hello Gerry, have a cuppa", 0]
i2cout SDA, SCL, SP03, CmdReg, [SPKBUF]
GoSub   Wait4Shutup

i2cout SDA, SCL, SP03, CmdReg, [LDBUF, 0, 5, 3, "Messages can also b"]
i2cout SDA, SCL, SP03, CmdReg, [LDBUF, "e split on more than one line", 0]
i2cout SDA, SCL, SP03, CmdReg, [SPKBUF]
GoSub   Wait4Shutup

Forever: goto Forever
End

Wait4Shutup:
i2cin SDA, SCL, SP03, CmdReg, [Stat]
if stat>0 then wait4shutup
return

You can find more information on the SP03 here