Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

AN510 Using SPI protocol with pressure sensor modules

1 USING SPI PROTOCOL WITH PRESSURE SENSOR MODULES

This application note describes the possibility of communication between a microcontroller and MEAS
Switzerland's pressure sensor modules (MS55XX series) via SPI protocol.
SPI stands for Serial Peripheral Interface. It is frequently used when few I/O lines are available, but
communication between two or more devices must be fast and easy to implement.
SPI is a synchronous protocol that allows a master device to initiate communication with a slave device. It is
implemented in many standard microprocessors (Microchip, Silicon Laboratories, Atmel, ST,…) by a hardware
module.
The great advantage of using this protocol is it simplifies the communication with the sensor module. In fact,
there is no need to generate the serial clock, as it is generated by the microcontroller. You only have to place
data and commands in a buffer and the microcontroller send it. (Same utilization than an USART)

This protocol needs a minimum of three lines between the master and a slave. An additional line must be added
for each slave in multi-slave operations in order to select it.

MASTER

MISO

Shift register MOSI Shift register

R/W R/W
SCLK
Control Control

The communication between a master and a slave is always a data transfer. When the master sends
something, it will receive a data at the same time. If the data received is not read, it will be lost at next data
transfer. When the master wants to receive something, it has to send a dummy data to shift the answer placed
in the slave’s shift register. For more details about SPI, refer to microcontroller datasheet.

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 1/9
AN510 Using SPI protocol with pressure sensor modules

2 HARDWARE: COMMUNICATION BETWEEN THE MASTER AND ONE SLAVE

OSC

OSCin MCL

MISO or SDI DOUT MS 55XX


sensor
DIN
MOSI or SDO
Microcontroller
SCL SCKL

With:
MISO = Master In & Slave Out
MOSI = Master Out & Slave In
SDO = Serial Data Out
SDI = Serial Data In
SCL or SCKL = Serial Clock
OSC = Oscillator at 32.768 kHz
For ex: SG3030JC

Note:
The oscillator is not necessary for data transmission but for sensor ADC. It can be used as clock for the
microcontroller too.

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 2/9
AN510 Using SPI protocol with pressure sensor modules

3 HARDWARE: COMMUNICATION BETWEEN THE MASTER AND TWO OR MORE


SLAVES

3 lines of the bus SPI


MISO or SDI

MOSI or SDO

SCL
Microcontroller
CS1
CS2
CS3 Chip Select MS55XX IC
OE

DOUT DIN SCLK CS CS

MS 55XX
sensor
OSC

Other slaves (EEPROM, LCD,


RTC, other sensors,…)

With:
CS = Chip Select (Or slave select SS)
IC = 3-State buffer (high-Z driver)
For ex: 74HC1G125
OSC = Oscillator at 32.768 kHz
For ex: SG3030JC

Remarks:
- As MEAS Switzerland’s sensor modules haven’t any high-Z driver on DOUT, it is compulsory to add a 3-state
buffer on the line between DOUT and MISO-line of the SPI bus in order to allow communication with the other
slaves.
- The lines MISO, MOSI and SCL have to be connected on the right ports of the microcontroller (See
microcontroller datasheet). The CSx lines can be connected to general digital I/O.
- Most components using SPI have an active-low input (CS\) to select it. Using a 74HC1G125 has the same
meaning because this driver has an Output-Enable active-low input(OE\).

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 3/9
AN510 Using SPI protocol with pressure sensor modules

4 SOFTWARE

Example: reading calibration words 2 and 4 on a MS5534-B

Calibration data read out sequence for word 2/ word 4:


DOUT SCLK

coefficient-data out MSB coefficient-data out LSB

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DIN

sequence: coefficient read + address

Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 Bit9 Bit10 Bit11

Start-bit Setup-bits Stop-bit

address word 2

(Extract from MS5534C datasheet, Fig. 6d page 14)


address word 4

The frame to be sent is 1-1-1-0-1-0-1-1-0-0-0-0 (for calibration word 2)

With SPI protocol, it is only possible to send 8 bits at a time (one byte). The frame must be divided by two and
some “0” must be placed before and after the frame to complete the two bytes.
It becomes: 0-0-0-1-1-1-0-1-0-1-1-0-0-0-0-0
Separated in bytes: 0-0-0-1-1-1-0-1¦0-1-1-0-0-0-0-0
In Hexadecimal: 1Dh 60h

Remark:
The 0 added after the frame is placed to have one more clock after the stop bits on the SCLK line. (As shown on
the scope above)

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 4/9
AN510 Using SPI protocol with pressure sensor modules

Thus, the other frame becomes:

Conversion start for pressure measurement (D1): 0Fh & 40h


Conversion start for temperature measurement (D2): 0Fh & 20h
Read calibration word 1 (W1): 1Dh & 50h
Read calibration word 2 (W2): 1Dh & 60h
Read calibration word 3 (W3): 1Dh & 90h
Read calibration word 4 (W4): 1Dh & A0h
Reset sequence command: 15h & 55h & 40h

With SPI protocol, two parameters need to be checked or adjusted during the configuration of microcontroller’s
SPI module:
Clock Idle state must be low.
Transmission must occur on rising edge of the serial clock when the microcontroller wants to send data received
by the sensor. On the other side, when the microcontroller wants to receive data sent by the sensor
transmission must occur on the falling edge of the clock.

uController Sensor Sclk

Send Receive

Receive Send

(See the scopes shown on the page before to have an example)

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 5/9
AN510 Using SPI protocol with pressure sensor modules

5 EXAMPLES OF FLOW CHARTS

READING CALIBRATION WORD 1:

Read calibration word 1

Set the right CS line to 0

Set SPI configuration register in order to transmit on


the rising edge of the clock

Send the 8 MSB of the command « read cal word 1 »: 1Dh


Send the 8 LSB of the command « read cal word 1 »: 50h

Set SPI configuration register in order to transmit on


the falling edge of the clock

Send a dummy byte to read the 8 MSB of the word 1


Send a dummy byte to read the 8 LSB of the word 1

Set the right CS line to 1

Word_1 = 8MSB_of_W1<<8 & 8LSB_of_W1

Reading calibration words 2-4:


The flowchart is the same. The differences are the commands.
Note: To optimize code, read the four calibration words in a loop.

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 6/9
AN510 Using SPI protocol with pressure sensor modules

READING PRESSURE VALUE (D1):

Read pressure measurement (D1)

Set the right CS line to 0

Set SPI configuration register in order to transmit on


the rising edge of the clock

Send the 8 MSB of the command « Read press meas » : 0Fh


Send the 8 LSB of the command « Read press meas » : 40h

Set SPI configuration register in order to transmit on


the falling edge of the clock

Wait 35ms (conversion time)

Send a dummy byte to read the 8 MSB of D1


Send a dummy byte to read the 8 LSB of D1

Set the right CS line to 1

D1 = 8MSB_of_D1<<8 & 8LSB_of_D1

READING TEMPERATURE VALUE (D2):


The flowchart is the same. The differences are the commands (0Fh and 20h instead of 0Fh and 40h)

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 7/9
AN510 Using SPI protocol with pressure sensor modules

RESET SEQUENCE COMMAND:

Reset sequence command

Set the right CS line to 0

Set SPI configuration register in order to transmit on


the rising edge of the clock

Send the 8 MSB of the command « Rst seq » : 15h


Send the middle byte of the command : 55h
Send the 8 LSB of the command « Rst seq » : 40h

Set the right CS line to 1

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 8/9
AN510 Using SPI protocol with pressure sensor modules

REVISION HISTORY

Date Revision Type of changes


November 09, 2005 V1.0 Initial release
March 9, 2011 002 Change to MEAS logo and layout
June 20, 2011 003 Insertion of the mention TM in the logo, modification of Shenzhen zip code

FACTORY CONTACTS

NORTH AMERICA EUROPE ASIA


Measurement Specialties (China), Ltd.
Measurement Specialties MEAS Switzerland Sàrl
No. 26 Langshan Road
45738 Northport Loop West Ch. Chapons-des-Prés 11
Shenzhen High-Tech Park (North)
Fremont, CA 94538 CH-2022 Bevaix
Nanshan District, Shenzhen, 518057
Tel: +1 800 767 1888 Tel: +41 32 847 9550
China
Fax: +1 510 498 1578 Fax: + 41 32 847 9569
Tel: +86 755 3330 5088
Fax: +86 755 3330 5099
e-mail: pfg.cs.amer chameas- e-mail: sales.chameas-spec.com
e-mail: pfg.cs.asiaameas-spec.com
spec.com Website: www.meas-spec.com
Website: www.meas-spec.com
Website: www.meas-spec.com

The information in this sheet has been carefully reviewed and is believed to be accurate; however, no responsibility is assumed for
inaccuracies. Furthermore, this information does not convey to the purchaser of such devices any license under the patent rights to the
manufacturer. Measurement Specialties, Inc. reserves the right to make changes without further notice to any product herein. Measurement
Specialties, Inc. makes no warranty, representation or guarantee regarding the suitability of its product for any particular purpose, nor does
Measurement Specialties, Inc. assume any liability arising out of the application or use of any product or circuit and specifically disclaims
any and all liability, including without limitation consequential or incidental damages. Typical parameters can and do vary in different
applications. All operating parameters must be validated for each customer application by customer’s technical experts. Measurement
Specialties, Inc. does not convey any license under its patent rights nor the rights of others.

AN510_003 www.meas-spec.com Jun. 20, 2011


Applicno1918ECN1509 9/9

You might also like