← Commit history

bma456: factory component page (tier=lcsc)

Ray ·9b667fc171 ·1mo ago ·parent 95a8abd
1 file changed +132−22
page.json+132−22
@@ -3,43 +3,153 @@   "type": "component",   "slug": "bma456",   "title": "BMA456",-  "brief": "Bosch Sensortec BMA456. 16-bit triaxial MEMS accelerometer for wearables. +/-2g to +/-16g range, 150uA performance / 3.5uA suspend, SPI/I2C, 1KB FIFO, step counter, LGA-12 2x2mm. Standardized datashee",+  "brief": "Bosch Sensortec Attitude Sensor/Gyroscope, LGA-12(2x2). Datasheet-verified pinout, KiCad symbol/footprint/3D.",   "version": "0.1.0",+  "license": "CC-BY-SA-4.0",   "tags": [     "component",     "sensor",     "bma456"   ],-  "license": "MIT",   "component": {     "mpn": "BMA456",-    "manufacturer": "",-    "package": "",-    "pin_count": null,-    "category": "datasheet",-    "subcategory": "",-    "body_size": null,-    "parts": {},-    "distributor_links": {}+    "manufacturer": "Bosch Sensortec",+    "package": "LGA-12(2x2)",+    "pin_count": 12,+    "category": "Sensor",+    "subcategory": "Attitude Sensor/Gyroscope",+    "datasheet": "https://datasheet.lcsc.com/datasheet/pdf/e35f9ca7908e94844f761c4a29537ccc.pdf",+    "parts": {+      "symbol": "bma456.kicad_sym",+      "footprint": "bma456.kicad_mod",+      "model_3d": "bma456.glb",+      "model_3d_step": "bma456.step",+      "lbr": "bma456.lbr"+    },+    "distributor_links": {},+    "pins": [+      {+        "number": "1",+        "name": "SDO",+        "type": "bidirectional",+        "description": "Serial data output in SPI 4-wire (MISO); float / DNC in SPI 3-wire; in I2C mode this pin selects the I2C slave address LSB (tie to GND for default I2C address, or to VDDIO for the alternate)."+      },+      {+        "number": "2",+        "name": "SDX",+        "type": "bidirectional",+        "description": "Primary serial data line: SDA in I2C, SDI (MOSI) in SPI 4-wire, SDA (bidirectional data) in SPI 3-wire."+      },+      {+        "number": "3",+        "name": "VDDIO",+        "type": "power_in",+        "description": "Digital I/O supply voltage, 1.2 V to 3.6 V. Recommend 100 nF decoupling capacitor to GND close to the pin."+      },+      {+        "number": "4",+        "name": "ASDA",+        "type": "bidirectional",+        "description": "Auxiliary interface serial data (I2C master for an external magnetometer such as a BMM). When the auxiliary interface is unused, tie to VDDIO, GNDIO, or leave NC."+      },+      {+        "number": "5",+        "name": "INT1",+        "type": "bidirectional",+        "description": "Interrupt output 1 (default) for motion / feature / data-ready events. Can be reconfigured as an input for external FIFO data-synchronization. If unused, leave DNC."+      },+      {+        "number": "6",+        "name": "INT2",+        "type": "bidirectional",+        "description": "Interrupt output 2 (default) for motion / feature / data-ready events. Can be reconfigured as an input for external FIFO data-synchronization. If unused, leave DNC."+      },+      {+        "number": "7",+        "name": "VDD",+        "type": "power_in",+        "description": "Main power supply for the analog and digital core, 1.62 V to 3.6 V. Recommend 100 nF decoupling capacitor to GND close to the pin."+      },+      {+        "number": "8",+        "name": "GNDIO",+        "type": "power_in",+        "description": "Ground return for the digital I/O supply domain (VDDIO)."+      },+      {+        "number": "9",+        "name": "GND",+        "type": "power_in",+        "description": "Ground return for the analog and digital core supply (VDD)."+      },+      {+        "number": "10",+        "name": "CSB",+        "type": "input",+        "description": "Active-low chip select for SPI. In I2C mode, tie to VDDIO to select I2C protocol (or leave DNC/float per datasheet note)."+      },+      {+        "number": "11",+        "name": "ASCL",+        "type": "output",+        "description": "Auxiliary interface serial clock output (I2C master clock for external magnetometer). When the auxiliary interface is unused, tie to VDDIO, GNDIO, or leave NC."+      },+      {+        "number": "12",+        "name": "SCX",+        "type": "input",+        "description": "Primary interface serial clock: SCK in SPI (3- or 4-wire), SCL in I2C."+      }+    ],+    "provenance": {+      "extractor": "ds2sf",+      "datasheet": {+        "url": "https://datasheet.lcsc.com/datasheet/pdf/e35f9ca7908e94844f761c4a29537ccc.pdf",+        "pages": 129,+        "sha256": "20206ece1b59b287",+        "source_tier": "lcsc"+      },+      "cad": "KiCad official (CC-BY-SA 4.0)",+      "pins": {+        "total": 12,+        "described": 12,+        "cites_pages": true,+        "refuses_to_fabricate": true+      }+    },+    "viewers": {+      "symbol": "viewers/symbol.html",+      "footprint": "viewers/footprint.html"+    }   },-  "readme": "**Source:** [Bosch Sensortec Datasheet (BST-BMA456-DS000-09)](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bma456-ds000.pdf)\n**Manufacturer:** Bosch Sensortec\n**Part Number:** BMA456\n**Document:** BST-BMA456-DS000-09 — Rev 3.6, March 2026\n\n## Description\n\nThe BMA456 is a 16-bit, digital, triaxial acceleration sensor with intelligent on-chip motion-triggered interrupt features optimized for wearable applications. It combines ultra-low power consumption with a small 2mm x 2mm LGA footprint and a programmable feature engine that supports step counting, activity recognition, and wrist gestures without burdening the host processor. The sensor communicates over SPI (3-wire and 4-wire) or I2C and includes a secondary auxiliary I2C master interface for connecting an external magnetometer with synchronized data readout. An integrated 1KB FIFO buffers sensor data to minimize host wake-ups, enabling aggressive power management in battery-constrained wearable and hearable devices.\n\n## Key Specifications\n\n| Parameter | Value |\n| --- | --- |\n| Acceleration Range | +/-2g / +/-4g / +/-8g / +/-16g (selectable) |\n| Resolution | 16-bit |\n| Supply Voltage (VDD) | 1.62V to 3.6V |\n| Supply Voltage (VDDIO) | 1.2V to 3.6V |\n| Current (Performance Mode) | 150 uA typ |\n| Current (Low-Power Mode) | 14 uA typ (50 Hz ODR) |\n| Current (Suspend Mode) | 3.5 uA typ |\n| Output Data Rate | 0.78 Hz to 1600 Hz |\n| Noise Density | 120 ug/sqrt(Hz) |\n| FIFO | 1 KB integrated |\n| Interface | SPI (3/4-wire), I2C, auxiliary I2C master |\n| Package | LGA-12, 2.0mm x 2.0mm x 0.65mm |\n| Operating Temperature | -40 to +85 deg C |\n| Chip ID | 0x16 |\n\n## Features\n\n- 16-bit digital triaxial accelerometer with selectable ranges of +/-2g, +/-4g, +/-8g, +/-16g\n- Ultra-low power: 3.5 uA suspend, 14 uA low-power (50 Hz), 150 uA performance mode\n- Small LGA-12 package: 2.0mm x 2.0mm x 0.65mm footprint\n- Programmable on-chip feature engine with step counter, activity recognition, and wrist gestures\n- Integrated 1 KB FIFO with watermark interrupt for efficient host power management\n- SPI (3-wire and 4-wire) and I2C primary digital interface\n- Secondary auxiliary I2C master interface for external magnetometer hub with data synchronization\n- Configurable low-pass filter bandwidths from <8 Hz to 684 Hz\n- Two configurable interrupt output pins (INT1, INT2) with latched or non-latched mode\n- On-chip temperature sensor\n- 24-bit sensor time counter (39.25 us resolution)\n- Self-test and inline offset calibration capability\n- Non-volatile memory (NVM) with 15 write cycles for offset storage\n- Mechanical shock resistance up to 10,000g (200 us duration)\n- RoHS compliant, halogen-free\n\n## Pin Configuration\n\n| Pin | Name | Type | Description |\n| --- | --- | --- | --- |\n| 1 | SDO | Digital I/O | Serial data output in SPI; address select in I2C mode (GND = default address) |\n| 2 | SDX | Digital I/O | SDA serial data I/O in I2C; SDI serial data input in SPI 4W; SDA I/O in SPI 3W |\n| 3 | VDDIO | Supply | Digital I/O supply voltage (1.2V to 3.6V) |\n| 4 | ASDA | Digital I/O | Serial data I/O for secondary auxiliary interface (I2C master for magnetometer) |\n| 5 | INT1 | Digital I/O | Interrupt output 1 (default); input for external FIFO sync |\n| 6 | INT2 | Digital I/O | Interrupt output 2 (default); input for external FIFO sync |\n| 7 | VDD | Supply | Power supply for analog and digital domain (1.62V to 3.6V) |\n| 8 | GNDIO | Ground | Ground for I/O |\n| 9 | GND | Ground | Ground for digital and analog |\n| 10 | CSB | Digital In | Chip select for SPI mode (active low); tie to VDDIO for I2C mode |\n| 11 | ASCL | Digital Out | Serial clock for secondary auxiliary interface (I2C master for magnetometer) |\n| 12 | SCX | Digital In | SCK for SPI serial clock; SCL for I2C serial clock |\n\n## Absolute Maximum Ratings\n\n| Parameter | Condition | Min | Max | Unit |\n| --- | --- | --- | --- | --- |\n| Voltage at VDD Pin | -- | -0.3 | 4 | V |\n| Voltage at VDDIO Pin | -- | -0.3 | 4 | V |\n| Voltage at any Logic Pin | Non-supply pin | -0.3 | VDDIO+0.3 (<4V) | V |\n| Passive Storage Temperature | <=65% rel. humidity | -50 | +150 | deg C |\n| NVM Data Retention | T=85 deg C, after 15 cycles | 10 | -- | years |\n| Mechanical Shock | Duration <=200 us | -- | 10,000 | g |\n| Mechanical Shock | Duration <=1.0 ms | -- | 2,000 | g |\n| Free Fall | Onto hard surfaces | -- | 1.8 | m |\n| ESD (HBM) | Any pin | -- | 2 | kV |\n| ESD (CDM) | Any pin | -- | 500 | V |\n| ESD (MM) | Any pin | -- | 200 | V |\n\n## Electrical Characteristics\n\n| Parameter | Symbol | Condition | Min | Typ | Max | Unit |\n| --- | --- | --- | --- | --- | --- | --- |\n| Supply Voltage (Internal) | VDD | -- | 1.62 | 1.8 | 3.6 | V |\n| Supply Voltage (I/O) | VDDIO | -- | 1.2 | 1.8 | 3.6 | V |\n| Input Voltage Low | VIL | SPI and I2C | -- | -- | 0.3 x VDDIO | V |\n| Input Voltage High | VIH | SPI and I2C | 0.7 x VDDIO | -- | -- | V |\n| Output Voltage Low | VOL | VDDIO>=1.62V, IOL<=2mA | -- | -- | 0.2 x VDDIO | V |\n| Output Voltage High | VOH | VDDIO>=1.62V, IOH<=2mA | 0.8 x VDDIO | -- | -- | V |\n| Sensitivity (+/-2g) | S2g | TA=25 deg C | -- | 16384 | -- | LSB/g |\n| Sensitivity (+/-4g) | S4g | TA=25 deg C | -- | 8192 | -- | LSB/g |\n| Sensitivity (+/-8g) | S8g | TA=25 deg C | -- | 4096 | -- | LSB/g |\n| Sensitivity (+/-16g) | S16g | TA=25 deg C | -- | 2048 | -- | LSB/g |\n| Sensitivity Temperature Drift | TCS | -- | -- | +/-0.005 | -- | %/K |\n| Zero-g Offset | -- | Nominal, 25 deg C, +/-4g | -- | -- | +/-20 | mg |\n| Zero-g Offset Temp Drift (X/Y) | TCO | -- | -- | +/-0.2 | -- | mg/K |\n| Zero-g Offset Temp Drift (Z) | TCO | -- | -- | +/-0.35 | -- | mg/K |\n| Nonlinearity | NL | Nominal, 25 deg C, +/-4g | -- | -- | +/-0.5 | %FS |\n| Output Noise Density | ndens | Nominal, 25 deg C, +/-4g | -- | 120 | -- | ug/sqrt(Hz) |\n| Cross Axis Sensitivity | S | Between any two axes | -- | -- | +/-0.5 | % |\n| Alignment Error | EA | Relative to package outline | -- | -- | +/-0.5 | deg |\n\n## Power Consumption\n\n| Parameter | Symbol | Condition | Typ | Unit |\n| --- | --- | --- | --- | --- |\n| Performance Mode | IDD | Nominal VDD and VDDIO, 25 deg C, +/-4g | 150 | uA |\n| Low-Power Mode | IDDlp1 | Nominal VDD and VDDIO, 25 deg C, 50 Hz ODR | 14 | uA |\n| Suspend Mode | IDDsum | Nominal VDD and VDDIO, 25 deg C | 3.5 | uA |\n| Power-Up Time | ts_up | -- | 1 | ms |\n\n## Communication Interface\n\nThe BMA456 supports SPI (3-wire and 4-wire) and I2C digital interfaces on the primary bus, selected at power-up based on the CSB pin state. SPI mode supports clock rates up to 10 MHz. I2C mode supports standard (100 kHz) and fast (400 kHz) modes with a 7-bit device address of `0x18` (SDO=GND) or `0x19` (SDO=VDDIO).\n\nA secondary auxiliary I2C master interface (pins ASDA, ASCL) enables direct connection to an external magnetometer. The auxiliary interface performs automatic periodic reads from the external sensor and stores data in the BMA456 data registers, enabling synchronized accelerometer-magnetometer readout without host processor intervention.\n\n| Parameter | Value |\n| --- | --- |\n| Primary Interface | SPI (3-wire, 4-wire) and I2C |\n| SPI Clock | Up to 10 MHz |\n| I2C Modes | Standard (100 kHz), Fast (400 kHz) |\n| I2C Address | 0x18 (SDO=GND) or 0x19 (SDO=VDDIO) |\n| Auxiliary Interface | I2C master for external magnetometer |\n| Interrupt Pins | 2 (INT1, INT2), configurable push-pull/open-drain, active-high/low |\n\n## Packages\n\n| Parameter | Value |\n| --- | --- |\n| Package Type | LGA (Land Grid Array), 12-pin, SMD |\n| Body Size | 2.0mm x 2.0mm |\n| Height | 0.65mm |\n| Pad Pitch | See package drawing |\n| Pin Count | 12 |\n| Marking | 3-digit alphanumeric counter ID with pin 1 dot |\n| Soldering | Pb-free reflow, peak 260 deg C max |\n| Moisture Sensitivity | MSL 1 (unlimited floor life) |\n| RoHS | Compliant, halogen-free |\n\n## Software API\n\nThe BMA456 requires a firmware initialization sequence after every power-on reset or soft-reset. Bosch Sensortec provides an official C driver (BMA4xy Sensor API) available on their website and GitHub.\n\n**Initialization sequence:**\n1. Power up and wait 1 ms\n2. Disable advanced power save: write `0x00` to `PWR_CONF` (0x7C)\n3. Wait 450 us\n4. Write `0x00` to `INIT_CTRL` (0x59)\n5. Burst write configuration file to `FEATURES_IN` (0x5E)\n6. Write `0x01` to `INIT_CTRL` (0x59)\n7. Wait up to 150 ms, verify `INTERNAL_STATUS` (0x2A) bit[4:0] = 0x01\n\n**Key registers:**\n- `CHIP_ID` (0x00): reads 0x16\n- `ACC_CONF` (0x40): accelerometer ODR, bandwidth, performance mode\n- `ACC_RANGE` (0x41): acceleration range selection\n- `PWR_CONF` (0x7C): advanced power save, FIFO self-wakeup\n- `PWR_CTRL` (0x7D): accelerometer and auxiliary enable\n- `INT1_IO_CTRL` (0x53) / `INT2_IO_CTRL` (0x54): interrupt pin configuration\n- `FIFO_CONFIG_0/1` (0x48/0x49): FIFO mode and enable\n- `CMD` (0x7E): soft-reset (write 0xB6), FIFO flush (write 0xB0)\n\n**Feature engine functions** (via configuration file):\n- Step counter with watermark interrupt\n- Step detector (single step event)\n- Activity recognition (still, walking, running)\n- Wrist wear wakeup gesture\n- Any-motion / no-motion detection\n- Single/double tap detection\n\n## Applications\n\n- Wearable fitness trackers and smartwatches\n- Hearable devices (wireless earbuds)\n- Plug-and-play step counter with watermark functionality\n- Activity tracking and recognition (still, walking, running)\n- Power management for wearable/hearable applications (display on/off, profile switching)\n- User interface without hardware buttons (gesture control)\n- E-compass tilt compensation with magnetometer data synchronization\n- High-performance angle measurement\n- Height-constrained applications requiring ultra-thin sensors\n\n## Key Formulas\n\n### Acceleration Conversion\n```\nacceleration_mg = raw_value / sensitivity_LSBperG * 1000\n\nSensitivity: 16384 LSB/g (+/-2g), 8192 LSB/g (+/-4g), 4096 LSB/g (+/-8g), 2048 LSB/g (+/-16g)\n```\n\n### Sensor Time\n```\ntime_seconds = SENSORTIME_value * 39.0625e-6\n\n24-bit counter, resolution = 39.0625 us per LSB\nRollover period = 2^24 * 39.0625 us = ~655.36 seconds\n```\n\n### Temperature\n```\ntemperature_degC = (TEMPERATURE_register * 1) + 23\n\nRange: -40 to +85 deg C, Resolution: 1 K/LSB, Offset: ~1 K\n```\n\n### Output Data Rate (ODR)\n```\nODR_Hz = 100 / (2^(8 - acc_odr))\n\nacc_odr values: 0x01 (0.78 Hz) to 0x0C (1600 Hz)\nPerformance mode: 12.5 Hz to 1600 Hz\nLow-power mode: 0.78 Hz to 400 Hz\n```\n\n### FIFO Capacity\n```\nmax_frames = 1024 / frame_length_bytes\n\nAccel-only frame: 7 bytes (1 header + 6 data)\nAccel+Aux frame: 13 bytes (1 header + 6 accel + 6 aux)\nAccel+Time frame: 11 bytes (1 header + 6 data + 4 sensortime)\n```\n",+  "metadata": {+    "specs": {+      "Manufacturer": "Bosch Sensortec",+      "Package": "LGA-12(2x2)",+      "Category": "Sensor",+      "Pins": "12"+    }+  },+  "sections": [+    "hero",+    "viewers",+    "readme",+    "breadcrumbs",+    "info"+  ],+  "discovery_triggers": [+    "bma456"+  ],+  "discovery_pitch": "BMA456 (Bosch Sensortec) component page with datasheet-verified CAD.",   "author": {-    "name": "Kyle Bergstedt",-    "email": "[email protected]"+    "name": "Ray",+    "email": "[email protected]"   },-  "visibility": "public",+  "dependencies": {},   "hero": {     "type": "image",     "path": "docs/hero.png"   },-  "sample_prompts": [],-  "discovery_triggers": [],-  "discovery_pitch": null,-  "metadata": {},-  "created_at": "2026-05-28T05:36:58.619Z",-  "updated_at": "2026-05-28T05:36:58.620Z",-  "description": "Bosch Sensortec Attitude Sensor/Gyroscope, LGA-12(2x2). Datasheet-verified pinout, KiCad symbol/footprint/3D.",-  "dependencies": {},   "files": [     "page.json",     "README.md",