EM MICROELECTRONIC - MARIN SA EM7180SFP Ultra Low Power Sensor Fusion Platform Data Sheet Description Features The Sensor Fusion Platform (SFP) is small form factor integrated module containing a EM7180 SENtral Sensor Fusion Coprocessor, BMX055 9-degree-of-freedom (9-DOF) system in a package (3-axis gyroscope/accelerometer/ magnetometer) and a ST24256 32KB EEPROM containing the module firmware. EM7180 SENtral state of the art sensor fusion coprocessor Ultra low power consumption: standby and still states reduce system power consumption dramatically VDD from 2.4V to 3.3V Industry leading heading and tracking accuracy 9 axis sensing with Bosch BMX055: 3-axis gyroscope, 3axis accelerometer and 3-axis magnetometer Variety of outputs for accelerated application development Quaternions Heading, Pitch, Roll Calibrated and raw sensor data Small Form Factor module - 10.16mm x 10.28mm I2C interface – 100 to 3400kbps - Standard, Fast, Fast Plus, and High Speed modes Host CPU driver source code available The SENtral Sensor Fusion Coprocessor fully controls and processes data from BMX055 9-DOF sensor. The primary data output from SFP are quaternions, which uniquely define device orientation, or Euler angles (heading, pitch, and roll). The quaternions easily can be also converted to the rotation vector, and the rotation matrix. Raw or calibrated sensor data are also provided to external Host which can control individual sensor rates and power states of the platform. External Host CPU can communicate with the SFP over high-speed I2C bus and obtain both fusion result and raw sensor data. Applications Robotics, Automation Sports activity (e.g. golf-swing) Motion-tracking-system Navigation systems Activity trackers Orientation-estimation (e.g. for binoculars) Air (remote) pointing devices Position identification (window handle) Fig. 1: Actual Size Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 1 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 1. Main characteristics 1.1. Pin Assignment Pin# Pin Name 1 VDD I/O Type Description (note 1) PWR Supply voltage 2 SDAS OD I2C 3 SCLS OD I2C host bus SCL clock line (note 2) 4 Host_Int O Interrupt to Host MCU (note 3) 5 SA0 I I2C device address bit 0 (note 3) 6 GND PWR Ground connection host bus SDA data line (note 2) Table 1 SFP Pin Assignments Note 1: I/O Types are: PWR: I: O: OD: Power supply Connections Digital Input Digital Output Open Drain – External Pull-up is required Note 2: Note that pull-ups on I2C lines (SDAs/SCLs) are not included on the module and need to be provided externally. See Section “I2C Pull-Up Resistance” for more information on the pull-up resistor sizes. Note 3: Host_int signal should be connected to GPIO of Host MCU which can be used as an interrupt source. SA0 signal can be used to resolve unlikely I2C address alias problem on the Host I2C bus. Note 4: In most applications SA0 can be connected to ground (see Section “Host I2C Interface (Host Bus)” for more details). 1.2. Block Diagram VDD C5 0.1uF VDD SDA C6 0.1uF C7 0.1uF VDD VDDIO EEPROM 256k BMX055 9-DOF SiP SCL R1 2.4k R2 2.4k C4 0.1uF C2 4.7uF SCL SCLM SDA SDAM INT_GYRO GPIO.0 GND C3 0.01uF C1 0.47uF VDD SENTRAL U7180 VREG SCLS SCLS SDAS SDAS SA0 INT_ACC GPIO2 DRDYM GPIO4 GPIO.6 SA0 Host INT TM GND AGND GND GND Fig. 2 Sensor Fusion Platform Block Diagram Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 2 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 1.3. Sensing axis orientations The orientation of the module is defined by the BMX055 chip orientation on the board as shown in Fig. 3. z θ x φ y gravity Fig. 3 Orientation of the module 1.4. Absolute Maximum Ratings 1.5. Handling Procedures This device has built-in protection against high static voltages or electric fields; however, anti-static precautions must be taken as for any other CMOS component. Unless otherwise specified, proper operation can only occur when all terminal voltages are kept within the voltage range. Unused inputs must always be tied to a defined logic voltage level. Parameter Symbol Conditions Voltage at VDD to GND VDD -0.3V to +3.6V Minimum voltage at reset VMIN -0.6V Maximum voltage at reset VMAX 3.6V Storage Temperature Range TSTG -50°C to +150°C ESD HBM versus GND/VDD/ VESD +/-2000V pin to pin Table 2 Absolute Maximum Ratings 1.6. Operating Conditions Stresses above these listed maximum ratings may cause permanent damage to the device, operation cannot be guaranteed. Exposure beyond these absolute maximum ratings may affect device reliability or cause malfunction. Parameter Supply voltage Operating Temperature Symbol Min VDD 2.4 TA -40 Max 3.3 +85 Unit V °C Table 3 Operating conditions 1.7. Electrical Characteristics Unless otherwise specified: VDD= 2.4V to 3.3V, TA=-40 to +85°C. Parameter Symbol Conditions Min Typ Max Unit High Level Input Voltage VIH 0.7*VDD VDD VDC Low Level Input Voltage VIL 0 0.3*VDD VDC High Level Output Current IOH VOH = VDD – 0.3V -1 mA Low Level Output Current IOL VOL = 0.3V Moving (note 1) IDDM VDD=2.4V 7.9 mA Still (note 2) IDDST VDD=2.4V 300 μA IDDSTD VDD=2.4V 230 μA Supply current Standby (note 3) I2C Interface Data Rate (note 4) 1 mA Host Bus 3400 kbits/sec Sensor Bus 1000 kbits/sec Pass-Through 400 kbits/sec 1.8 µF Decoupling Capacitor Creg 0.33 (ESR <2) 0.5 Table 4 Electrical characteristics Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 3 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP Note 1: Sensor bus in I2C Fast mode @ 400 kbits/sec, accelerometer output data rate (ODR) = 100 Hz, gyroscope ODR=190 Hz, and magnetometer ODR=30 Hz. Operating current consumption is the average over 30 seconds while the device is in motion. Note 2: SFP is in low power still state. In this state only the accelerometer is running and provides wakeup interrupt to SENtral when motion/shock is sensed. SENtral automatically transitions into full operational state after wakeup. Note 3: Standby state is default state after power-up or when SFP operations are suspended. Note 4: Sensor Bus is the communication bus between SENtral and sensors Host bus is the communication bus between Host and SENtral In Pass through state, the host communicates directly with sensors See section I2C Pull-Up Resistance for a detailed description of the configuration taking into account pull-up resistance, capacitance and targeted Data rate 2. Modes of Operation 2.1. Initialization Prior to entering Normal Operation SENtral must upload the Configuration File from on-board EEPROM into its Configuration RAM. This file contains information regarding how the user’s sensor system is configured, such as sensor models, sensor slave addresses, GPIO pin assignments, etc. The Configuration File is pre-programmed into SFP EEPROM upon delivery, but updates might be available as discussed in “Updating the on-board EEPROM”. Fig. 4 provides a flow chart of the initialization process, and a detailed discussion of the initialization process follows in “Power-Up and Configuration File Upload” Power Up Watchdog Reset Or I2C ResetReq Automatic Initialization & Upload of Configuration File from EEPROM Yes No Upload Successful ? Initialized State Upload Error State Set Sensor ODR & EnableEvent Register Debug EEPROM content & set I2C ResetReq to Retry Run Request Normal Operation Fig. 4 SFP Initialization Sequence Once the initialization sequence is complete, there are three states in which SENtral may reside: Normal Operation, Standby, and Pass-Through. Fig. 5 indicates the recommended way to get from one state to another, and these states are discussed in detail in Sections “Normal Operation” “Standby State”, and “Pass-Through State” Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 4 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP Fig. 5 SENtral Operational States 2.2. Power-Up and Configuration File Upload After powering up or issuing a ResetReq command, SENtral automatically initializes the registers, and then uploads Configuration file from an EEPROM on the sensor bus, as indicated in Fig. 4. SENtral sets Host_int interrupt pin high when the upload is completed (signal is cleared after enabling Normal Operation or setting ResetReq). Host MCU should check result of EEPROM upload by reading SentralStatus register (see Table 5). Correct configuration file upload completion is indicated by value 0x0B in SentralStatus register (EEPROM detected, EEUploadDone and Idle bits are set). If the upload was successful the Host can enter Normal Operation (as described in section “Normal Operation”). Register Name Address Register Value SentralStatus 0x37 [0] EEPROM. 1 = EEPROM detected [1] EEUploadDone. 1 = EEPROM upload completed [2] EEUploadError. 1 = Calculated CRC of EEPROM is correct. Only valid when EEUploadDone = 1. [3] Idle. 1 = Device in Upload Error or Initialized state. [4] NoEEPROM. 1 = No EEPROM detected. ResetReq 0x9B [0] ResetRequest. 1 = Emulate a hard power down/power up. Table 5 Configuration File Upload from EEPROM Registers Error during upload is indicated either by value 0x18 (No EEPROM and Idle bits are set) or value 0x0D (EEPROM detected, EEUploadError and Idle bits are set). If the Configuration File upload failed, try the following: Send a Reset command by writing 0x01 to the ResetReq register. This would retry the initialization process. Download the Configuration File from the EEPROM and verify its integrity, as discussed in Section “Updating the onboard EEPROM” Reload the Configuration File from the host into the EEPROM. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 5 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 2.3. Normal Operation During Normal Operation the sensors and SENtral algorithm will run and it will be possible to obtain real-time orientation and motion-tracking data from SENtral. The registers used in Normal Operation are given in Table 6. Register Name Address HostControl 0x34 MagRate 0x55 Requested magnetometer output data rate AccelRate 0x56 Requested accelerometer output data rate divided by 10 GyroRate 0x57 Requested gyroscope output data rate divided by 10 ActualMagRate 0x45 Actual magnetometer output data rate ActualAccelRate 0x46 Actual accelerometer output data rate divided by 10 ActualGyroRate 0x47 Actual gyroscope output data rate divided by 10 QRateDivisor 0x32 Along with GyroRate, establishes output data rate for quaternion data. 0x33 ‘1’ indicates an interrupt to the host will be generated for the event. [0] CPUReset. Non-maskable [1] Error [2] QuaternionResult [3] MagResult [4] AccelResult [5] GyroResult [6] Reserved [7] Reserved 0x35 ‘1’ indicates a new event has been generated. [0] CPUReset [1] Error [2] QuaternionResult [3] MagResult [4] AccelResult [5] GyroResult EnableEvents EventStatus Register Value [0] 1 = Run Request 0 = Enable Initialized State Table 6 Normal Operation Registers Prior to entering the Normal Operation state it is necessary to perform the following: - - - Set the sensor output data rates (ODRs): MagRate, AccelRate, and GyroRate. If a sensor rate is set to 0x00, SENtral will shutdown the sensor and disable SENtral background calibration. There are two major points regarding setting these registers: o The AccelRate and GyroRate register values should be 1/10th the desired rate, while the MagRate value should match the desired ODR. For example, if the desired ODR is 30 Hz for the magnetometer, 100 Hz for the accelerometer, and 200 Hz for the gyroscope, then the respective register values should be 0x1E (30d), 0x0A (10d), and 0x14 (20d). o The actual accelerometer and gyro ODRs are limited to the ODRs supported by the specific sensors (in this case BMX055). If the AccelRate or GyroRate register values do not correspond to a supported ODR, then the next highest ODR will be used. For instance, if the GyroRate register is set to 0x14, which corresponds to 200 Hz, but the gyro supports 95 Hz, 190 Hz, and 380 Hz, then the actual gyro ODR will be 380 Hz since this is the closest supported rate above that requested by the register. During Normal Operation, the actual sensor rates can be read from ActualMagRate, ActualAccelRate and ActualGyroRate registers. Establish the quaternion output data rate, where the quaternion output data rate equals GyroRate divided by QRateDivisor. The default for QRateDivisor is 0x00, which is interpreted as ‘1’ and results in the quaternion output data rate equalling GyroRate. Establish which events will trigger an interrupt to the host by configuring the EnableEvent register. It is specifically recommended to enable bit [1], the Error interrupt bit, in addition to whichever other interrupts the user wants. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 6 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP - Once setting of ODR and EventEnable register is completed, Host MCU can enable Normal Operation by setting bit Run Request in HostControl register (writing 0x01 into the register). This would also clear initial Host_int (set after completion of configuration file upload). Example steps to enter Normal Operation are given below: - - Write 0x1E0A0F to the MagRate register. Since SENtral automatically increments to the next register, this also populates the AccelRate and GyroRate registers. This sets MagRate to 30 Hz, AccelRate to 100 Hz, and GyroRate to 150 Hz. Write 0x01 to the QRateDivisor Register. This sets the quaternion output data rate to equal the GyroRate. For writing 0x01 this step is optional, since the default also sets the quaternion output data rate equal to GyroRate. Write 0x07 to the EnableEvents register. This sets up the host to receive interrupts from SENtral whenever the quaternion results registers are updated, an error has been detected, or when SENtral needs to be reset. After performing the steps listed above, SENtral is ready to start generating orientation data. Below are the steps to follow when operating in Normal Operation state. Write 0x01 to the HostControl register. This sets the RunRequest bit to ‘1’ and enables the sensors and the SENtral algorithm. Read the ActualMagRate, ActualAccelRate, and ActualGyroRate registers to ensure the ODRs are as expected. If operating in an interrupt-driven mode, then the Host MCU waits until it receives an interrupt signal from SENtral. Alternatively the host may operate on a polling basis, rather than an interrupt-driven basis, in which case the interrupt line may not be used. Once an interrupt is received by the Host or the Host otherwise decides to read new data, read the EventStatus register. a) Interpret and act on the EventStatus register in the priority shown in Fig. 6. If bit [1], the Error bit, is ‘1’ or if bit [0], the CPUReset bit, is ‘1’, see “Section Error and CPUReset”. If bits [2], [3], [4], or [5], the Results bits, are ‘1’, read the desired data (see Section “Read Results”). b) Repeat steps c – e until new orientation data is not needed and/or the host decides to enter a different state. Reading the EventStatus register clears it. It is possible for more than one bit position to be ‘1’ in the EventStatus register, especially if the host does not always read the EventStatus register after receiving an interrupt. Similarly, if multiple bits are set to ‘1’ in the EventStatus register, once the register is read all the bits will be set to ‘0’. For this reason the EventStatus register should be processed in the priority shown in Fig. 6, as information will be cleared for events that are not handled. Fig. 6 SENtral Normal Operation Flow Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 7 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP A discussion of how to handle the various events follows. Error and CPUReset In the event of an error, SENtral will trigger an error interrupt and SENtral will enter Standby State. When CPUReset bit is seen it also indicates potential problem (watchdog reset occurred) See the Section ”Updating the on-board EEPROM” for recommendations on Troubleshooting and/or reset SENtral by sending 0x01 to the ResetReq register, at address 0x9B. Read Results The Results Registers’ addresses, formats, and full-scale ranges are given below in Table 7. SENtral allows switching between Quaternions and Heading/Pitch/Roll (Euler Angles) output and between calibrated and raw sensor data using AlgorithmControl register (see Table 8). For an explanation of how to convert the quaternions to the rotation vector, or the rotation matrix, see corresponding application note. The resolution is 32 kHz for all timestamps. Note: All multi-byte elements are stored and transmitted using the Little Endian convention: the least significant byte is stored at the lowest address and transmitted first over the I 2C bus. Name Address (Hex) Description Format Full-Scale Range QX 00 – 03 Normalized Quaternion – X, or Heading Float32 0.0 – 1.0, or ± QY 04 – 07 Normalized Quaternion – Y, or Pitch Float32 0.0 – 1.0, or ±/2 QZ 08 – 0B Normalized Quaternion – Z, or Roll Float32 0.0 – 1.0 or ± QW 0C – 0F Normalized Quaternion – W, or 0.0 Float32 0.0 – 1.0 QTime 10 – 11 Quaternion Data Timestamp UInt16 0 – 2048 msec MX 12 – 13 Magnetic Field – X Axis Int16 ±1000 µT MY 14 – 15 Magnetic Field – Y Axis Int16 ±1000 µT MZ 16 – 17 Magnetic Field – Z Axis Int16 ±1000 µT MTime 18 – 19 Magnetometer Interrupt Timestamp UInt16 0 – 2048 msec AX 1A – 1B Linear Acceleration – X Axis Int16 ±16 g AY 1C – 1D Linear Acceleration – Y Axis Int16 ±16 g AZ 1E – 1F Linear Acceleration – Z Axis Int16 ±16 g ATime 20 – 21 Accelerometer Interrupt Timestamp UInt16 0 – 2048 msec GX 22 – 23 Rotational Velocity – X Axis Int16 ±5000°/sec GY 24 – 25 Rotational Velocity – Y Axis Int16 ±5000°/sec GZ 26 – 27 Rotational Velocity – Z Axis Int16 ±5000°/sec GTime 28 – 29 Gyroscope Interrupt Timestamp UInt16 0.0 – 2.048 sec Table 7 Results Registers Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 8 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 2.4. Standby State In Standby State overall system power consumption is dramatically reduced because both the SENtral algorithm and the sensors are shut down. Table 8 provides the registers associated with Standby State. Register Name Address Register Value AlgorithmControl 0x54 [2] 1 = HPR output 0 = Quaternion output (default) [1] 1 = Raw Data Output 0 = Calibrated Data Output (default) [0] 1 = StandbyEnable 0 = Disable Standby State (default) AlgorithmStatus 0x38 [0] 1 = SENtral in Standby State 0 = SENtral not in Standby State Table 8 Standby and Result Control Registers The steps to enter and exit Standby State are given below: - Set bit [0] of the AlgorithmControl register. This places SENtral in Standby State. - Read the AlgorithmStatus register. If bit [0] is ‘1’, then SENtral is in Standby State. This step is optional. - When you are ready to exit Standby State, clear the bit [0] of the AlgorithmControl register. This takes SENtral out of Standby State and normally will place it back into Normal Operation. - Read the AlgorithmStatus register. If bit [0] is ‘0’, then SENtral is not in Standby State. This step is optional. 2.5. Pass-Through State SENtral can be configured so the host communicates directly with devices on the sensor bus by placing SENtral into PassThrough State. In Pass-Through State, SENtral’s sensor and host interfaces are connected by internal switches so the host system communicates directly with the sensors and/or dedicated EEPROM. To enter Pass-Through State, SENtral first should be in either standby, initialized, or unprogrammed State. Consequently, in Pass-Through State the SENtral algorithm, host interrupt line, and sensors are disabled, unless a sensor is directly turned on by the host. When exiting Pass-Through State, SENtral will return to its prior state. Note: When entering Pass-Through State the sensor’s registers retain the values established by SENtral, and when exiting Pass-Through State any register changes will be retained. Uses for the Pass-Through State include: Direct control of BMX055 sensors, if desired. Debugging. Communication with the on-board EEPROM. Specifically, if a new Configuration File is generated, the host can write this into the EEPROM when in Pass-Through State. Since operating in Pass-Through State requires stopping the SENtral algorithm, Pass-Through State is not recommended for accessing sensor data unless reliable heading data is not required. If sensor data and reliable heading data are both desire d, scaled sensor data can be accessed during Normal Operation from the Results Registers, as given in Table 7. Table 9 provides the registers associated with Pass-Through State. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 9 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP Register Name Address Register Value AlgorithmStatus 0x38 [0] 1 = SENtral in Standby State 0 = SENtral not in Standby State PassThroughControl 0xA0 [0] 1 = Enable Pass-Through State 0 = Disable Pass-Through State PassThroughStatus 0x9E [0] 1 = SENtral in Pass-Through State. 0 = SENtral not in Pass-Through State. Table 9 Pass-Through Registers The steps to go in and out of Pass-Through State are given below. Enter Standby State by setting of AlgorithmControl register (see section “Standby State”) Pass-Through can be also entered from Initialized or Upload Error State (see section “Power-Up and Configuration File Upload”) Write 0x01 to the PassThroughControl register. This places SENtral in Pass-Through State. Read the PassThroughStatus register. If bit [0] is ‘1’, then SENtral is in Pass-Through State. This step is optional. When you are done in Pass-Through State, write 0x00 to the PassThroughControl register. This terminates PassThrough mode and returns SENtral to Standby State. Restore setting of the AlgorithmControl register. This takes SENtral out of Standby State and normally will place it back into Normal Operation. 2.6. Updating the on-board EEPROM This section describes method to check or update Configuration File stored in on-board EEPROM device. Checking Configuration File Revision SFP module is always delivered with a stable and tested version of the Configuration File revision. However, updated Configuration File might be available on SENtral product website (please ask your contact person for more detail). Register Name Register Address Register Value Product ID 0x90 0x80 Revision ID 0x91 Hardware Revision ROM Version 0x70 - 0x71 ROM Revision RAM Version 0x72 - 0x73 RAM Version – Configuration File Version Table 10 Revision Registers RAM Version register can be read during Normal Operation of the device. It contains a 16bit Configuration File Version which can be compared with SFP Configuration File versions which are available for download from the SENtral product website. Uploading Configuration File into EEPROM SFP board contains a ST24256 256Kbit (32KB) serial EEPROM. Its I2C device address is 0xA0. The user is encouraged to refer to the ST24256 datasheet for details about correct programing sequence and timing. The steps to program EEPROM are given bellow. Enter Pass-Through State (as described in the related Section “Pass-Through State”). Make sure that SENtral is not in Normal Operation (it can be either in Initialized or Standby State) Copy the content of Configuration File into EEPROM, starting with EEPROM byte address 0x0000. Best efficiency is achieved by utilizing page write mode (up to 64B at a time). Please refer to ST24256 datasheet for details about correct timing between writes. Verify the programing success by read back of the EEPROM content. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 10 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP - Leave Pass-Through State and issue I2C ResetReq (Write 0x01 into ResetReq register). This will force SENtral to reinitialize from EEPROM (see Section “Power-Up and Configuration File Upload”) 3. Communication 3.1. Timing Characteristics Communication between the Host MCU and SFP utilizes I2C bus and Host_int interrupt line. The Host_int interrupt line lets the Host MCU know when SENtral has updated the quaternions or when new raw sensor data are available. Conditions for Host_int interrupt are programmable. SFP I2C interface complies with NXP’s UM10204 specification and user manual, rev 04. Standard, Fast, Fast Plus, and High Speed modes of the I2C protocol are supported by SFP I2C host interface. Host MCU does not need to support clock-stretching when connected to SFP. Below is a link to this document. http://www.nxp.com/documents/user_manual/UM10204.pdf Parameter Standard Min Max Symbol Fast Min FastPlus Min Max Max SCL Clock fSCL 0 100 0 400 SDA & SCL Rise Time tr - 1000 20 300 SDA & SCL Fall Time tf - 300 20*(VDD/5.5V) 300 LOW period of SCL Clock tLOW 4.7 - 1.3 HIGH period of SCL Clock tHIGH 4.0 - Hold time (repeated) START tHD;STA 4.0 Data hold time tHD;DAT Data set-up time 0 Unit 1000 kHz 120 ns 20*(VDD/5.5V) 120 ns - 0.5 - s 0.6 - 0.26 - s - 0.6 - 0.26 - s 0 - 0 - 0 - s tSU:DAT 250 - 100 - 50 - ns Set-Up time for repeated Start tSU;STA 4.7 - 0.6 - 0.26 - s Stop set-up time tSU;STO 4.0 - 0.6 - 0.26 - s Bus free time between STOP & START tBUF 4.7 - 1.3 - 0.5 - s Table 11 Timing characteristics 3.2. Timing Waveforms SFP I2C timing requirements are set forth below, in Fig. 7. For the timing requirements shown in Fig. 7, transitions are 30% and 70% of VDD. Fig. 7 I2C Timing Diagram Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 11 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 3.3. Host I2C Interface (Host Bus) The host will control SFP on the host bus via SENtral’s I2C host interface. The host interface consists of 2 wires: the serial clock, SCLS, and the serial data line, SDAS. Both lines are bi-directional. SENtral is connected to the host bus via the SDAS and SCLS pins, which incorporate open drain drivers within the device. The host bus lines must be externally connected to a positive supply voltage (Vdd) via a pull-up resistor. See Section “I2C Pull-Up Resistance” for more on the pull-up resistor. SENtral’s 7-bit I2C slave address is 0b010100x, where the most significant 6 bits of the slave address are pre-defined in hardware and are the same for all SENtral devices. The least significant bit is user-configurable, using the SA0 pin to set the bit to ‘0’ or ‘1’. For example, grounding the SA0 pin (‘0’ value) results in the 7-bit address of 0b0101000. This should be set so the SENtral slave address is unique to any other devices on the host bus. Data transfer is always initiated by the host. Data is transferred between the host and SENtral serially through the data line (SDAS) in an 8-bit transfer format. The transfer is synchronized by the serial clock line, SCLS. Supported transfer formats are single-byte read, multiple-byte read, single-byte write, and multiple-byte write. SENtral as part of SFP is not utilizing clock stretching feature of I2C bus and SCLS is driven by the Host MCU only. Host I2C Transfer formats Fig. 8 illustrates writing data to registers in single-byte or multiple-byte mode. START SLAVE ADDRESS RW ACK S A6 A5 A4 A3 A2 A1 A0 0 0 REGISTER ADDRESS (N) ACK DATA TO REGISTER (N) ACK DATA TO REGISTER (N+1) ACK STOP R7 R6 R5 R4 R3 R2 R1 R0 0 D7 D6 D5 D4 D3 D2 D1 D0 0 D7 D6 D5 D4 D3 D2 D1 D0 0 P From Host to SENtral ------------ Data Transferred (n bytes + acknowledge) -----------From SENtral to Host Fig. 8 I2C Slave Write Example The I2C host interface supports both a read sequence using repeated START conditions, shown in Fig. 9, and a sequence in which the register address is sent in a separate sequence than the data, shown in Fig. 10 and Fig. 11. START S SLAVE ADDRESS RW ACK A6 A5 A4 A3 A2 A1 A0 0 0 REGISTER ADDRESS (N) R7 R6 R5 R4 R3 R2 R1 R0 ACK START 0 SR SLAVE ADDRESS RW ACK DATA FROM REGISTER (N) NACK STOP A6 A5 A4 A3 A2 A1 A0 1 0 D7 D6 D5 D4 D3 D2 D1 D0 1 P Data Transferred (n bytes + acknowledge) Fig. 9 I2C Slave Read Example, with Repeated START START SLAVE ADDRESS RW ACK S A6 A5 A4 A3 A2 A1 A0 0 0 REGISTER ADDRESS (N) ACK STOP R7 R6 R5 R4 R3 R2 R1 R0 0 P Fig. 10 I2C Slave Write Register Address Only START S SLAVE ADDRESS RW ACK A6 A5 A4 A3 A2 A1 A0 1 0 DATA FROM REG. (N) D7 D6 D5 D4 D3 D2 D1 D0 ACK 0 DATA FROM REG. (N+1) D7 D6 NACK STOP D5 D4 D3 D2 D1 D0 1 P From Host to SENtral -------------- Data Transferred (n bytes + acknowledge) -------------From SENtral to Host Fig. 11 I2C Slave read register from current address Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 12 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP I2C Sensor Interface (Sensor Bus) SENtral coprocessor communicates with BMX055 sensor and serial EEPROM over I2C sensor bus (internal to SFP). Host MCU can communicate directly with EEPROM and BMX055 sensor when the SENtral coprocessor is put into Pass-Through mode. Note that Pass-Through mode is supported when SENtral is in Standby state (normal operation is suspended). Communication speed in Pass-Through mode is limited to 400 kbit/s (Fast Mode). I2C Pull-Up Resistance The pull-up resistor value for both the host and sensor bus will depend on the I2C data rate and the number of devices on the bus. Rate (kbit/s) I2C mode Rise Time (ns) Max Cb(pF) 4.7kΩ pull-up 2.47kΩ pull-up Standard 100 1000 251.1 491.8 Fast 400 300 75.3 147.5 Fast Plus 1000 120 30.1 59.0 Clock 1700 80 20.1 39.3 High Speed- 1.7 MHz Data 1700 160 40.2 78.7 High Speed- 3.4 MHz Clock 3400 40 10.0 19.7 Data 3400 80 20.1 39.3 Table 12 provides the maximum acceptable bus capacitance, as a function of bus rate, which can be accommodated with a 4.7 kΩ or 2.4 kΩ pull-up resistor. As a general rule, each device connected to the bus represents 10 pF of capacitance on the bus, so a bus with 4 devices would require a “Max Cb” value of >40 pF. Rate (kbit/s) I2C mode Rise Time (ns) Max Cb(pF) 4.7kΩ pull-up 2.47kΩ pull-up Standard 100 1000 251.1 491.8 Fast 400 300 75.3 147.5 Fast Plus 1000 120 30.1 59.0 Clock 1700 80 20.1 39.3 High Speed- 1.7 MHz Data 1700 160 40.2 78.7 High Speed- 3.4 MHz Clock 3400 40 10.0 19.7 Data 3400 80 20.1 39.3 Table 12 I2C Pull-Up Resistance Table As the table implies, for most Standard and Fast Mode implementations a 4.7 kΩ pull-up should work well, while a 2.4 kΩ pullup normally should be used for Fast Plus. See Section 7.1 of NXP’s UM10204 specification for additional information. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 13 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 4. Troubleshooting This section provides guidance in troubleshooting SENtral, and is divided into hardware-related and software-related errors. 4.1. Hardware-Related Error Conditions Possible indications of a hardware-related problem are given below in Table 13. Register Name Address Error Indication 0x35 [0] 1 = CPUReset. Watchdog or Power on Reset occurred and EEPROM upload failed. See Section “Power-Up and Configuration File Upload”. SentralStatus 0x37 [2] 1 = EEUploadError. Issue with uploading from the dedicated EEPROM. [4] 1 = No EEPROM detected See Section “Power-Up and Configuration File Upload”. MagRate 0x55 0x00 – Value lost AccelRate 0x56 0x00 – Value lost GyroRate 0x57 0x00 – Value lost EventStatus Table 13 Hardware-Related Error Indications In the event of such errors, SENtral will enter Standby State, shut down the sensors, and generate an interrupt to the host. Possible reasons for hardware-related errors include problems with an external EEPROM upload, power transients detected by power management, and errors in software detected by Watchdog. Often the error can be cleared by sending the ResetReq command and reloading the Configuration File. 4.2. Software-Related Error Conditions Possible indications of software-related errors are given below in Table 14: Register Name Address Error Indication EventStatus 0x35 [1] 1 = Error. SensorStatus 0x36 Non-zero value indicates sensor-related error. Check sensors by communicating in Pass-Through State. See Table 15 ErrorRegister 0x50 Non-zero value indicated an error. See Table 16. Table 14 Software-Related Error Indications If the SensorStatus register indicates a non-zero value, then the value provides additional information on the sensor that is causing a problem, as given in Table 15. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 14 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP Register Name SensorStatus Address Error Indication 0x36 [0] MagNACK. 1 = NACK from magnetometer [1] AccelNACK. 1 = NACK from accelerometer [2] GyroNACK. 1 = NACK from gyroscope [4] MagDeviceIDErr. 1 = Unexpected DeviceID from magnetometer [5] AccelDeviceIDErr. 1 = Unexpected DeviceID from accelerometer [6] GyroDeviceIDErr. 1 = Unexpected DeviceID from gyroscope. Table 15 SensorStatus Register Indications If the ErrorRegister indicates a non-zero value, then the value provides additional information on the sensor that is causing a problem, as given in Table 16. Value Error Condition 0x00 No error 0x80 Invalid sample rate selected Check sensor rate settings. 0x30 Mathematical Error Check for software updates 0x21 Magnetometer initialization failed 0x22 Accelerometer initialization failed 0x24 Gyroscope initialization failed This error can be caused by a wrong driver, physically bad sensor connection, or incorrect I2C device address in the driver 0x11 Magnetometer rate failure 0x12 Accelerometer rate failure 0x14 Gyroscope rate failure Response This error indicates the given sensor is unreliable and has stopped producing data. Table 16 ErrorRegister Indications Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 15 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 5. Typical Application Circuit VDD R1 2.4k VDD R2 2.4k VDD VREG Sensor Fusion Platform SCLS SCL SDAS SDA Host_Int Host MCU GPIO SA0 GND GND Fig. 12 Sensor Fusion Platform Connection to Host MCU 6. Package Information 6.1. Module dimensions The 2 following figures describe the sensor fusion platform dimensions and recommended assembly footprint. The Module thickness is max 2.1mm (at BMX055 sensor location). Fig. 13 Reference outline dimensions (top view, component side) Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 16 www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 10.28 10.00 0.76 VDD 7.79 7.87 GND 1.52 0.29 5.33 5.25 SDAS SA0 2.79 2.71 SCLS Host_Int 0.00 0.00 10.16 All dimensions in mm Fig. 14 Landing pattern recommendation The SFP pins are organized on a standard 0.1” pitch which is compatible with many prototyping boards. 6.2. Soldering and usage information The SFP module is rated MSL1 and complies with lead free reflow profile according to Jedec J-STD-020. 6.3. Module marking As shown in Fig. 15, each module is marked with a lot number made of 5 alphanumeric characters as follows: - YY= year of assembly - M= Month of assembly - AB= Lot number code 10.00 7.79 VDD 5.25 SDAS 2.71 SCLS GND U2 1.52 Ø1.22 SA0 Host_Int YYMAB 0.00 Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 17 10.16 0.00 All dimensions in mm Fig. 15 Bottom side view of the module www.emmicroelectronic.com 420005-A01, 2.0 EM7180SFP 7. Packing and labelling The Sensor Fusion Platform modules are packed in Tape and Reel. 7.1. Module orientation in the carrier Tape Barcode label Antistatic cover tape Sprocket Holes REEL VDD GND VDD GND VDD GND SDAS SA0 SDAS SA0 SDAS SA0 SCLS Host SCLS Host SCLS Host _Int _Int FEED _Int 7.2. Reel information size of the reel D330mm, W16mm, HUB 4” quantity of unit per reel 1000 pcs 8. Ordering Information The ordering code for the module is EM7180SFP01B EM Microelectronic-Marin SA (“EM”) makes no warranties for the use of EM products, other than those expressly contained in EM's applicable General Terms of Sale, located at http://www.emmicroelectronic.com. EM assumes no responsibility for any errors which may have crept into this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information contained herein. No licenses to patents or other intellectual property rights of EM are granted in connection with the sale of EM products, neither expressly nor implicitly. In respect of the intended use of EM products by customer, customer is solely responsible for observing existing patents and other intellectual property rights of third parties and for obtaining, as the case may be, the necessary licenses. Important note: The use of EM products as components in medical devices and/or medical applications, including but not limited to, safety and life supporting systems, where malfunction of such EM products might result in damage to and/or injury or death of persons is expressly prohibited, as EM products are neither destined nor qualified for use as components in such medical devices and/or medical applications. The prohibited use of EM products in such medical devices and/or medical applications is exclusively at the risk of the customer. Copyright 2014, EM Microelectronic-Marin SA 7180SFP-DS Version 1.1, 10-Dec-14 18 www.emmicroelectronic.com 420005-A01, 2.0