AFBR-S50 API Reference Manual v1.5.6
AFBR-S50 Time-of-Flight Sensor SDK for Embedded Software
Loading...
Searching...
No Matches
Introduction

The AFBR-S50 SDK is the appertaining software package for the AFBR-S50 Time-of-Flight Sensor family by Broadcom Inc. The SDK consists of evaluation tools running with the Evaluation or Reference Kits as well as the AFBR-S50 Core Library and its API for the Broadcom Time-of-Flight sensor devices.

The evaluation tools contain basic examples as well as fully featured reference applications for the AFBR-S50 Core Library. The applications utilize the AFBR-S50 API and provide a fast getting started experience.

Beneath the example implementations, the Explorer App publishes the full AFBR-S50 sensor functionality over USB or UART interfaces. The AFBR-S50 Reference Board by MikroElektronika (available here) is provided as an independent product that provides additional interfaces and features such as a CAN-bus.

The AFBR-S50 API and reference implementation are running on the ARM Cortex-Mx processor architecture. Example projects exist for Cortex-M0+, Cortex-M4 and Cortex-M33.

In order to connect and evaluate the sensor, a PC GUI, the AFBR-S50 Explorer, is provided. The GUI establishes a serial connection via UART or USB to the Explorer App running on a Evaluation Kit or Reference Board.

It leverages the AFBR-S50 API and Core Library to apply configuration and obtain measurement results. The latter is conveniently visualized in 1D or 3D plots.

API Overview

The AFBR-S50 SDK contains the sensor API that wraps around the core library and provides an easy access to the sensors vast functionality to the user. A very simple example demonstrates the basic usage of the API and serves as a starting point for any user implementation. A comprehensive reference implementation (namely the Explorer App, utilized for the evaluation kit) unveils the complete capability of the API and coats it in a serial hardware interface that connects via UART or USB to the AFBR-S50 Explorer GUI.

The AFBR-S50 Core Library is required to operate the AFBR-S50 Sensor Family along with the users application on the same target platform. It is a comprehensive, yet simple library that implies all the algorithms that are required to run the sensor with nearly any microprocessor that is based on the ARM Cortex-Mx Architecture. Therefore the library is implemented hardware independent and the user needs to establish the connection from the library to the underlying hardware by implementing the provided hardware interface layers for its platform. Apart from that, the library is easy to use and runs basically in the background through interrupt service routines without putting much load on the main thread such that the CPU remains available and responsive for the user application.

There are example implementations of the AFBR-S50 Software API that serve, along with the provided platform drivers, as a starting point for user implementations. All the examples are build on the Cortex-Mx Architecture in general and the following hardware is available:

Getting Started

  • Refer to the Getting Started section in order to build and run the provided projects on any of the featured platforms.
  • Also see the Demo Applications section for an overview of the existing projects and their capabilities.
  • See the MCU Porting Guide section of how to use the AFBR-S50 API on a new Cortex-Mx platform.
  • Read through the Architectural Overview section in to get a deeper understanding of the AFBR-S50 API and its components.

Copyright and License

The AFBR-S50-API is published under the BSD 3-Clause License:

‍Copyright (c) 2021, Broadcom Inc, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.